1. 基类层 base.pbl
说明:所有代码的基础。
继承原则:必须由标准对象派生而来。
windows -> w_base
menu -> m_base
datastore -> n_ds_base
datawindow -> u_dw_base
......
引用原则:不可引用除全局对象以外的任何对象。
为了实现 PB 自身难以完成的任务,特别增加了一个全局对象 nonvisualobject n_global_base 存放所有全局变量和全局函数。
因为 datastore 与 datawindow 的特殊性,u_dw_base 实际上是封装了 n_ds_base 的功能,并在此基础上增加了与数据表现有关的功能,这也是继承了 PB 本身的设计思路。
2. 通用层 general.pbl
说明:能够通用于任何应用。
继承原则:除全局函数外,其它类型的对象必须继承自基类层。对象中的参数类型除基本数据类型外,其它数据类型必须使用基类层定义的对象。
引用原则:可引用本层及上层对象。
3. 模块层(实现特定功能的若干对象组合;如打印、查询、工具栏、自动缩放、权限...)
说明:与通用层一致。
继承原则:与通用层一致。
引用原则:仅可引用上层对象。
4. 祖先层 ANCESTOR.pbl
说明:与基类层类似,但范围限制在本应用之内,并不通用于其它应用。
继承原则:与通用层类似,但祖先菜单不一定是一个,而是根据实际需要决定。
u_dw_base -> u_dw_ancestor
m_base -> m_wnd_word_ancestor
m_base -> m_wnd_xls_ancestor
m_base -> m_pop_ancestor
w_base -> w_ancestor
......
引用原则:仅可引用上层对象。
原则上本层没有全局函数,且只继承可视的基类对象。
5. 框架层
说明:实现特定业务模型的所有框架性对象,可通用于相同业务模型的应用。
FRAME_D.pbl
FRAME_B.pbl(实现不可视的且与业务相关的所有代码及 n_global)
FRAME_O.pbl(其它各种杂七杂八的对象)
FRAME_M.pbl
FRAME_W.pbl
继承原则:除全局函数外,其它类型的对象必须继承自祖先层。对象中的参数类型除基本数据类型外,其它数据类型必须使用祖先层定义的对象。
n_global_base -> n_global(此对象是应用的唯一全局变量)
引用原则:与通用层一致。
实现时必须注意区别不同类型的应用(如 pbnative 或 pbwebservice)
6. 集成系统层
说明:按集成系统类型划分的各类对象,可不断扩展。
PDM_D.pbl
PDM_OP.pbl(实现不可视的且与 pdm 业务相关的所有代码)
PDM_M.pbl
PDM_W.pbl
CAPP_D.pbl
CAPP_OP.pbl(实现不可视的且与 capp 业务相关的所有代码)
CAPP_M.pbl
CAPP.W.pbl
MES_D.pbl
MES_OP.pbl(实现不可视的且与 mes 业务相关的所有代码)
MES_M.pbl
MES_W.pbl
继承原则:对象中的参数类型除基本数据类型外,其它数据类型必须使用祖先层定义的对象。
引用原则:可引用本系统内及上层对象。
7. webService 层 WEBSERVICE.pbl
说明:定义并实现所有 ws 接口,屏蔽业务知识,具体实现完全依赖上层。
继承原则:WS 直接使用 nonvisualobject。对象中的参数类型除基本数据类型外,其它数据类型必须使用基类层定义的对象。
引用原则:与通用层一致。