分享
 
 
 

PB通用类库和业务类库的设计思想(二)

王朝other·作者佚名  2006-01-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语句进行解析和拆分

类库的基本框架大体上就是这样, 它们之间具体怎么关联的, 请听下回分解。

(待续)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有