close

DataShare() 的功用就是在 DataWinodw 間「共用」數據。在一些在程序各處都用到的數據,或數據量大的表中,比如用戶名稱、供應商名稱或貨物資料,DataShare 都能有效提高程序度。

做法是先把 dropdowndatawindow 定義到 global datastore,預先 retrieve()到系統緩存內,在有需要的時候,就以 DataShare() 把它的數據共用的當前畫面的下拉中,這樣就可以減省每次都重新 retrieve 的時間。除了下拉,各種查詢也可以使用這個方法,例如把貨物資料都存到緩存中,查詢時就把數據共用到查詢畫面,然後以 DW.Filter()DataWindow 中查找資料。

這方法有個缺陷,就是看不到 retrieve 後所新增的數據,就是你 retrieve 後,同事或你自己新增的資料並不會自動包含到緩存中。這種情況你就需要在適當的時候預先更新一下緩存內的數據,例如在貨物維護功能內,有改動後就在背後偷偷 retrieve 一下該 global datastore 去更新一下數據。寫法如下:

 

// 定義 Global Variables
datastore    gds_supplier

//  設定 DataStore
gds_supplier = create datastore
gds_supplier.DataObject = "ddw_supplier"
gds_supplier.SetTransObject(sqlca)
gds_supplier.Retrieve()        

 

// 執行 DataShare
if gds_supplier.sharedata(dw_1) = -1 then
    messagebox('Error', 'ShareData() failed', Exclamation!)
    return
end if

arrow
arrow
    創作者介紹
    創作者 過時程式員 的頭像
    過時程式員

    過時程式員的部落格

    過時程式員 發表在 痞客邦 留言(0) 人氣()