DataShare() 的功用就是在 DataWinodw 間「共用」數據。在一些在程序各處都用到的數據,或數據量大的表中,比如用戶名稱、供應商名稱或貨物資料,DataShare 都能有效提高程序度。
做法是先把 dropdowndatawindow 定義到 global datastore,預先 retrieve()到系統緩存內,在有需要的時候,就以 DataShare() 把它的數據共用的當前畫面的下拉中,這樣就可以減省每次都重新 retrieve 的時間。除了下拉,各種查詢也可以使用這個方法,例如把貨物資料都存到緩存中,查詢時就把數據共用到查詢畫面,然後以 DW.Filter() 在 DataWindow 中查找資料。
這方法有個缺陷,就是看不到 retrieve 後所新增的數據,就是你 retrieve 後,同事或你自己新增的資料並不會自動包含到緩存中。這種情況你就需要在適當的時候預先更新一下緩存內的數據,例如在貨物維護功能內,有改動後就在背後偷偷 retrieve 一下該 global datastore 去更新一下數據。寫法如下: