
在數據窗體中我們增加了Ediror、Searcher和Printer三個屬性,分別用來指定使用的編輯、查詢和打印的窗體實例,同時提供了DoEdit、DOSearch和DoPrint三個方法作為調用接口。在數據浏覽窗體中放置三個按鈕(工具欄按鈕或菜單,依需要而定)並在其單擊事件中調用。由於代碼相似,此處僅以Print為例:
if Assigned(FPrinter) then begin
Printer.DataSet := ActiveDataSet;
Printer.Execute;
end;
else
TDialogBox.Info('Not assigned Printer');
至此,編輯、查詢和打印的基本框架已搭好了。下面開始是具體細節問題了。
不同的數據表有不同的字段,那麼編輯、查詢和打印窗體界面自然也就不同了。細心的朋友可能已經發現了在上面的定義中編輯、查詢和打印窗體都有一個DataSet屬性。我們就是通過這個屬性得取得字段信息,並使用動態創建控件的方法在窗體上創建出可供用戶錄入數據的元素。具體的代碼此處就不寫了。
這種做法充分利用了面向對象程序設計中的繼承和多態,最大程度的減少了程序中的重復代碼,降低日後的維護和修改成本。
一家之言,望各位斧正。