PB通用類庫和業務類庫的設計思想(二)
2024-07-21 02:10:08
供稿:網友
二、ufc通用類庫框架
(一)ufc通用類庫簡介
ufc(user foundation class)類庫是一組powerbulider的對象,它是由許多通用對象組成的基礎類庫。主要包括權限管理對象、錯誤截獲對象、應用程序管理對象、事務管理對象、數據窗口服務對象、窗口對象等。
類庫主要包括以下幾個包:
1、五個核心包
ufcappsrv.pbl 應用對象服務包,包括應用程序管理對象、字符串操作對象、數值操作對象等。
ufcmain.pbl 通用對象服務包, 包括pb的標準對象的各種擴展對象:窗口、數據窗口、編輯框、圖片按鈕等。
ufcobjsrv.pbl 定制對象服務包, 大部分是一些定制的用戶對象,例如工具條、outlook條等。
ufcdwsrv.pbl 數據窗口服務包,包括各種數據窗口服務,例如過濾服務、查找服務、排序服務、彈出菜單服務等。
ufcwnsrv.pbl 窗口服務包,包括數據窗口上的擴展服務,例如狀態條服務、個性化風格服務等。
2、兩個輔助包
ufctemplate.pbl 模板對象包, 包括各種模板窗口。
ufccommon.pbl 公共業務對象包, 包括mis系統的一些通用業務窗口和數據窗口,例如權限管理窗口、系統參數管理窗口等。
3、可選包(可以根據需要包含)
ufcexternal.pbl 外部擴展對象包,包括各種第三方pb對象,以及api相關對象。
ufcdatabase.pbl 數據庫對象包,包括對各數據庫對象的統一封裝,以及業務帳套的管理。
4、工具包(可以根據需要包含)
ufcreport.pbl 通用報表對象包,提供了一個通用的報表工具。
ufcupdate.pbl 自動升級對象包,提供了一個最新程序上載和更新的工具。
ufcstatistic.pbl 通用數據統計分析圖表包,提供通用的對數據的統計和分析工具,以及圖表顯示。
(二)ufc通用類庫命名規范
1、ufc對象的命名
所有基礎類庫的對象(包括所有的結構體和全局函數), 其名稱都帶前綴ufc_,加上這個前綴的好處是讓業務對象與類庫對象區別開來, 而不會產生重名的麻煩: ufc_type_objectname
具體類型說明如下:
前綴 描述
ufc_m_ menu
ufc_n_ standard class user object
ufc_n_ custom class user object
ufc_s_ global structure
ufc_u_ visual user object
ufc_w_ window
例如:
例子 解釋
ufc_w_base 所有窗口的基類
ufc_u_tv treeview控件基類
ufc_u_dw datawindow控件基礎類
ufc_n_dwsrv 數據窗口服務基礎類
ufc_n_tr 不可視的事務對象基礎類
2、ufc對象實例命名
所有對象實例采用pb中標準的命名方式, 采用(對象類型縮寫)+(_)+(實例英文描述)
例如: dw_master , w_logon 等。
3、ufc變量命名
所有變量和pb中默認的命名方式一致, 采用 (作用域)+(類型)+(_)+(變量英文描述)
例如: gnv_app li_index is_username 等。
4、ufc基礎類庫中事件和函數命名
所有自定義事件(非系統事件), 都采用 (ufc_)+(事件描述)的方式, 例如: ufc_open
對于一個事件的前觸發和后觸發, 采用(ufc_pre)+(事件描述)表式前觸發, 采用(ufc_post)+(事件描述)表示后觸發, 例如: ufc_preopen , ufc_postopen。
對于函數, 采用 (of_)+(函數描述)的方式, 例如 of_getusername() 。
(三)核心包分析
ufc基礎類庫主要采用窗口、標準用戶對象、定制用戶對象來實現面向對象封裝。主要的服務有:
1、應用程序管理對象(ufc_n_appmanage),實現整個應用程序的管理,以及對應用系統全局變量的封裝。它包含的服務主要有:
a。系統參數對象(ufc_n_sysparam),提供了對業務系統數據庫中的各種全局參數的訪問。
b。錯誤日志對象(ufc_n_error), 提供了對系統中各種錯誤的捕獲,最后統一記錄和顯示出錯信息。
c。事件日志對象(ufc_n_eventlog),提供了每個系統登錄用戶的登錄細節,以及對系統的操作情況。
d。系統序列號對象(ufc_n_sequence), 提供定義系統中各種編號的規則定義,以及各種編號的自動生成。
e。權限管理對象(ufc_n_rightmanage), 提供了一個統一的權限管理對象,通過它來獲取登錄用戶對每個模塊的訪問權限(ufc_n_right),所有權限感應對象根據傳遞給它的ufc_n_right來初始化其自身表現。
2、窗口對象和窗口服務對象
主要的幾個窗口基類說明:
ufc_w_base --是所有窗口的基類,封裝了一些與業務無關的通用功能。
-ufc_w_master --為了擴展一些api效果,在ufcmain.pbl或ufcexternal.pbl中實現。
--ufc_w_frame --mdi窗口基類
---ufc_w_navigateframe --導航式的mdi窗口模板
--ufc_w_main --業務窗口基類,實現了與數據窗口的關聯和事件映射。
---ufc_w_sheet --業務子窗口
--ufc_w_popup --popup風格窗口基類
--ufc_w_response --response風格窗口基類
主要的窗口服務有:
a。狀態條服務, 為pb中的mdi窗口提供多功能的狀態提示條。
b。工具條服務, 提供對pb中的標準工具條的操作界面。
c。桌面配置服務, 對應用程序的整體外觀進行配置,包括導航條、狀態條、工具條的開關,窗口位置的保存等。
d。墻紙服務,提供在應用程序的mdi區顯示背景圖片。
e。個性化偏愛服務, 提供了對窗口配置的自動讀取和設置。
3、數據窗口對象和數據窗口服務
整個基礎類庫就是對數據窗口的擴展,為了不導致數據窗口對象的過度膨脹,把各種服務功能獨立成一個服務對象,而在數據窗口中采用引用服務對象的方式來實現。 其中主要的數據窗口服務有:
a。排序服務(ufc_n_dwsrv_sort) b。過濾服務(ufc_n_dwsrv_filter)
c。查詢服務(ufc_n_dwsrv_query) d。檢索服務(ufc_n_dwsrv_retrieve)
e。自動保存服務(ufc_n_dwsrv_autosave) f。數據導出服務(ufc_n_dwsrv_export)
g。數據導入服務(ufc_n_dwsrv_import) h。下拉查找服務(ufc_n_dwsrv_dropdownsearch)
i。鏈接服務(ufc_n_dwsrv_linkage) j。多表服務(ufc_n_dwsrv_multitable)
k。彈出菜單服務(ufc_n_dwsrv_popmenu) l。彈出選擇服務(ufc_n_dwsrv_popselect)
m。行管理服務(ufc_n_dwsrv_rowmanage) n。行選擇服務(ufc_n_dwsrv_rowselect)
o。重復列判斷服務(ufc_n_dwsrv_repeate) p。要求列判斷服務(ufc_n_dwsrv_required)
q。初始化列服務(ufc_n_dwsrv_initcolumn) r。改變大小服務(ufc_n_dwsrv_resize)
s。日歷服務(ufc_u_calendar) t。計算器服務(ufc_u_calculate)
u。錯誤記錄服務(ufc_n_error) v。彈出按鈕服務(ufc_u_popbutton)
4、全局服務對象
主要有以下服務對象:
a、字符串操作對象(ufc_n_string) --包括對字符串的分割、全局替換等。
b、日期時間操作對象(ufc_n_datetime) --包括對日期時間的增減、日期字符串的轉換等。
c、數值操作對象(ufc_n_numerical) --包括對數值的轉換,包括金額的大小寫轉換等。
d、類型轉換對象(ufc_n_conversion) --提供對各種枚舉與基本類型之間的轉換。
e、平臺對象(ufc_n_platform) --提供對操作系統平臺的支持。
f、sql對象(ufc_n_sql) --對sql語句進行解析和拆分
類庫的基本框架大體上就是這樣, 它們之間具體怎么關聯的, 請聽下回分解。
(待續)