GetChild

tchild函式主要被用來得到一個數據視窗的子數據視窗

功能:得到指定子數據視窗的引用並將其保存到變數中 然後應用程式就可以使用該變數來操作子數據視窗對象
語法:dwcontrol.GetChild ( name, dwchildvariable )
參數:dwcontrol 數據視窗控制項名
name string 類型 列名 該列包含了欲得到引用的子數據視窗對象
dwchildvariable DataWindowChild 類型 用於存儲該函式得到的子數據視窗對象的引用
返回值:Integer 函式執行成功時返回 1, 出錯時返回-1 , 子數據視窗對象引用保存在變數dwchildvariable 中 如果任何參數的值為NULL , 則GetChild()函式返回NULL
用法:這裡所說的子數據視窗包括兩方面的意義 一是數據視窗對象中的下拉數據窗 口 DropDownDataWindow 是複合風格數據視窗對象中的子報表 , 需要注意的是在創建複合風格的數據視窗對象時,它使用的子報表實際上也是個數據視窗對象 必須要設定其Name 屬性,否則就不能使用GetChild()函式來得到該子報表的引用。當應用程式需要以顯式方式提取子數據視窗對象的數據時 先使用 GetChild()函式得到該子數據視窗對象的引用 然後像操作普通數據視窗控制項那樣檢索子數據視窗對象的數據。一般來說 在顯示主數據視窗時 PowerBuilder 會自動提取出子數據視窗對象的數據,但是 當子數據視窗對象使用了提取參數或檢索條件發生變化且需要檢索新的數據時 應用程式就需要自己編寫代碼來實現數據提取工作了 。
當用戶在主數據視窗中插入一行或提取主數據視窗的數據時 PowerBuilder 也自動地提取出子數據視窗的數據 但是 如果子數據視窗帶有提取參數 那么PowerBuilder 將顯示一個對話框 讓用戶輸入提取參數的值 要想不讓PowerBuilder 顯示該對話框 應用程式中可以在修改主數據視窗之前先顯式地提取出子數據視窗的數據。需要注意的是,如果嵌套報表的數據源為外部數據源,那么應用程式不能使用 GetChild()函式得到子報表的引用。使用數據視窗控制項的對象函式 Modify()修改數據視窗的某些屬性後,先前執行 GetChild()函式得到的子數據視窗對象引用可能不再有效。此時 需要重新調用 GetChild() 函式來得到有效的子數據視窗對象引用
示例:本例中 主數據視窗的 emp_state 列是個子數據視窗對象,該子數據視窗對象需要一個 地區 值作為提取參數,為了不讓PowerBuilder 顯示輸入提取參數的對話框代碼中首先檢索了子數據視窗的數據 ,之後再提取主數據視窗的數據
DataWindowChild state_child //說明一個DataWindowChild 類型的變數
integer rtncode
rtncode = dw_1.GetChild("emp_state", state_child)
// 得到名稱為 emp_state 的子數據視窗對象的引用
IF rtncode = -1 THEN MessageBox( "錯誤", "不是子數據視窗")
// 如果未與資料庫建立連線時首先建立連線
CONNECT USING SQLCA;
// 設定子數據視窗使用的事務對象
state_child.SetTransObject(SQLCA)
// 使用地區值 北京 檢索子數據視窗對象的數據
state_child.Retrieve("East")
// 設定主數據視窗使用的事務對象並提取數據
dw_1.SetTransObject(SQLCA)
dw_1.Retrieve()

相關詞條

熱門詞條

聯絡我們