PB程序编制规范第1页PB程序编制规范版本历史日期版本说明作者2015-10-090.1初稿潘国金1概述为提高编码效力,减少程序差错,保持各产品间界面风格统一,特制定以下PB程序编制规范,如在门户框架下的程序开发都应遵守本规范。2命名规范2.1文件2.1.1PBL文件XX_XXXX:系统简写+_+库名XX_MAIN:主库(主窗口,主菜单及本系统的私有维护)XX_PUBLIC:本系统的公用部份XX_XXXX:业务功能1全局PBL序号PBL名称分类备注1bs_public.pbl公共不可修改2mh_main.pbl公共不可修改3mh_public.pbl公共不可修改4mh_support.pbl公共不可修改5mh_xtwh.pbl公共不可修改6mh_identi.pbl公共不可修改PB程序编制规范第2页7DwToExcel.PBL公共不可修改支持数据窗口导出为EXCEL文件8mh_out.pbl公共可修改mh_out中放需在门门户中调用的外部功能比如目前需同步表的手动服务需继承自u_mh_out_parentload,如何实现参见其中的readme事件。u_mh_out_autoload是继承自u_mh_out_parentload的一个例子9SUPPORT.PBL已废除只因兼容性而暂时存在,不能使用其中的对象10HISPUBLIC.PBL已废除只因兼容性而暂时存在,不能使用其中的对象注:有些基于某个产品的公共PBL需要互相产品组间沟通后共享使用,例如:在HRP系统中的HIS_SHARE.PBL2.1.3资源文件资源文件放在门户系统的RESOURCE目录下,除公用外,每个产品按XXXYYY方式(XXX为产品名,YYY为应用名)命名,目前主要如下:名称所属产品备注PUBLIC公用PORTAL门户TOOLBAR公用工具栏HISPICHIS系统图片LISPICLIS系统图片EMRPICEMR系统图片RISPICRIS系统图片HISWAVHIS系统声音文件EMRWAVEMR系统声音文件2.2应用应用名一般与产品的简称同名PB程序编制规范第3页2.3菜单M_XXX_XXXX(W__PBL名称_功能名称)例:在BQ_YZCL.PBL中菜单M_BQ_YZCL_YZSR2.4窗口W_XXX_XXXX(W_PBL名称_功能名称)例如:yk_bisiness.pbl中,药库入库处理窗口为W_YK_BISINESS_RKCL,药库主窗口命名为W_YK_BISINESS_MAIN新建窗口规定:一般非模块参数新建窗口统一继承自w_mh_support_sheet祖先窗口,该窗口为所有窗口听祖先窗口中。用于菜单调用(需要模块参数)的窗口统一继承自w_mh_support_module祖先窗口。2.5控件控件前缀+'_'+控件名称控件命名按照PB默认的前缀,详细如下:序号名称前缀备注1.CheckBoxcbx_2.CommandButtoncb_3.DataWindowdw_4.DropDownListBoxddlb_5.DropDownPictureListBoxddplb_6.EditMaskem_7.Graphgr_8.GroupBoxgb_9.HProcessBarhpb_10.HTrackBarhtb_11.HScrollBarhsb_12.Lineln_13.ListBoxlb_14.ListViewlv_PB程序编制规范第4页15.MultiLineEditmle_16.OleControlole_17.Ovalov_18.Picturep_19.PictureHyperLinkphl_20.PictureButtonpb_21.PictureListBoxplb_22.RadicButtonrb_23.Rectangler_24.RichTextEditrte_25.RoundRectanglerr_26.StaticHyperLindshl_27.SingleLineEditsle_28.StaticTextst_29.TabControltab_30.TabPagetabpage_31.TreeViewtv_32.UserObjectuo_33.VProcessBarvpb_34.VTrackBarvtb_35.VScrollBarvsb_2.6对象对象前缀+'_'+PBL名称+'_'+对象名称U_XXX_XXXX(非可视对象,U__PBL名称_对象名称)VU_XXX_XXXX(可视对象,VU__PBL名称_对象名称)注:非可视对象需继承自nvo_Module特别注意1.门户程序不能使用非门户中的对象PB程序编制规范第5页2.非门户程序在BS_PUBLIC公共库有相同功能组件的情况下,不得使用其它组件2.7变量变量作用范围前缀+变量数据类型前缀+'_'+变量名称例:门诊号参数As_mzhm注:门户下的产品不能使用自定义公共全局变量BSHRP4规定全局变量如下:变量类型变量名称变量说明使用说明Windowgw_Main门户主窗口u_sp_Usergo_User当前用户的信息包括的用户信息参见u_sp_User中实例变量u_mh_dictgo_Dict公用字典管理u_sp_dbconnectiongo_Pools公用连接池管理参见数据库连接管理u_sp_AppExgo_AppEx公用对象创建工具参见自定义公用变量的使用u_mh_winlistgu_winlist窗口列表管理booleangb_setdesk设置桌面部件标志stringgs_currentdirectory当前执行文件所在目录2.7.1作用范围序号类型前缀备注1.全局Globalg2.共享Shares3.实例Instancei4.局部Locall5.参数Argumenta2.7.2数据类型序号类型前缀备注PB程序编制规范第6页1.Anya_2.Blobbb3.Booleanb4.Characterc5.Datedyyyy.mm.dd6.DataTimedtYyyy.mm.ddhh:mm:ss7.Decimaldc应定义小数位8.Doubledb界面中右对齐9.Integeri界面中右对齐10.Longl界面中右对齐11.Realr界面中右对齐12.Strings界面中左对齐或居中13.Timethh:mm:ss14.UnsignedIntegerui15.UnsignedLongul16.Applicationapp17.CheckBoxcbx18.CommandButtoncb19.ContextKeywordcxk20.ContextInformationcxinfo21.DataStoreds22.DataWindowdw23.DataWindowChilddwc24.DragObjectdrg25.DrawObjectdrw26.DropDownPictureListBoxddplb27.DropDownListBoxddlb28.DWobjectdwo29.DynamicDescriptionAreadda30.DynamicStagingAreadsa31.EnumerationDefinitioned32.EnumerationItemDefinitioneid33.EditMaskem34.Environmentenv35.Errorerr36.ExtObjectext37.Graphgr38.GraphicObjectgo39.GrAxisgrax40.GrDispAttrgrdaPB程序编制规范第7页41.GroupBoxgb42.HorizontalScrollBarhsb43.InternetResultir44.Lineln45.ListBoxlb46.ListViewlv47.ListViewItemlvi48.MailFileDescriptionmfd49.MailMessagemm50.MailRecipientmr51.MailSessionms52.MDIClientmdi53.Menum54.MenuCascademc55.Messagemsg56.MultiLineEditmle57.NonVisualObjectnv58.OleControloc59.OleObjectoo60.OleStorageostg61.OmControlomc62.OmCustomControlomcc63.OmEmbeddedControlomec64.OmObjectomo65.OmStreamomstm66.OmStorageomstg67.Ovaloval68.Picturep69.PictureButtonpb70.PBToCPPObjectpbcpp71.PictureListBoxplb72.Pipelinepl73.PowerObjectpo74.ProfileCallprocall75.ProfileClassproclass76.ProfileLineproln77.ProfileRoutineprort78.Profilingpro79.RadioButtonrb80.Rectanglerec81.RemoteObjectrem82.RichTextEditrte83.RoundRectanglerrecPB程序编制规范第8页84.RteObjectrteo85.ScriptDefinitionscrd86.SingleLineEditsle87.Servicesrv88.StaticTextst89.Structurestr90.Tabtab91.TabPagetabpg92.TraceActivityNodetcan93.TraceBeginEndtcbe94.TraceErrortcerr95.TraceFiletcf96.TraceLinetcln97.TraceGarbageCollecttcgc98.TraceObjecttco99.TraceRoutinetcrt100.TraceSQLtcsql101.TraceTreetct102.TraceTreeNodetctn103.TraceTreeErrortcterr104.TraceTreeSQLtctsql105.TraceTreeGarbageCollecttctgc106.TraceTreeLinetctln107.TraceTreeObjecttcto108.TraceTreeRoutinetctrt109.TraceTreeUsertctu110.TraceUsertcu111.TypeDefinitiontd112.Transactiontr113.Transporttrp114.TreeViewtv115.TreeViewItemtvi116.UserObjectuo117.VariableCardinalityDefinitionvrcd118.VariableDefinitionvrd119.VerticalScrollBarvsb120.WindowObjectwo121.WindowwPB程序编制规范第9页2.8结构序号类别前缀备注1.全局级结构gstr_2.应用级结构astr_3.菜单级结构mstr_4.窗口级结构wstr_5.对象级结构ostr_2.9函数序号类别格式1.全局级函数GF_PUBLIC_XXXX(GF+PUBLIC+_+函数名称)2.子系统使用的公共函数GF_XXX_XXXX(GF+_+PBL名称+_+函数名称)3.应用级函数AF_XXX_XXXX(AF+_+函数名称)4.菜单级函数MF_XXXX(MF+_+函数名称)5.窗口级函数WF_XXXX(WF+_+函数名称)6.对象级函数OF_XXXX(OF+_+函数名称,用于内部使用)UF_XXXX(UF_+_+函数名称,用于外部调用)7.全局扩展函数GE_XXXX(GE+_+函数名称)8.局部扩展函数LE_XXXX(LE+_+函数名称)2.10事件所有