程式目的:有時要處理同性質的資料
但因某特定條件而要開不同的 DataWindow 來執行
將多個 DataObject 藉由同一個 DataWindow 控制
這就是我的終極目標啦~~
白話文:我們學校的財產分成三個 Table 在儲存
列入財產/列管財產/列管物品 ->不要問我為什麼
三張 Table 的結構及性質是一模一樣的
為何不併在一起,這也是我不了解的地方
程式需求是要在同一個界面
藉由不同 Table 的選擇,新增到對應的地方
但是所有的流程及功能都是一樣的
只是對應的 DataWindow 不同
我又不想開三個獨立的 Window 去執行這件事
所以才找到了這個方法
這是程式的 Window 初始設定畫面
其中在 dw_1 的介面中,有一個欄位是選擇要匯入的 Table
程式會根據此欄位的值傳到 dw_2 去做處理
而其中 dw_2 負責新增財產的動作
但因匯入的 Table 目標不同
所以我做了三個獨立的 DataWindow
完成的 DataWindow共計有:
* dw_ngt0501_1 - 處理列入財產
* dw_ngt0501_2 - 處理列管財產
* dw_ngt0501_3 - 處理列管物品
程式中使用 CommandButton 去觸發後續的程式
在 cb_1 的 clicked() 中,控制切換 DataObject 的部份程式碼如下:
------------------------------------------------------------------------
string lls_DBPath
..............(處理程序)
lls_DBPath = String(dw_1.GetItemString( i, "t4_prodb"))
..............(處理程序)
dw_2.dataObject = ""
Choose Case lls_DBPath
Case "1"
dw_2.dataObject = "dw_ngt0511_1"
dw_2.setTransObject(in_tr)
Case "2"
dw_2.dataObject = "dw_ngt0511_2"
dw_2.setTransObject(in_tr)
Case "3"
dw_2.dataObject = "dw_ngt0511_3"
dw_2.setTransObject(in_tr)
End Choose
------------------------------------------------------------------------
如此一來就大功告成啦~~~~
其中因為對於三種不同類型財產的新增及匯入程式都相同
所以一套程式碼就控制了匯入到三個不同 Table 的作業