當系統進入自訂函數區執行時,有時需要能夠在函數範圍內寫些操控原工作視窗window物件時,需要取得該window的指標.
系統要進入自訂函數區,最常用的方式是透過功能表呼叫,格式為dw_this.call( yourfunctionname(parameter list))
自訂函數也可以在 [欄位互動] [輸入驗證] 等被呼叫.
當執行功能表指令時,系統會傳入原屬的資料視窗物件指標,系統將之命名為dw_focus,為global 資料視窗全域變數
如果功能表是在dw_up視區所呼叫,則dw_focus等於工作視窗的dw_up,其工作視窗的指標處理如下
w_top_bottom_paper w_paper
w_paper=dw_focus.getparent()
如果功能表是在dw_tab1等頁籤視區所呼叫,因為上一層為tabpagexx,再上一層為tab_1物件,tab_1.getparent()才是視窗物件,其工作視窗的指標處理如下
w_top_bottom_paper w_paper
w_paper=dw_focus.getparent().getparent().getparent()
w_top_bottom_paper 為單據視窗工作視窗,繼承自w_top_bottom_base一般主從式工作視窗
有的w_paper指標物件後,就可在pb function中操作該工作視窗
例如宣告一個local 資料視窗變數,u_dw為系統繼承自基本資料視窗,並加多項屬性與函數的資料視窗物件.
u_dw dw_from
可以將指標指向該工作視窗的dw_sub1視區,進而對該視區操作任何動作
dw_from=w_paper.dw_sub1
long li_totrow=dw_from.rowcount()
for li_this=1 to li_totrow
do something...
next
也可以直接執行工作視窗任何函數.例如
w_paper.pb_saveall()
w_paper.dw_up.setfocus()
w_paper.pb_add()
...