Power Builder 编程规范.doc_第1页
Power Builder 编程规范.doc_第2页
Power Builder 编程规范.doc_第3页
Power Builder 编程规范.doc_第4页
Power Builder 编程规范.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PowerBuilder 编程规范 文档编号版本号1 0 分册名称PowerBuilder 编程规范第 1 册 共 1 册 总页数18正文14附录0 编制张建军审批生效日期2009 3 25 PowerBuilder 编程规范 Ver 1 0 P 2 19 大连鑫奇辉科技有限公司 大连鑫奇辉科技有限公司 PowerBuilder 编程规范 Ver 1 0 P 3 19 大连鑫奇辉科技有限公司 修改记录 版本号 变更控制报告 编号 更改条款及内容更改人 审批人更改日期 PowerBuilder 编程规范 Ver 1 0 P 4 19 大连鑫奇辉科技有限公司 目 录 1引言引言 5 1 1编制目的 5 1 2参考资料 5 1 3术语 5 2系统命名规范系统命名规范 5 2 1变量命名规范 5 2 2函数命名规范 7 2 3结构命名规范 8 2 4对象命名规范 8 3用户界面定义 用户界面定义 GUI 规范 规范 8 3 1总体要求 8 3 1 1文本颜色规则 8 3 1 2背景颜色规则 8 3 1 3字体 9 3 1 4提示时机及风格 9 3 1 5帮助的使用 9 3 2详细要求 9 3 2 1StaticTest 9 3 2 2SingleEdit 10 3 2 3CommondButton 10 3 2 4MultEdit 10 3 2 5RadioBox 10 3 2 6CheckBox 10 3 2 7DropDownListBox 11 3 2 8DataWindow 11 3 2 9Window 11 3 2 10Menu 12 4代码书写规范代码书写规范 12 4 1书写习惯 12 4 2大小写 12 4 3注释规范 12 4 4SQL 及函数的返回值 14 5编程经验点滴编程经验点滴 14 5 1过程调用 14 5 2在 PB 中执行 DML 操作 15 5 3在 PB 中执行查询操作 15 5 4更换数据窗口数据源 16 5 5过程封装 17 5 6PBL 库的组织方式 17 5 7双引号问题 17 PowerBuilder 编程规范 Ver 1 0 P 5 19 大连鑫奇辉科技有限公司 5 8DATE与 DATETIME数据类型 18 PowerBuilder 编程规范 Ver 1 0 P 6 19 大连鑫奇辉科技有限公司 1 引言 1 1 编制目的 本文是一套应用PB进行开发前端程序所应遵循的开发规范 按照此规范来开发PB程序 可带来以下益处 代码的编写保持一致性 提高代码的可读性和可维护性 易于程序员间代码共享 特别是在团队开发一个项目的情况下 在程序开发过程中可采用开发工具是开发变得简便 例如自动格式化代码等此类的 工具 易于代码的回顾 节省开发时间 当程序员采用了此规范后 不必再关注于编写代码的格式 而专注 于代码的实现 保证代码的质量 本文只是一个初版 并不能覆盖所有的情况 如果有遗漏 请予以补充 本文只是一个 通用的规范 每个项目会有不同的要求 请根据不同的需求 采用本规范中通用的部分来使 用 此规范仅供大家参考 请在不影响开发进度的前提下尽量使用 1 2 参考资料 1 3 术语 2 系统命名规范 2 1 变量命名规范 variablename Scope is one of the following PowerBuilder 编程规范 Ver 1 0 P 7 19 大连鑫奇辉科技有限公司 For standard data types datatype is one of the following PrefixDescription PrefixDescription aAnyocOleControl blbBlobooOleObject bBooleanostgOleStorage chCharacteromcOmControl dDateomccOmCustomControl dtmDateTimeomecOmEmbeddedControl dcDecimalomoOmObject dblDoubleomstmOmStream eEnumeratedomstgOmStorage iIntegerovalOval lLongpPicture rRealpbPictureButton sStringpbcppPBToCPPObject tmTimeplbPictureListBox uiUnsignedIntegerplPipeline ulUnsignedLongpoPowerObject appApplicationprocallProfileCall abArrayBoundsproclassProfileClass cbxCheckBoxprolnProfileLine cbCommandButtonprortProfileRoutine cdClassDefinitionproProfiling cdoClassDefinitionObjectrbRadioButton cnConnectionrecRectangle cninfoConnectionInforemRemoteObject cnoConnectObjectrteRichTextEdit cxkContextKeywordrrecRoundRectangle cxinfoContextInformationrteoRteObject cppcplusplusscrdScriptDefinition dsDataStoresleSingleLineEdit dwDataWindowsrvService dwcDataWindowChildstStaticText drgDragObjectstdSimpleTypeDefinition drwDrawObjectstrStructure ddplbDropDownPictureListBoxtabTab ddlbDropDownListBoxtabpg TabPage PrefixDescription aArgument to an event or function gGlobal variable iInstance variable lLocal variable sShared variable PowerBuilder 编程规范 Ver 1 0 P 8 19 大连鑫奇辉科技有限公司 dwoDWobjecttcanTraceActivityNode ddaDynamicDescriptionAreatcbeTraceBeginEnd dsaDynamicStagingAreatcerrTraceError edEnumerationDefinitiontcfTraceFile eidEnumerationItemDefinitiontclnTraceLine emEditMasktcgcTraceGarbageCollect envEnvironmenttcoTraceObject errErrortcrtTraceRoutine extExtObjecttcsqlTraceSQL grGraphtctTraceTree goGraphicObjecttctnTraceTreeNode graxGrAxistcterrTraceTreeError grdaGrDispAttrtctsqlTraceTreeError gbGroupBoxtctgcTraceTreeGarbageCollect hsbHorizontalScrollBartctlnTraceTreeLine inetInettctoTraceTreeObject irInternetResulttctrtTraceTreeRoutine lnLinetctuTraceTreeUser lbListBoxtcuTraceUser lvListViewtdTypeDefinition lviListViewItemtrTransaction mfdMailFileDescriptiontrpTransport mmMailMessagetvTreeView mrMailRecipienttviTreeViewItem msMailSessionuoUserObject mdiMDIClientvrcdVariableCardinalityDefinition mMenuvrdVariableDefinition mcMenuCascadevsbVerticalScrollBar msgMessagewoWindowObject mleMultiLineEditwWindow nvNonVisualObject 2 2 函数命名规范 全局函数 f xx 窗口函数 wf xx 菜单函数 mf xx 应用函数 af xx 外部全局函数 egf xx 外部局部函数 elf xx PowerBuilder 编程规范 Ver 1 0 P 9 19 大连鑫奇辉科技有限公司 2 3 结构命名规范 全局结构 stru xx 窗口结构 wstru xx 菜单结构 mstru xx 应用结构 astru xx 外部全局结构 egstru xx 外部局部结构 elstru xx 2 4 对象命名规范 应用对象 app xx 窗口对象 win xx 数据窗口对象 dw xx 用户对象 uobj xx 菜单对象 menu xx 3 用户界面定义 GUI 规范 3 1 总体要求 1 按钮放在窗口的底部或右侧 每个按钮均应有快捷键 其上的快捷字母用 括起 2 用数据窗口录入数据时 列之间用 回车 键实现焦点转移 3 宽数据窗口的风格用grid 4 显示及录入时 文本左对齐 数字右对齐 3 1 1文本颜色规则 正常 文本为 黑色 提请注意 文本为 亮蓝色 3 1 2 背景颜色规则 3 1 2 1窗口窗口 窗口 背景颜色为 ButtonFace 可编辑域 背景颜色为 WndBkrnd PowerBuilder 编程规范 Ver 1 0 P 10 19 大连鑫奇辉科技有限公司 不可编辑域 背景颜色为 ButtonFace 3 1 2 2维护式数据窗口维护式数据窗口 数据窗口 背景颜色为 ButtonFace 可编辑域 背景颜色为 WndBkrnd 不可编辑域 背景颜色为 ButtonFace 3 1 2 3报表式数据窗口报表式数据窗口 数据窗口 背景颜色为 ButtonFace 查询显示 背景颜色为 WndBkrnd 3 1 3 字体 全部控件字体为宋体 10 号 3 1 4 提示时机及风格 1 关闭窗口 若数据改变应给出存盘提示如下 MessageBox 存盘提示 提示内容 Question YesNoCancel 1 2 退出应用 对没存盘的内容应给出提示如1所示 退出系统应提示如下 MessageBox 应用名称 提示内容 Exclamation YesNo 1 3 校验错误 MessageBox 校验错误 提示内容 StopSign ok 1 4 写盘错误 MessageBox 写盘错误 提示内容 StopSign RetryCancel 1 5 普通提示 MessageBox 提示 提示内容 Information ok 1 3 1 5 帮助的使用 1 MDI文档应使用Window的帮助菜单 提供Window风格的帮助信息 2 SDI文档应使用帮助按钮 3 应尽量利用窗口下部的提示条或MDI的MicroHelp 3 2 详细要求 3 2 1StaticTest Font 采用10 号宋体 TextColor 采用黑色 PowerBuilder 编程规范 Ver 1 0 P 11 19 大连鑫奇辉科技有限公司 Background 采用button face Box 采用None 3 2 2SingleEdit Font 采用10 号宋体 TextColor 采用黑色 Background 可编辑采用白色 不可编辑采用button face Box 采用3D Lowered 3 2 3CommondButton Font 采用10 号宋体 TextColor 采用黑色 Background 采用button face Box 采用3D Raised 3 2 4MultEdit Font 采用10 号宋体 TextColor 采用黑色 Background 可编辑采用白色 不可编辑采用button face Box 采用3D Lowered 3 2 5RadioBox Font 采用10 号宋体 Alignment Right TextColor 采用黑色 Background 采用button face Box 采用3D Lowered PowerBuilder 编程规范 Ver 1 0 P 12 19 大连鑫奇辉科技有限公司 3 2 6CheckBox Font 采用10 号宋体 Alignment Right TextColor 采用黑色 Background 采用button face Box 采用3D Lowered 3 2 7DropDownListBox Font 采用10 号宋体 TextColor 采用黑色 Background 采用白色 Box 采用3D Lowered 3 2 8DataWindow Head 区提示信息 Font 采用10 号宋体 TextColor 采用黑色 Background 采用button face Box 采用3D raised 或 Font 采用10 号宋体 TextColor 采用黑色 Background 采用button face Box 采用None Detail 区提示信息 Font 采用10 号宋体 TextColor 采用黑色 PowerBuilder 编程规范 Ver 1 0 P 13 19 大连鑫奇辉科技有限公司 Background 采用button face Box 采用None 字段 Font 采用10 号宋体 TextColor 采用黑色 Background 可编辑字段采用白色 不可编辑字段采用button face Box 采用3D Lowered 3 2 9Window Font 采用10 号宋体 TextColor 采用黑色 Background 采用button face WindowType 采用Response Main 3 2 10 Menu 为每个菜单项定义热键 ALT 英文字母 主窗口菜单下不加图标 4 代码书写规范 4 1 书写习惯 1 在所有运算符及赋值动词 的前后要各加一个空格 2 在函数参数表的每个逗号后面要各加一个空格 3 程序脚本一定要有缩进控制 4 缩进控制要使用TAB键 而不能使用SPACE键 4 2 大小写 1 调用PB的函数时 组成函数名的有意义的单词的第一个字母要大写 其他字母 小写 像PB的帮助里引用函数名那样 PowerBuilder 编程规范 Ver 1 0 P 14 19 大连鑫奇辉科技有限公司 2 变量命名 variablename 中的 可以不用 但variablename 的第一个字母要大写 3 组成变量名variablename的有意义的单词的第一个字母要大写 其他字母小写全 部的SQL关键字要大写 4 Script的关键字或者全部小写 或者全部大写 或者全部第一个字母大写 4 3 注释规范 1 在自定义函数体的开始要有统一风格的注释 建议风格如下 对象类型 function 对象名称 af data trans three 事件名称 作者 创建时间 业务说明 检索下拉数据窗口 参数 adw datawindow 数据窗口句柄 as field 下拉字段 as name 字段名称 aa argument1 retrieve参数 any type aa argument2 retrieve参数 any type aa argument3 retrieve参数 any type aa argument4 retrieve参数 any type ai flag操作标志 1 插入一 行 2 默认空白行 3默认第一行 4主数据窗口调用 修改历史 编号 修改人 修改时间 修改内容 修改原因 1 2 在事件脚本的开始要有统一风格的注释 建议风格如下 PowerBuilder 编程规范 Ver 1 0 P 15 19 大连鑫奇辉科技有限公司 对象类型 window 对象名称 w main 事件名称 open 作者 创建时间 2008 11 21 表信息 bm city id t 一些重要的表 过程信息 bm p 执行的重要过程 业务说明 说明实现的业务要求 数据流程等 一些重要的说明信息 修改历史 编号 修改人 修改时间 修改内容 修改原因 1 3 重要变量的定义要有注释 4 重要算法在程序中要有注释说明 5 程序功能块要有注释 6 数据表的表名和列名在数据库画板中要有汉字注释 7 PBL库中的每个对象在Library中应有明确的汉字注释 4 4 SQL 及函数的返回值 1 任何一条SQL语句结束后 要做的第一件事就是判断其返回值 if SQLCA SqlCode 1 then MessageBox SQL错误 SQLCA SqlErrText return 1 end if 2 函数调用后要判断其返回值 尤其是文件操作函数 DataWindow语法函数等 PowerBuilder 编程规范 Ver 1 0 P 16 19 大连鑫奇辉科技有限公司 3 自定义函数返回值的约定 0为正确 1为错误 5 编程经验点滴 5 1 过程调用 过程调用采用绑定的模式 写过程必须要有返回值 例码如下 执行过程 String ls err info ls sql execute br insert his p declare proc insert his dynamic cursor for sqlsa prepare sqlsa from ls sql open dynamic proc insert his using gs city code li service kind if sqlca sqlcode 1 then Ls eff info sqlca sqlErrText Rollback Messagebox 错误信息 执行失败 ls eff info End if etch proc insert his into li flag if li flag Then close proc insert his 如果循环调用过程的话 将open 至 close 一段代码放在循环体内执行 5 2 在 PB 中执行 DML 操作 在PB 中执行DML 操作时 通常也要使用绑定的方式 建议使用如下方式 INTEGER li customer id 1 STRING ls city code 501 PREPARE SQLSA FROM DELETE bb customer info t WHERE city code AND customer id PowerBuilder 编程规范 Ver 1 0 P 17 19 大连鑫奇辉科技有限公司 EXECUTE SQLSA USING li customer id ls city code 原理同过程调用 5 3 在 PB 中执行查询操作 在PB 中执行SELECT 操作时 通常也要使用绑定的方式 建议使用如下方式 Int li format type string ls prefix ls left fill ls list separate DECLARE my cursor DYNAMIC CURSOR FOR SQLSA PREPARE SQLSA FROM SELECT prefix left fill list separate FROM br pstn format type t where format type and kind OPEN DYNAMIC my cursor USING li format type ii kind FETCH my cursor INTO ls prefix ls left fill list separate CLOSE my cursor declare proc insert his dynamic cursor for sqlsa prepare sqlsa from ls sql 原理同过程调用 5 4 更换数据窗口数据源 若需动态变更数据窗口的数据源 则需仔细规划数据源中使用的变量 尽量使用数据 窗 口的RETRIEVE 变量 原理同过程的调用 如下例 变量定义 string ls sql ls err info ls where clause integer li service kind li wp kind datetime ld beg date ld end date 变量赋值并核查 li service kind dw service kind getitemnumber dw service kind getRow service kind ld beg date datetime date mid em assign beg date text 1 10 time mid em assign beg date text 12 PowerBuilder 编程规范 Ver 1 0 P 18 19 大连鑫奇辉科技有限公司 8 ld end date datetime date mid em assign end date text 1 10 time mid em assign end date text 12 8 if ld end date id beg date AND BB WP HIS INFO T ASSI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论