首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

PowerBuilder DataWindow 取得所有控制項名稱與屬性

     編輯:關於SqlServer

在 PowerBuilder 中需動態遍歷 DataWindow 所有控制項 (Column、Text、Picture 等),可透過 Describe("DataWindow.Objects") 取得 Tab 分隔的名稱清單,再解析逐一處理。

取得控制項名稱陣列

string ls_obj_list, ls_obj_name[]
int li_cnt, li_pos, i

ls_obj_list = dw_1.Describe("DataWindow.Objects") // Tab 分隔字串
IF Len(ls_obj_list) > 0 THEN
  li_pos = Pos(ls_obj_list, "~t")
  DO WHILE li_pos > 0
    i++
    ls_obj_name[i] = Trim(Left(ls_obj_list, li_pos - 1))
    ls_obj_list = Trim(Right(ls_obj_list, Len(ls_obj_list) - li_pos))
    li_pos = Pos(ls_obj_list, "~t")
  LOOP
  i++
  ls_obj_name[i] = ls_obj_list // 最後一個
END IF

查詢控制項屬性

取得名稱後,可用 Describe 查詢任意屬性:

// 取得類型
string ls_type
ls_type = dw_1.Describe(ls_obj_name[i] + ".type")

// 取得顯示格式
string ls_format
ls_format = dw_1.Describe(ls_obj_name[i] + ".format")

// 修改屬性 (需用 Modify)
dw_1.Modify(ls_obj_name[i] + ".visible=0")

常用屬性速查

屬性說明範例值
type控制項類型column, text, picture, line, oval, rectangle, button, computefield
visible是否可見0/1
protect是否保護 (不可編輯)0/1
format顯示格式遮罩#,##0.00; #,##0; yyyy-mm-dd
font.face字型名稱微軟正黑體
font.height字型大小-12
font.weight粗細400/700
color前景色255 (紅), 16711680 (藍)
background.color背景色16777215 (白)

注意事項

  • Describe 僅能讀取,修改需用 Modify。
  • 控制項名稱區分大小寫,需與畫面設計一致。
  • 巢狀報表 (Composite) 需遞迴進入子 DataWindow 取得物件。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved