EEP的Baseform設計 |
|
t0922610976
一般會員 ![]() ![]() 發表:11 回覆:16 積分:15 註冊:2003-09-02 發送簡訊給我 |
EEP的Baseform Baseform的架構,在最初始的狀態為TAncestorForm2,屬於最基底的表單。在TAncestorForm2的基礎設計中,大致提供屬於「資料集的處理函式」、「按鈕處理函數」、「按鍵處理函數」、「使用者Utilities函數」以及「系統實作」等五大類,合計有五十支的主要處理函數,相關支援處理的函式也高達上百支。
TAFM2BaseForm1繼承自TAncestorForm2,專司單檔資料的處理;TAFM2BaseForm2繼承自TAncestorForm2,專司多檔資料的處理;TAFM2BaseForm3繼承自TAncestorForm2,專司查詢及列印資料的處理。運用Baseform的繼承好處在於簡化程式的設計以及方便維護,這也是非「OOP」開發工具所不及的地方。EEP開發平台,利用Delphi所提供的「OOP」物件導向程式設計,開發出對於處理「資料導向」的基礎表單,可減少錯誤的發生,以臻於快速完美的開發。
【Dataset Event處理函數】
1. Procedure BeforeOpen(DataSet: TDataSet);
處理資料表在開啟前的函數。
2. Procedure AfterOpen(DataSet: TDataSet);
處理資料表在開啟後的函數。
3. Procedure BeforeClose(DataSet: TDataSet);
處理資料表在關閉前的函數。
4. Procedure AfterClose(DataSet: TDataSet);
處理資料表在開啟後的函數。
5. Procedure BeforeInsert(DataSet: TDataSet);
處理資料表在新增前的函數。
6. Procedure AfterInsert(DataSet: TDataSet);
處理資料表在新增後的函數。
7. Procedure BeforeDelete(DataSet: TDataSet);
處理資料表在刪除前的函數。
8. Procedure AfterDelete(DataSet: TDataSet);
處理資料表在刪除後的函數。
9. procedure BeforeEdit(DataSet: TDataSet);
處理資料表在修改前的函數。
10. procedure AfterEdit(DataSet: TDataSet);
處理資料表在修改後的函數。
11. procedure BeforePost(DataSet: TDataSet);
處理資料表在存檔前的函數。
12. procedure AfterPost(DataSet: TDataSet);
處理資料表在存檔後的函數。
13. procedure BeforeCancel(DataSet: TDataSet);
處理資料表在取消前的函數。
14. procedure AfterCancel(DataSet: TDataSet);
處理資料表在取消後的函數。
15. procedure BeforeApplyUpdates(Sender: TObject; var OwnerData: OleVariant);
處理資料表在寫入資料庫前的函數。
16. procedure AfterApplyUpdates(Sender: TObject; var OwnerData: OleVariant);
處理資料表在寫入資料庫後的函數。
【按鈕處理函數】
1. procedure FirstButtonClick(Sender: TObject);
將資料游標移到第一筆的函數。
2. procedure PriorButtonClick(Sender: TObject);
將資料游標往前移一筆的函數。
3. procedure NextButtonClick(Sender: TObject);
將資料游標往後移一筆的函數。
4. procedure LastButtonClick(Sender: TObject);
將資料游標移到最末筆的函數。
5. procedure InsertButtonClick(Sender: TObject);
將資料表插入一筆空白記錄的函數。
6. procedure ModifyButtonClick(Sender: TObject);
將資料表設為修改的函數。
7. procedure DeleteButtonClick(Sender: TObject);
將資料表設為刪除的函數。
在刪除前會詢問使用者是否刪除。
8. procedure SaveButtonClick(Sender: TObject);
將資料表存檔的函數。
在存檔前會先判斷資料是否有異動。
9. procedure CancelButtonClick(Sender: TObject);
將資料表由新增或修改模式中取消的函數。
10. procedure QueryButtonClick(Sender: TObject);
查詢功能函數。
11. procedure PrintButtonClick(Sender: TObject);
列印功能函數。
12. procedure PreviewButtonClick(Sender: TObject);
預覽功能函數。 【按鍵處理函數】
1. procedure EditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
處理Edit的鍵盤控制,以Enter取代tab的函數。
2. procedure DBGridKeyDown(Sender:TObject;var Key: Word; Shift: TShiftState);
處理DBGrid的鍵盤控制,以Enter取代tab的函數。
3. procedure FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
處理Form的鍵盤控制,以Enter取代tab的函數。
4. procedure DBCtrlGridEditKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
處理DBCtrlGrid的鍵盤控制,以Enter取代tab的函數。 【使用者Utilities函數】
1. function FindMasterClientDataset(Sender: TObject): TInfoClientDataset;
找到主要的ClientDataSet函數。
2. function GetMasterClientDataset(Sender: TObject): TInfoClientDataset;
取得主要的ClientDataSet,如果找不到則引發錯誤的函數。
3. function FindMasterBLPanel(Sender: TObject): TButtonLayoutPanel2;
找到主要的ButtonLayoutPanel函數。
4. function GetMasterBLPanel(Sender: TObject): TButtonLayoutPanel2;
取得主要的ButtonLayoutPanel函數,如果找不到則引發錯誤的函數。
5. function GetNextEdit(aEdit: TWinControl; bForward: boolean; bIsTab: boolean): TCustomEdit;
取得下一個Edit的函數。
6. function FindNextControl(ParentControl,CurControl: TWinControl;GoForward, CheckTabStop, CheckParent: Boolean;ControlClass: TWinControlClass=nil): TWinControl;
取得下一個Control的函數。 【系統實作】
1. procedure DisableControls; virtual;
控制元件不顯示在畫面上的函數。
2. procedure DisableField(AInfoLabel: TInfoLabel);virtual;
控制InfoLabel所對應欄位的TColmun物件為隱藏的函數。
3. procedure DisableFIeld1(AField:TField);
控制TField所對應的TInfoLabel 、TInfoDBEdit 、InfoDBGrid.Columns物件為隱藏的函數。 透過上述的詳細說明來看,在撰寫一般常用的資料庫應用程式而言,舉凡資料的處理-新增、修改、刪除、查詢,資料的移動-上、下、首、末筆,鍵盤熱鍵的配置,元件使用及資料欄位權限的控制,這是屬於例行性的工作,皆可由Baseform的基底程式來處理,這樣子程式人員在開發時,就可免去重覆性的工作,而將所擅長的程式撰寫放於較艱深的部份。
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |