在撰寫程式的時候,常常希望提供使用者動態的功能,當然這樣做可以增加系統的親和力;另外很重要的是可以降低使用者寫需求單來增加新功能。例如:動態變更 DW 中排序欄位。 1. 動態變更 DW 中排序欄位的語法: <dw_1>.SetSort ( "<colname> <A/D> ..." ) // 設定排序欄位 <dw_1>.Sort ( ) // 執行排序作業 2. 點選 Header 的欄位來決定排序方式: A. 在 DW 中預設值: i. detail band 中的欄位名稱與資料庫中的欄位名稱相同。如:emp_id、dept_id。 ii. header band 中的欄位與 detail band 中的欄位相呼應,在該欄位名稱後加上 _t。如:emp_id_t、dept_id_t。 B. 在 DW::Clicked 中的程式碼: string ls_colname, ls_sort if row = 0 then if right(dwo.name, 2) = "_t" then ls_colname = dwo.name ls_sort = left(ls_colname, len(ls_colname) - 2) + " A" this.SetSort(ls_sort) this.Sort() end if end if C. 至於複合欄位的排序就留給讀者自己想想看了。 3. 出現系統提供的排序畫面: A. 這個畫面就是,當在 datawindow painter 點選 Rows -> Sort ... 出現的畫面,使用者可以完全的自行調整排序欄位。缺點是畫面顯示的是英文及資料庫欄位,對於使用者而言不能直覺的使用。不過對於企圖心較強的使用者,是可以教導及學習的。 B. 只要在畫面的適當地方加個按鈕,再寫入一點程式碼就完成了。 string ls_sort SetNull(ls_sort) dw_1.SetSort(ls_sort) dw_1.Sort() C. 是的,就是這麼簡單。 本則程式技巧由飛達客工作室提供 |
|
全站熱搜
留言列表