DataWindow中動態變更DropDownDW值

中國計算機報2000年第92期

DataWindow中動態變更DropDownDW值

孫亞冰

  PowerBuilder中的DataWindow對數據庫的操作功能非常強大,尤其是它的DropDownDW編輯風格,更是爲相關數據的一致性提供了保證。在實際應用中,經常需要將具有DropDownDW編輯風格的字段按某一條件顯示特定的內容。 比如,在某一應用中,部門員工字段的值須按變化的部門編號(或部門名稱)動態改變。

  爲實現這一要求,可利用DataWindowChild對象。DataWindowChild對象可以是嵌套的報表,或具有DropDownDataWindow編輯風格的 DataWindow對象。例如,一個具有DropDownDataWindow編輯風格列的DataWindow對象就是一個DataWindowChild 對象。DataWindowChild 對象用於訪問 獨立於DataWindow 功能之外的 DataWindow 對象,並且由於它需要被存儲和自動實例化,它繼承自系統的 Structure 對象。

  下面以一個小實例簡要說明。設有一名爲dw_1的DataWindow,其中有一“name (員工姓名)”字段,該字段具有DropDownDataWindow編輯風格,與之相連的DataWindow名爲dw_who,該DataWindow包含一個按字段“deptid(部門編號)”動態更新的查詢條件。代碼如下:

  DataWindowChild dwc

  integer rtncode

  file://具有DropDownDW編輯風格、值需動態改變的字段的名稱

  rtncode = dw_1.GetChild("name", dwc)

  

  IF rtncode = -1 THEN MessageBox( "錯誤提示", "Not a DataWindowChild")

  // 建立連接

  CONNECT USING SQLCA;

  // 設置子數據窗口的事物對象

  dwc.SetTransObject(SQLCA)

  file://子數據窗口的檢索值

  dwc.Retrieve(20) file://讓name列只顯示部門編號爲20 的員工姓名

  // 設置主數據窗口的事物對象並檢索

  dw_1.SetTransObject(SQLCA)

  dw_1.Retrieve()
  以上代碼在PB7 + Oracle8中調試通過。  

發佈了19 篇原創文章 · 獲贊 0 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章