程序编制规范
一. 命名规范
1. 窗口
W_XX_XXXX(W_系统简写_功能名称)
例:药库入库处理窗口为W_YK_RKCL,药库主窗口命名为W_YK_MAIN 注:1.BSHIS2.2中主窗口继承于W_MAIN_FRAME,MDI窗口一般继承于
W_SHEET_FRAME
2.系统简写名称参照各产品的子系统设置规范。
2. 菜单
M_XX_XXXX(W_系统简写_功能名称) 例:药库系统主菜单M_YK_MAIN
注:BSHIS2.2中主菜单继承于M_MAIN_FRAME 3. 变量
3.1变量的类型 对象 整型数字 浮点型数字 日期 Int Long Double Decimal Date 类型 I_ L_ D_ Dc_ D_ 前缀 备注 界面中右对齐 界面中右对齐 界面中右对齐 界面中右对齐 界面中左对齐或居中 格式一般为: yyyy.mm.dd Yyyy.mm.dd hh:mm:ss HH:MM:SS 界面中左对齐或居中 居中 类实例 字符串 结构体 布尔型 3.2变量的范围: 前缀 G S I L A
3.3变量命名
Datetime Time 可视 非可视 String Struct Boolean Dt_ T_ Vu_ U_ S_ Str_ B_ 含义 全局 共享 实例 局部 参数 第 1 页
程序编制规范
变量范围+变量类型+‘_’+变量名称
例:全局的日期为Gd_today,门诊号参数As_mzhm
注:BSHIS2.2公共全局类名:Uo_support::U_supporclass BSHIS2.2全局参数结构名:Base_info::Base_info
BSHIS2.2窗口数据传输变量结构:S_Exchange::S_Exchange 4. 函数
公用全局函数:
GF_XXXX(GF+_+函数名称) 子系统使用的公共函数:
GF_XX_XXXX(GF+_+系统简称+_+函数名称) 窗口函数:
WF_XXXX(WF+_+函数名称) 类成员函数:
Object.XXXX(函数名称) 全局扩展函数:
GE_XXXX(GE+_+函数名称) 局部扩展函数:
LE_XXXX(LE+_+函数名称)
5. 数据窗口
下拉式数据窗口: DD_XXXX
一般数据窗口:
D_XX_XXXX(D+_+系统简写+_+数据窗口名称) 6. 类
U_XXXX(非可视类) VU_XXXX(可视类) 7. 对象
前缀标识符 proj_ w_ m_ d_ u_ n_ q_ pl_ f_ s_ dw_ uo_ 对象控件名称 工程设计对象(project object) 窗口对象(window object) 菜单对象(menu object) 数据窗口对象(datawindow object) 可视用户对象(visiable user object) 不可视用户对象(invisiable user object) 查询对象(query object) 数据管道对象(data pipeline object) 函数对象(function object) 结构对象(struct object) 数据窗口控件(datawindow control) 用户对象控件(userobject control) 第 2 页
举例 程序编制规范 cb_ cbx_ ddlb_ ddplb_ lb_ plb_ sle_ mle_ em_ rte_ rb_ pb_ vsb_ hsb_ tr_ ole_ p_ gr_ tab_ tabpage_ lv_ tv_ st_ ln_ oval_ r_ rr_ gb_ po_ 命令按钮控件(commandbutton) 复选框控件(checkbox) 下拉式列表框(dropdown listbox) 下拉式列图片表框(dropdown picture listbox) 列表框(listbox) 图片列表框(picture listbox) 单行编辑框(singlelineedit) 多行编辑框(multilineedit) 编辑框(editmask) 重点文本编辑框(richtextedit) 单选按钮(radiobutton) 图片按钮(picturebutton) 垂直滚动条(vscroollvar) 水平滚动条(hscrollbar) 事物对象(transaction) OLE对象(olecontrol) 图片(picture) 图形(graph) 标签表(tab) 标签页表(tabpage) 列表视图(listview) 树视图(treeview) 静态文本(statictext) 线(line) 椭圆(oval) 矩形(rectangle) 圆角矩形(round rectangle) 组框(group box) PowerBuilder对象
8. 库(PBL)
XX_XXXX:系统简写+_+库名
XX_MAIN:主库(主窗口,主菜单及本系统的私有维护) XX_PUBLIC:本系统的公用部份 XX_XXXX: 业务功能1 XX_XXXX: 业务功能2 。。。。。。
9. 应用
应用名一般与系统的简称同名
10. 表与视图
表:XX_XXXX(系统简写+_+表名拼音缩写).例:住院系统的费用库(ZY_FYMX)
第 3 页
程序编制规范
视图:V_XX_XXXX(V+_+系统简写_+视图名). 例:门诊系统的收费汇总视图(V_MZ_SFHZ)
11. 字段名
字段名一般是字段中文名称拼音的首字母缩写,一般为4个字母.如:药品序号(YPXH)
12. 主外键
主键:PK_XXXX_XXXX(PK+_+表名+_+列名) 外键:FK_XXXX_XXXX(FK+_+表名+_+列名) 13. 索引
IDX_XXXX_XXXX(IDX+_+表名+_+索引名)
14. 触发器
TR_XXXX_XXXX_XXXX(TR+_+所属表名+_+作用表名+_+触发器名).
15. 存储过程
PR_XX_XXXX(PR+_+系统简写+_+存储过程名)
二. 界面规范
1. 用程序主窗口采用MDI方式,应具有Miscohelp提示。覆盖整个屏幕,应有菜单、工具条、
显示状态栏;菜单各项对应打开的窗口为SHEET类型,覆盖整个工作区,不用菜单、工具条、显示状态栏;应提示信息、出错信息、确认信息、与用户的交互提示而弹出的窗口用RESPONSE类型的窗口,其他的弹出窗口一律用POPUP类型的窗口,并显示在屏幕中央;所有窗口的标题显示相应的功能说明
1、 显示模式默认800*600显示方式,有特殊要求的应用程序除外。
2、 功能窗体初始位置居中,纵横尺寸比例应采用7:4,不应覆盖菜单栏、工具栏和提示栏。
窗体最好覆盖整个工作区。
3、 窗体中各控件安排均匀,分布合理,整个窗体应清晰,整洁,稳重。。
4、 窗体内字体采用中文系统(SYSTEM)字体或宋体9号字,12号字,题头可选楷体,不准用斜
体字型。
5、 窗体统一采用黑色字体,如有特殊要求,可选用红色或蓝色字体,但特殊色彩字体不宜过多,
同一窗体色彩不能超过三种。
6、 色调的运用方面,一般采用黑,白,灰。窗体底一般用灰色,字体用黑色,数据窗口底或列
表及编辑框用白色。禁止使用大片其他颜色区。如有特别需要,可用其他颜色和图标做细小
的点缀。
7、 应用程序中所有按扭统一尺寸,统一颜色,统一采用中文系统字体。位置应于窗体右侧或下
侧,在右侧的按扭的右上角为起始点,在下侧的按扭以右下角为起始点。尺寸限制在400*90左右。
8、 数据窗口尽量不用GRID格式,背景颜色一般用白色(TABLUES列表格式)与灰色(Freeform
录入格式)列头应与每列对齐,列头用3D格式,灰色,字体可用SYSTEM和宋体9号两种,高度比字体稍大。
9、 数值型的数据显示或录入必须右对齐,日期型可居中或左对齐,字符串型必须左对齐(包括
以下拉数据窗口形式显示的列)。
10、菜单及按扭的快捷键位置放于汉字后,统一采用英文单词的首字母或第一个汉字的汉语拼
单首字母,如遇到雷同现象,可自行修改。快捷键包以()。如窗体中只有两个按扭,可不
第 4 页
程序编制规范
采用快捷键,但应有默认ENTER和ESC键,如超过两个按扭,应采用快捷键,部分见附表。
11、日期变量输入和显示统一采用YYYY.MM.DD的形式,例:1998.06.01
12、代码输入采用弹出式响应窗体,弹出式响应窗体实现动态跟随,可在窗体内输入输入码。 13、窗体输入部分支持全屏幕编辑,含ENTER键跳转。 14、窗体控体布局顺序与TAB键跳转顺序一致。 15、所有窗体按ESC可退出。 16、输入部分避免采用滚动条。
17、代码维护窗体和部分实现特殊业务的窗体采用响应窗体。 18、各对象和控件的属性约定 对象、控件或属性名称 Font(字体) Frame Window 宋体,Regular,12,Blank 包括主菜单、Controlmenu;不含Maximizebox和Miximizebox,大小不可变, window颜色为Buttonface, client颜色为AppWrkSpc;状态为最大化。 继承基类无须调整大小,一般不含菜单,通常宽度为3658,高度为2060,其他与Frame Window相同 除高宽根据需要确定外,其他与Sheet Window相同 数据源一般为SQLselecet,显示方式为对单条记录输入输出为Freeform,背景颜色为Buttonface;对多行记录输入输出为Tabular或Grid,背景颜色为White; Text Object:3D raised(Tabular或Grid)或None(Freeform), Center,Buttonface,最左位置为(9,8),高度为 72,宽度根据需要设置; Column Object:3D Lowered(Freeform)、 Box(Tabuar)或 None(Grid),White,最左位置为(9,8),高度为 72,宽度根据需要设置; 列的背景颜色可为Buttonface; Compute Field:与Column Object相同。 Picture on left,Show text,Show picture,Bold selected text,Center,ButtonFace 背景颜色和文字背景颜色:ButtonFace,文字颜色:Wndtext 3D Raised,ButtonFace 高度为100,宽度为398或根据具体需要调整 None,背景颜色ButtonFace,高度76;动态显示信息则边界为3D Lowered 3D Lowered,背景颜色White,高度76 VscrollBar,3D Lowered,背景颜色White 3D Lowered,背景颜色ButtonFace 3D Lowered,背景颜色ButtonFace,高度76 Right Text,3D Lowered,背景颜色ButtonFace,高度76 与DropDownPictureListBox相同 第 5 页
说明 Sheet Window Response Window DataWindow Tab TabPage UserObjectControl CommandButton StaticText EditMask DropDownPicture ListBox GroupBox CheckBox RadioButton DropDownListBox DataWindowControl VscrollBar,Live Scrolling,3D Lowered 程序编制规范
如控件是从基类中继承的,则属性为标准属性,可根据调用函数来改变属性。 19.功能键的约定 功能键名称 退出系统 退出键 帮助键 确认键 功能键约定 ALT+F4 ESC F1 F2 退出主窗口及系统 退出当前的子窗口(sheet窗口) 退出response和popup窗口、退出当前菜单到上层菜单 打该系统的帮助文件 在数据保存时确认数据的合法性并保存数据,在查询数据时确认输入的条件实现确认按钮的功能 用于在数据窗口中插入新的记录 用于在数据窗口中删除当前的记录 输入查询条件、刷新数据 切换tabpage页,F7向前、F8向后;ALT+[1-9]数字为指定的页码 打印 从新登入更换用户 说明 退出sheet窗口 CTRL+F4 插入键 删除键 查询键 选页键 打印键 更换用户 翻页键 F3 F4 F5 F7、F8、ALT+[1-9] F6 F12 Home、End、PageUp、用于翻页查看选取的记录,Home翻到第一页,PageDown End翻到最后一页,PageUp翻到前一页,PageDown翻到下一页 TAB、Shift+Tab Return Ctrl+Tab 热键 ALT_O ALT_C ALT_S ALT_X ALT_Q ALT_F ALT_S ALT_A ALT_D ALT_M 用于按TabOrder向前或向后移动光标 用于选择菜单或选取数据时使用 用于MDI方式下切换多个窗口页 说明 一般用于设置,确定表示修改有效保存设置并关闭窗口,一般不用热键,用Enter键触发。 一般用于设置,表示修改无效并关闭窗口,一般不用热键,用ESC键触发。 在窗口录入信息比较多时,在记录录入时需不断保存时采用。 关闭窗口,一般不用热键,用ESC键触发, 设置条件后从新检索数据。 直接从新检索数据。 在从新检索数据过程中有 记录增加 记录删除 记录修改 TAB键 选择键 切换键 按钮名称 确认 取消 保存 退出 查询 刷新 统计 增加 删除 修改 20.一般按钮的属性
三.编码风格
1.Script程序的组成部分。
程序头部分: 对整段程序的处理说明的注册;
第 6 页
程序编制规范
变量声明部分:对全局、局部、实例、共享变量的声明和变量注释说明; 程序主体部分:一组能完成处理某个功能的Script语句,并对语句进行必要的注释说明,
各部分之间应有空行分开。
例:
//当前行号,总行数 /*变量说明*/ long ll_CurRow,ll_RowCount
2.事件程序头部分格式
//*********************************************************************** //事件名称:/*例,窗口w_main的open事件*/ //功能说明:/*说明该段程序完成的处理功能*/
//作者:*** 时间:1999/10/25;修改:*** 时间:1999/12/01
//***********************************************************************
用户自定义事件:
//*********************************************************************** //事件名称:/*例,窗口w_main的open事件*/ //功能说明:/*说明该段程序完成的处理功能*/
//事件参数:/*传递该事件的参数列表及相对应的说明*/ //事件返回:/*事件返回的值及相对应的说明*/
//作者:*** 时间:1999/10/25;修改:*** 时间:1999/12/01
//***********************************************************************
3.函数程序头部分格式
//*********************************************************************** //函数名称:/*例,窗口w_main的open事件*/ //功能说明:/*说明该段程序完成的处理功能*/
//函数参数:/*传递该函数的参数列表及相对应的说明*/ //函数返回:/*函数返回的值及相对应的说明*/ //调用事例:/*函数在程序段中调用的实例说明*/ //作者:*** 时间:1999/10/25;修改:*** 时间:1999/12/01
//***********************************************************************
4.编程代码时以缩进方式 //循环体
For i=1 To 100
If j > 1 Then //如果… This.Event ExcuteSomething( ) //干什么… End If Next
5.注意事项
在程序中的数据库操作一律采用标准的SQL语句。
禁止使用数据库自动增加列的使用,该功能用程序完成。
第 7 页
程序编制规范
第 8 页
因篇幅问题不能全部显示,请点此查看更多更全内容