Pb常用概念与术语及script编程规范
PB基础知识整理版

PB基础知识.数据库的事务管理在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。
为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。
对事务的操作是这样进行的:先定义开始一个事务,然后对数据作修改操作,这时如果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃您所作的所有修改而回到开始事务时的状态。
此外有些数据库支持事务的"存储点(savepoint)这一概念:即在一个事务进程中任意一点您都可以进行当前状态的存储,回退时只是回到你所设定的存储点,而不必退回全部的事务。
如果您的事务可以分成几组对数据库的修改,那就可以设置多个存储点,根据需要您可以回退到任意一个存储点,而不使所有事务的修改数据全部丢失。
正确地管理事务可以保证数据的完整性,当您所做的工作全部完成和得到确认之前,没有任何数据物理地写进数据库。
让我们来看这样一个实例,我们有这样一个银行应用系统,前台使用者作出将储户甲的一百元存款划归储户乙帐下的操作;在后台的数据库中,这两个客户的记录分储在两张表中,当使用者在屏幕上作出如上操作时,在后台需要对两张表进行修改。
如果在数据库中对甲用户存款余款作减去一百元修改后,对乙用户加一百元的操作修改却失败时,前一张表也必须回到修改前的状态,否则数据库的内容不统一,甲储户白白损失一百元,信息必然是不正确的。
因此进行事务管理是必须的。
传统地,我们认为一个事务包括了对一个或多个表的修改,而随着分布式数据库和数据仓库的发展,事务可能包括了对一个或多个数据库的修改。
在上例中甲乙两用户就可能是异地用户,信息分储在不同地域的不同数据库中,上述的一个事务就涉及到了对不同数据库的操作。
PowerBuilder中的事务管理作为数据库的前台开发工具Power Builder支持事务管理的操作。
PB编程规范

编程规范(PB)1简介1.1简介这个文档描述了用于编写稳定、可靠的PowerBuilder应用程序的一些标准、约定和准则。
他们基于合理的,经过证实的一些使代码容易理解、维护和增强的软件工程的原则。
另外,遵循这些标准,你作为一个PowerBuilder程序员的生产力将有一个显著的提高。
一些经验证明,花时间在项目的开始写出高质量的代码,可以使在后来的开发过程中容易修改它,从而事半功倍。
最后,遵循这一系列编码规范,可以使一个开发团队更好地保持一致性,最终必将极大地提高团队的生产力。
1.2最初的准则和最终的准则当你无法找到一些你需要的原则或准则时,或者它们很明显地不适用,或者其它的一些情况下,请使用常识,按照一些基本的原理去作。
这个原则凌驾于其他原则。
2命名规范2.1一般性约定1.使用英文或汉语拼音的全称去准确地描述各种对象、变量例如,ls_UserName (用户名) ,ldc_GrandTotal(总计)等等。
尽管x1,y1这样的名称很容易拼写,因为它们很短,但是他们不可能明确地提示名称的含义,将导致代码难以理解、维护和改进。
2.使用大小写混合的方式命名3.以合适的方式使用缩写例如ll_RownNmber,简写为ll_RowNum是可以理解的,但是li_ReturnCode简写为li_rc就不一定被别人看懂,所以应该以尽量保守的态度使用缩写,在更多的时候使用全称,或者建立常用缩写的对照表。
4.避免太长的名称,尽量限制在15个字母以内长名称虽然很容易懂,但特别长将导致拼写时经常出错。
5.不要在第一个字母和最后一个字母使用下划线6.保持命名的一致性。
相关的东西应给以相关的名字,以说明他们的关系和差异2.2具体约定2.2.1对象命名规范<前缀>_名称注:名称为英文,新建对象必须加注释(菜单对象可例外)。
一般情况下,菜单对象的名称与其所属窗口的名称一致。
例子:w_master , m_master , d_cig_cdu_tvs is the TreeView visual user objectu_dw is the DataWindow visual user objectn_cst_dwsrv is the custom class user object for DataWindow servicesn_tr is the transaction standard class user object and is in the extension level2.2.2变量范围命名规范<范围><数据类型>_变量名范围:对于标准数据类型:例子:as_unitcode 表示事件或函数的输入参数,string类型idc_val 表示实例变量,decimal 类型li_row 表示局部变量,integer 类型gd_firstday 表示全局变量,date类型对于常用参照数据类型(reference variables):例子:datastore lds_unitDataWindowChild ldwc_cigwindow lw_code注:1) 尽量避免使用全局变量。
PB基本语句,循环语句

简化雅思长难句技巧几个小技巧教你拆分简化雅思长难句我们做题的技巧是先找出谓语,然后确定主语,再通过关联词(and,but等)从后向前找出并列的核心单词.将句子从并列连词处断开,将并列句变成两个或若干个相对短的句子,然后再用处理简单句的方法——抓句子主干,来依次处理每个相对短的句子.比如下列两句:Everyone should know where the nearest fire alarm bo_ is located and wheree_its, fire escapes,and fire doors are.I wanted her to know that my heart was with her, and that I thought Englandowed her a great debt and was going to miss her.解析如下:1. Everyone should know where the nearest fire alarm bo_ is located andwhere e_its, fire escapes, and fire doors are.结构:本句有三个谓语动词,其中主句的谓语动词为should know,其余两个都是由where引导的并列宾语从句.拆分:1) Everyone should know2) Where the nearest fire alarm bo_ is located3) Where e_its, fire escapes, and fire doors are翻译:每个人都应该知道最近的火灾报警箱的位置,以及安全出口.安全梯及防火门位于何处.2. I wanted her to know that my heart was with her, and that I thoughtEngland owed her a great debt and was going to miss her.结构:本句有5个谓语动词,其中主句的谓语动词为wanted.was和thought分别属于两个由that引导的并列宾语从句.而owed和wasgoing为两个并列的谓语动词,共同主语为England.England这句话前面为了避免重复而省略了宾语从句的引导词that,实际上是thought的宾语从句.拆分:I wanted her to knowThat my heart was withherThat I thought(That) England owed her agreat debt and was going to miss her.翻译:我想让她知道我的心陪伴着她,而且我认为英国欠了她一大笔债,很快就会想念她.小结:1和2两句都是从句并列,找到连词,再找从句中的主干成分,便可以理解句意.除了从句并列,还有不定式引导的并列句,比如下面两个句子:The way space is used to enable the individual to achieve privacy, to buildhomes or to design cities is culturally influenced.It seems simple enoughto distinguish between the organism and thesurrounding environment and to separate forces acting on an organism into thosethat are internal and biological and those that are e_ternal andenvironmental.解析如下:3. The way space is used to enable the individual to achieve privacy, tobuild homes or to design citiesis culturally influenced.结构:本句中有两个谓语动词,主句谓语为 is culturally influenced, 定语从句谓语为 isused to. 主语the way有一个很长的定语从句修饰,定语从句中有三个并列的不定式短语作动词〝isused〞的目的状语即to achieve privacy, to buildhomes,和to design cities.拆分:The way is culturally influenced.space is usedto enable the individual to achieve privacyto build homesto design cities翻译:怎样利用空间实现个人隐私,修建住宅及规划城市都受到文化上的影响.4. It seems simple enough to distinguish between the organism and thesurrounding environment and to separate forces acting on an organism into thosethat are internal and biological and those that are e_ternal andenvironmental.结构:本句话关键是通过and抓住并列的成分,句子的主干是It seems simple enough to distinguish …andtoseparate…,其中,理解的难点在separate后面的部分.Separate的宾语forces后面被〝acting on anorganism〞这个现在分词短语限定,into后面两个those告诉我们forces被分成哪些部分了.拆分:It seems simple enoughto distinguish between the organism and the surrounding environment and to separate forces(acting on an organism) intothose that are internal and biologicaland those that are e_ternal and environmental.翻译:区分有机体和周围环境似乎很简单;把作用于有机体的力量分为内部生物的力量和外部环境的力量似乎也很简单.小结:从上两句可以看出,并列的不定式后面还包含定语从句或名词性从句,这增加了找出并列成分的难度,但记得,第一步还是找出连词,然后分析每个从句的主干结构,从而透彻地理解整个句子.除了不定式可以引导并列结构,从句也可以,而且难度更大,因为从句会误导考生找不到主句的主干,请看下句:Children in low-income families and poor communities are less likely totake organized youth sports for granted because they often lack the resourcesneeded to pay for participation fees, equipment, and transportation topracticesand games and their communities do not have resources to build and maintainsports fields and facilities.解析:5. Children in low-income families and poor communities are less likely totake organized youth sports for granted because they often lack the resourcesneeded to pay for participation fees, equipment,and transportation to practicesand games and their communities do not have resources to build and maintainsports fields and facilities .结构:本句中有三个谓语动词,are less likely to do为主句谓语 ,lack和 do not have为并列原因状语从句的谓语,主语分为they 和 their communities.拆分:Children (in low-income families and poor communities )are less likely(totake organized youth sports for granted)tak e…forgranted…把…认为是理所应当because they often lack the resources (needed)(to pay for participationfees, equipment, and transportation to practices andgames)and (because)their communities do not have resources (to build and maintainsports fields and facilities ).翻译:来自低收入家庭和贫穷社区的孩子就很少将社区运动视作理所应当,因为他们经常缺少必须的金钱来支付门票.设备和来回车费,而且他们的社区也没有能力来建设和维持运动场和运动设备.小结:这句话只有虽然有三个谓语,但主句只有一个,所以第一个才是真正的谓语,其他两个是原因状语从句引导的并列从句的谓语,所以理解这句话需要找出主句的谓语.总结:长难句中的平行结构可以用不同的方式构成,可能并列成分内部仍然有并列成分,但是最重要的还是先找到主干结构,再分析并列句的结构,最后整合起来,一点点解剖整个句子的意思.雅思阅读材料:英国公交司机叫乘客〝亲〞面临被开A bus company is warning drivers to not call passengers `babe` in a bid toavoid lawsuits from offended women.英国一家公交公司提醒司机,不要称呼乘客〝亲〞,以防认为受辱的女性起诉. Brighton Hove Buses posted warnings to drivers in its head officesafter a complaint from a woman who said she felt insulted by being called `babe`when she boarded a bus.布赖顿和霍夫公交公司总部近日贴出了这则警告通知.事情的起因是公司接到一名女乘客投诉,称某次上车时,司机称呼她〝亲〞,她当时感觉受到了侮辱.The company also warned drivers they could face the sack if they callpassengers `love` or `darling`.该公司还警告司机,如果对女乘客使用〝亲〞这类词汇,司机将面临被炒鱿鱼的风险.One employee, who did not want to be named, said: `It`s just the height ofpolitical correctness. The drivers know how to best speak to customers.一名不愿意透露姓名的司机说:〝这样做实在是‘过头了’.司机们知道该怎么称呼乘客.〞`People don`t want their drivers to be robots. What is the world coming towhen you can`t have a bit of friendly banter with passengers?` 〝人们不会希望司机都像机器人一样.如果和乘客之间不能说笑,世界将会变得多么冷冰冰啊.〞The sign reads: `Please can drivers be aware that some of our customers maytake offence at having terms such as love , darling and babe directedtowards them.通知写道:〝请司机注意,有些乘客认为被直呼‘亲爱的’.‘宝贝’.‘亲’是受到了侮辱.〞`This can be seen by some as being a se_ist comment, as a recent complainthas highlighted.`〝这对有些人来说有性意味,就像最近的一起投诉提到的那样.〞Managing director Roger French said: `A lady complained to us that shethought the language used by a driver was demeaning to her.总经理罗杰·弗兰齐说:〝有位女士向我们投诉,她认为司机使用这样的语言对她是种侮辱.〞`We take a lot of customer feedback so we thought we would pass this on.The drivers will understand and take it in good spirit.`〝我们接到了很多顾客反馈,所以我们觉得应该这样做.司机们会理解,并且愉快地接受.〞雅思阅读材料:技术宅发明奥利奥饼干分离器A cookie-favoring physicist has created what appears to be the world sfirst Oreo separator.一个不喜欢夹心的物理学家制造出了世界上台奥利奥夹心分离机.David Neevel, an artist and inventor based in Portland, Ore., wascommissioned by the popular cookie brand to produce the machine as part of itsCookies vs. Creme campaign.DavidNeevel是俄勒冈州波特兰市的一名发明家,也是一位艺术家.他受到这个著名饼干品牌的委托,为该公司的〝饼干VS奶油〞广告制造出了这台机器.My Oreo machine is based entirely on my dislike for creme and mypreference for cookie, Neevel said in a short video.〝我制造夹心分离机完全是因为我讨厌夹心.喜欢饼干,〞Neevel在短片这样提到.The OSM, as Neevel calls it, was constructed of scrap aluminum, wood, ahatchet and floss in a Portland garage.Neevel 把发明简称为OSM (奥利奥分离器),这是他在波特兰的一个车库里用一些铝的废料.废木材.一把小斧头和一些金属丝制成的.After the hatchet blade is lowered to split the Oreo, a pair of mechanicalarms are dispatched to collect the cookie halves, which are transferred to arouter table where the creme is removed.斧头把奥利奥一劈为二,然后一对机械臂会捡起两半奥利奥,接着饼干会被送到铣削台,把饼干上的奶油铣掉.The electric-powered contraption took about two weeks to build. It was abig time commitment, Neevel said. I had to work some long hours—I didn t seemy girlfriend or my dog for hours at a time.这个神奇的电动机械装置造了两个星期的时间.〝这是个非常非常重要的委托,〞Neevel说.〝我得连续工作很久,有时候我好几个小时都见不了我的女朋友和我的狗.〞Outstanding. I applaud your efforts, one YouTube commenter wrote. Foryour ne_t design, how about an automatic sock pair singlifier?〝赞一个.为你的发明鼓掌,〞一个YouTube用户这样评论道.〝下次造一个袜子配对机怎么样?〞Three other inventors were commissioned by Oreo to come up with concepts,with the ne_t one slated to be unveiled later this week.另外还有三名发明家受到奥利奥委托想一些新点子,下一个发明预计在这周晚些时候发布.简化雅思长难句技巧。
pb规范——精选推荐

pb规范编程规范及常见问题⼀、开发标准与命名约定●在代码开发中,所有的运算符(+ 、-、 *、 / 、〈、〉等)及赋值动词(=)的前后者应加上⼀个空格,最好在函数的参数表中的每个变量前⾯也要加⼊⼀个空格。
如:wf_Dfjs_Dldb( Ad_zdl, As_lb ) 。
●应使⽤TAB⽽不是空格来缩排循环或复合语句中的代码,显⽰其包含关系。
●函数名,事件名或变量名的定义⼀律⽤英⽂书写(不便定义的⽤拼⾳⾸字母),要求能从字⾯上表⽰清楚;变量尽量不要出现嵌套,函数不要⽤敏感字符(如ItemChanged);⾸字母⽤⼤写,单词之间不⽤连字符(_)如:wf_RightTrim() 。
●SQL语句⾸字母⼤写,同时要考虑SQL的通⽤性(Oracle 、SQLServer 、 SQLanywhere),使⽤标准SQL语句。
●单⾏结构的语句尽量分解多⾏:If n_Rows > 6 thendw_report.Retrieve()EndIf⽽⾮ If n_Rows >6 then dw_report.Retrieve() 。
●在函数或事件代码中,应加⼊相应的注释内容与函数头(事件头)如下所⽰:////////////////////////////////////////////////////////////////////////////// //////* Function: ()Access: PublicArguments:Returns:Description: */////////////////////////////////////////////////////////////////////////////// ////////以下开始为代码代码中功能块之间要有明显标记,⾄少隔⾏区分;各功能块前有明确功能注释。
●函数的功能要分明,尽量不要出现⼀个函数完成多个任务的情况。
●循环变量:对于循环变量,允许定义单字母:I、J、K;以及M、N、L,但这些变量的定义仅限在Local中。
pb基本概念

PB程序设计基本概念一、概念1、PowerBuilder是一种高效的客户/服务器模式以及分布式数据库应用程序的前端开发工具。
2、创建应用程序对象的方法有创建定制应用程序、创建模板应用程序、移植已有应用程序三种。
3、PowerBuilder的数据类型包括标准数据类型、枚举类型、系统对象数据类型三大类。
4、PowerBuilder的运算符有算术运算符、关系运算符、逻辑运算符、连接运算符四种。
5、PowerBuilder支持ODBC接口,使得可以访问所有关系型数据库。
6、窗口有主窗口、弹出式窗口、子窗口、响应式窗口、多文档窗口、带微帮助的多文档窗口等六种。
7、窗口的初始状态有最大化、最小化、正常大小三种。
8、命令按钮最常用的事件是Clicked事件,它是在按钮被单击时触发的。
9、菜单的类型分为下拉菜单、级联菜单、弹出式菜单三种。
10、游标是指查询的结果集。
11、应用对象:是一个应用程序的入口点,其中定义了一些应用程序级的事件、函数和属性。
12、主键:是表中唯一标识一个记录的列或列的组合,其值不能为空且必须唯一。
13、MDI窗口:是一种特殊风格的窗口,在其中可以打开多个工作窗口,给用户一个整体的感觉。
14、数据库描述文件:指明了使用哪个数据源,可以使开发人员在开发环境中操作数据库,在用户使用环境下不需要数据库描述文件。
15、数据窗口对象:是PowerBuilder最有特色的对象,用来对数据库的数据进行数据操作和数据检索。
16、用户对象:是指用户自己定义的封装了一组相关代码和属性,完成特定功能的可重用对象。
17、数据库画板:是专门用来管理数据库,包括创建和删除ASA数据库、连接数据库、定义ODBC数据源、创建和管理表及数据等的设计器。
18、数组:指一组相同数据类型的带下标的变量的集合。
19、数据管道:是在数据库内部、数据库之间,以及不同的数据库管理系统之间快速复制数据的对象。
20、工程对象:是将应用程序编译成可执行文件的一个对象。
PB知识点整理

变量类型•局部变量(Local ):在定义该变量的函数、事件中使用。
局部代码执行完即销毁。
•实例变量(Instance ):属于一个对象的一个实例。
实例不被销毁,变量一直存在。
如无特殊声明,则其他对象都可以访问该变量。
•共享变量(Shared ):被同一对象的多个实例中共同使用(无论有几个实例,都只有一个值),整个应用不被销毁,变量一直存在。
其他对象无法访问该变量。
•全局变量(Global ):属于整个应用。
整个应用不被销毁,变量一直存在。
所有对象都可以访问该变量。
•按变量的作用范围和生命周期来划分变量、常量的声明•变量说明:datatype variablename•变量名建议使用:变量类型+数据类型+”_”+其它,如:String gs_dwmcInt ii_countLong sl_useridDatetime ldt_todayString ls_xm,ls_bjLong ll_classid = 1•常量变量说明:CONSTANT datatype variablename = value数组•String ls_city[] //下标默认从1开始•String ls_city[10] //下标默认从1开始•String ls_city[2 to 20] //下标从2到20•String ls_city[2,10]•数组初始化:int li_i[9]={2,3,4,5,6,7,8,9,10}•数组循环赋值:int i,li_i[9]for i=1 to 9li_i[i] = i+1next结构str_student lstr_studentlstr_student.id=1lstr_student.xm=‘张三’lstr_student.xb=‘1’lstr_student.csrq=date(‘1975-01-01’)Openwithparm(w_test,lstr_student)str_student lstr_studentlstr_student=message.powerobject加减乘除•算术运算:+, - , *, /, ^•关系运算:=, <>, >, <, >=, <=, like•逻辑运算:NOT, AND, OR•字符串连接:ls_name = ls_name + ‘医院’常用的函数•Messagebox:显示出错、警告、提示及其他重要信息。
PB程序编制规范(初稿)

PB程序编制规范版本历史1概述为提高编码效力,减少程序差错,保持各产品间界面风格统一,特制定以下PB程序编制规范,如在门户框架下的程序开发都应遵守本规范。
2命名规范2.1文件2.1.1 PBL文件XX_XXXX:系统简写+_+库名XX_MAIN:主库(主窗口,主菜单及本系统的私有维护)XX_PUBLIC:本系统的公用部份XX_XXXX: 业务功能1全局PBL注:有些基于某个产品的公共PBL需要互相产品组间沟通后共享使用,例如:在HRP系统中的HIS_SHARE.PBL2.1.3资源文件2.2应用应用名一般与产品的简称同名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新建窗口规定:2.5控件<控件前缀> + '_' + 控件名称控件命名按照PB默认的前缀,详细如下:2.6对象<对象前缀> + '_'+PBL名称+'_'+ 对象名称U_XXX_XXXX(非可视对象,U__PBL名称_对象名称) VU_XXX_XXXX(可视对象,VU__PBL名称_对象名称)注:非可视对象需继承自nvo_Module特别注意1.门户程序不能使用非门户中的对象2.非门户程序在BS_PUBLIC公共库有相同功能组件的情况下,不得使用其它组件2.7变量<变量作用范围前缀> + <变量数据类型前缀> + '_' + 变量名称例:门诊号参数As_mzhm注:门户下的产品不能使用自定义公共全局变量BSHRP4规定全局变量如下:2.7.1作用范围2.7.2数据类型2.8结构2.9函数2.10事件所有用户自定义事件均以ue_开头,后接事件名称。
常用脚本pb

PB常用脚本要求:①读懂并能写出各语句的解释;②灵活运用在不同的对象上;③用于实验要求的程序中。
1. 应用对象初始化,写在应用对象的open事件中:SQLCA.DBMS = "ODBC " //指定默认事务对象使用的数据库连接方式为ODBC数据源SQLCA.AutoCommit = False //设置数据库自动提交状态为FlaseSQLCA.DBParm = "ConnectString='DSN=my_db;uid=;pwd=' " //配置数据库的连接环境,如数据源、用户名、密码CONNECT ; //连接数据库IF SQLCA.SQLcode<0 then //判断连接状态,若不能正常连接将给出错误信息messagebox(" 数据库连接失败! ",SQLCA.SQLErrText,stopSign!,OK!)ELSEopen(w_main) //打开主窗口,主窗口必须事先创建。
End if2. 窗口打开时初始化,写在窗口对象的open事件dw_1.settransobject(sqlca) //把数据窗口控件dw_1与事务对象SQLCA建立联系dw_1.retrieve() //读取数据库数据到数据窗口控件dw_1中3. 添加按钮:写在按钮的c l i c k事件long l_rowint ss=dw_1.rowcount() //计算数据窗口控件内容的总行数l_row=dw_1.insertrow(s+1) //在s+1位置向DataWindow控件插入一个新行。
dw_1.scrolltorow(s+1) //滚动到dw_1的新行处dw_1.setcolumn(1) //设置光标到新行的第一列dw_1.setfocus() //定位光标到设置的位置4. 删除按钮:写在按钮的c l i c k事件int ss=dw_1.getrow() //得到当前行号dw_1.deleterow(s) //从DataWindow控件中删除当前行。
VB常用术语释义

VB 常用术语释义1.项目(Project):是用户创建的文件集合,这个集合包括用户的Windows 应用程序。
2.控件(Control):是Toolbox 窗口中用户置于窗体上的工具,用于配合用户控制程序流程。
3.代码(Code):是所写的编程语句的另一个名字。
4.像素(Pixel):代表图形元素,表示监视器上最小的可寻址的图形点。
5.全局变量(Global Variable):就是在整个模块内或整个应用程序内均可使用的变量。
6.函数(Function):是一个例程,接受零个、一个或多个参数并根据这些参数返回一个结果。
7.死循环(Infinite Loop):是一个永不终止的循环。
8.语法错误(Syntax Error):是由于拼错一条命令或使用不正确的语法引起的一种错误。
9.消息框(Message Box):是为向用户提供信息而显示的对话框。
10.循环(Loop):就是一组重复执行的程序指令集。
11.赋值语句(Assignment Statement):是用来给控件、变量或其他对象赋值的程序语句。
12.结构化程序设计(Structured Programming):是一种程序设计方法,用它来把长程序分成几个小过程,尽可能分得详细一些。
13.调用过程(Calling Procedure):是触发其他过程执行的过程。
14.被调用过程(Called Procedure):是由其他过程调用的过程。
15.标准函数过程(Standard Function Procedure):是一个独立的非事件过程,当被其他过程调用时,它完成一定的工作并返回一个值给调用者。
16.标准子程序过程(Standard Subroutine Procedure):是一个独立的非事件过程,当被其他程序调用时,它完成一定的工作。
17.引用传递(By Reference):是一种传递值并允许被调用过程修改这些值的方法。
它也叫做通过地址传递(By Address)。
最全PB串口编程资料

PB串口编程资料----MSCOMM32参数基本介绍MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。
MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。
Microsoft Communications Control(以下简称MSComm)是Microsoft公司提供的简化Windows 下串行通信编程的ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。
具体的来说,它提供了两种处理通信问题的方法:一是事件驱动(Event-driven)方法,一是查询法。
1.MSComm控件两种处理通讯的方式MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。
1.1 事件驱动方式事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。
在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者Carrier Detect (CD) 或Request To Send (RTS) 线上一个字符到达或一个变化发生时。
在这些情况下,可以利用MSComm 控件的OnComm 事件捕获并处理这些通讯事件。
OnComm 事件还可以检查和处理通讯错误。
所有通讯事件和通讯错误的列表,参阅CommEvent 属性。
在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。
这种方法的优点是程序响应及时,可靠性高。
每个MSComm 控件对应着一个串行端口。
如果应用程序需要访问多个串行端口,必须使用多个MSComm 控件。
1.2 查询方式查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。
在程序的每个关键功能之后,可以通过检查CommEvent 属性的值来查询事件和错误。
如果应用程序较小,并且是自保持的,这种方法可能是更可取的。
例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
PB编程规范

PB编程规范一、编程对象的分类以PowerBuilder作为前台开发工具,进行软件开发的过程中,所涉及的编程对象如下所示.1.源代码2.可执行代码3.资源文件(如pbr,bmp,ico文件)4.配置文件(如ini文件)5.其他二、编程对象的组织使用PowerBuilder开发工具产生的对象,可以按照设计(正在编写和调试)和运行(调试,编译结束,可以接受测试和运行)中的状态进行编程对象的组织规划,重点是目录结构的划分,具体目录的相对关系如下所示.1.源代码 SrcCode 可按子系统再划分子目录2.可执行代码 Program 可按子系统再划分子目录3.图片文件 Images 包含应用图标ICO文件,BMP/JPG/GIF文件4.配置文件 Ini5.其他 Other三、团队开发1.服从团队开发纪律和进度安排.2.未经项目负责人或项目经理的许可,不允许擅自进行可能影响其他人员工作的任何工作,如添加Library,添加数据库表等;如有必要,必须提出书面申请,说明原因以及要改动的操作的详细说明,由项目管理人员统一进行操作和协调.3.代码必须符合标准规范,项目负责人或者项目经理有权责成开发人员修改其不符合开发规范的代码.4.代码集中存放到文件服务器的某一目录,客户机统一映射为固定盘符,确保程序在任何时候都是完整的可用版本而不是零散的代码集,不允许拷贝到本地硬盘进行开发.5.当编写某些公用部件和代码时,必须使用Check out功能确保代码独占使用而不能让其他人同时也修改,当修改完成的时候必须及时使用Check in功能确保代码消除独占状态以使其他人能及时使用修改后的代码.6.各人设置自己在团队中的User ID:Library->Source->Connect->选择[PB Native]->设置User ID,填写自己姓名的拼音缩写或者英文名.7.版本说明8.软件版本号标准为A . B,其中A和B为0到99之间的数字.9.当A大于1并且B为奇数时,表示当前版本为处于开发,测试阶段的版本,定义为"开发版";当B为偶数时,表示当前版本为稳定的,可实际运行的版本,定义为"稳定版".10.当软件开始开发时,确定版本号为0.1;随着软件开发的进度,版本号随着每一次主要功能的完善而变化,最高达到0.99.11.软件初步开发完成后,经过软件开发小组内部测试,初步能够完成软件需求提出的业务<>规范<>和技术要求,软件基本能正常运行,此时,确定该软件版本号为1.0 Beta X ,这意味着软件可以投入实际应用测试,其中X代表测试的次数.12.当软件的1.0 Beta X 版本推出并经过用户实际应用或者试运行测试后,此时,确定该软件版本号为 1.0RC.这意味着软件可以投入实际应用运行.13.当软件的1.0 RC版本投入实际应用运行达到某一时限后,则认为该版本已经稳定,可以完全正常地使用了,这时,确定软件的版本号为 1.0,这意味着软件开发完成,可以投入实际应用和推广.14.当软件进行升级时,如果功能变化不大,则次版本号变化;如果软件功能发生重大变化时,主版本号变化.软件的最终版本号由项目负责人或者项目经理进行确定.四、对象命名1.命名约定部件名称可以达到40个字符,组成方式为A_B. A部分表示前缀,表示部件的类型. 紧跟着一条下划线"_","." 部分描述此部件的名称.可以根据情况具体决定B的构成.推荐将B部分分解成两部分: 功能代码_功能描述. 在重要变量后面写注解表示此变量的用途. 比如,常用的几种对象命名是窗口的命名:w_功能代码_功能描述. 数据窗口控件的命名:dw_功能代码_功能描述. 数据窗口对象的命名:d_功能代码_功能描述. 菜单命名:m_功能代码_功能描述. 用户对象:uo_功能代码_功能描述.2.具体命名规则1)函数的命名规则函数名='函数适用范围代码' +'f'+'_'+'函数功能描述',其中函数的适用范围代码和意义如下: G全局函数; W窗口函数; M菜单函数; U用户对象函数.例:检查SQL语句执行结果的全局用户函数命名如下:gf_checksql().2)应用的命名规则应用的命名应使用与该应用的意义相关联的英文字母,例如,app_si表示社会保险应用系统.3)PBL库PBL库组织的好坏很重要,它会影响应用开发和维护的容易程度以及应用的性能.Library的组织应遵循以下原则:Library的大小.PowerBuilder对Library的大小没有限制,但最好使之小于1MB,Library太大,PowerBuilder要花更多的时间去打开和存储对象,这会影响开发的效率.Library的数量.尽量用最少的Library数量.应在Library的数量和每个Library中对象数量之间找到平衡点,如果Library数量太多而每个Library中对象数量太少,搜索路径会太长,影响运行效率.Library的优化.要在Library画笔中经常对Library进行优化.随着时间的推移,Library会被分段,会使Library的存储变得不连续,影响运行效率.Library的分类组织.PBL库可按子系统或功能组织,一般应用都包含公共PBL库.每个PBL库文件命名应该与该文件作用相关联,例如报表PBL库文件命名为report.pbl.每个PBL库文件应该包含详细注释,列出该PBL文件包含哪些对象,对应哪个子系统,与其他PBL(调用)关系等信息. 为了有效地进行团队开发,实现对PB源码的管理,要求基于对各方因素(如应用代码的执行效率和所占存储空间)和维护上的全面考虑,对PB源码实行分类的原则.PowerBuilder的Library 的分类原则有两种方式:a)制定对象分类法根据所制定的不同类的对象进行分类.例:将所有的窗口放在一个Library中.b)功能模块分类法根据系统的功能模块的不同,将属于不同类的制定对象放在一个Library中.这是一种更为有效的方式.4)初始化配置文件初始化配置文件的命名必须与应用的名称一致,扩展名为.ini,例如:si.ini.用户的可变环境信息都应该保存在该文件中,关键信息加密保存,并且提供管理工具,而不是手工修改该文件.5)资源文件资源文件的命名必须与应用的名称一致,扩展名为.pbr,例如:si.pbr.6)窗口窗口的命名必须以w(Window的首字符)开头,加下划线(_),其后紧接与窗口意义相关联的英文字母(总长不得超过PowerBuilder的40个字符限制),并且在注释(Comments) 框内写出该窗口的作用(中文或英文),如下所示.窗口命名实例:w_about 关于本系统的版权信息w_system_error 系统出错提示w_main 系统主界面w_report_sheet 报表输出7)数据窗口普通数据窗口的命名必须以dW(DataWindow缩写)开头,代码表下拉式子数据窗口必须以dddw(DropDownDataWindow缩写)开头,加下划线(_),其后紧接与数据窗口意义相关联的英文字母(总长不得超过PowerBuilder的40个字符限制),并且在Comments框内写出该数据窗口的作用(中文或英文),如下所示.数据窗口命名实例:d_system_error 显示系统错误,被w_System_Error窗口调用d_categories 对产品分类,被w_Report_Sheet窗口调用d_detail_parts Parts of Products Described in Detaild_detail_function Products Function Described in Detail dddw_sex 性别代码表8)菜单菜单的命名必须以m(Menu缩写)开头,加下划线(_),其后紧接与菜单意义相关联的英文字母(总长不得超过PowerBuilder的40个字符限制),并且在Comments框内写出该菜单的作用(中文或英文),如下所示.菜单命名实例:1 m_main Front End Main Menu2 m_report Report Subsystem Menu3 m_main_pop 主界面的弹出菜单9)函数函数的命名必须符合f_subsystemname_detailname或lf_detailname格式,其中gf表示是全局函数,subsystemname是子系统的英文缩写,detailname是与函数意义相关联的英文字母(总长不得超过PowerBuilder的40个字符限制),对于全局函数应该在Comments框内简短写出该函数的作用(中文或英文),如下所示.函数命名实例:gf_help_Index 帮助子系统索引全局函数lf_get_user_info 获取用户信息局部函数gf_query_sortbyname 查询子系统名排序全局函数同时,在编写时应严格按后面介绍的格式在脚本(Script)前写出注释.10)用户对象用户对象的命名必须以uo(UserObject缩写)开头,加下划线(_),其后紧接与用户对象意义相关联的英文字母(总长不得超过PowerBuilder的40个字符限制),并且在Comments框内写出该用户对象的作用(中文或英文),如下所示.用户对象命名实例:uo_external_function Cross platform user object ancestor uo_report_structure User Object as a structure For report 11)控件控件的命名必须以控件名称缩写开头,加下划线(_),其后紧接与控件作用相关联的英文字母(总长不得超过PowerBuilder的限制),如表下所示.控件命名实例:CommandButton cb cb_okPictureButton pb pb_thank_infoCheckBox cbx cbx_age_showRadioButton rb rb_typical_setupStaticText st st_user_idPicture p p_user_photoGroupBox gb gb_detail_infoLine ln ln_h_separatorOval oval oval_used_flagRectangle r r_photo_frameRoundRectangle rr rr_companyflagSingleLineEdit sle sle_user_nameMultiLineEdit mle mle_book_commentsRichTextEdit rte rte_student_answerEditMask em em_telephone_noHScrollBar hsb hsb_time_setVscrollBar vsb vsb_money_setDropDownListBox ddlb ddlb_your_favouriteListBox lb lb_department_namePictureListBox plb plb_user_identificationListView lv lv_all_userTreeView tv tv_customersTabPage tpg tpg_ordinary_superTab tab tab_superDataWindow dw dw_user_info_detailGraph gr gr_month_reportOLE ole ole_word_docDropDownPictureListBox ddplb ddplb_photo_preview五、变量命名变量取名应遵守命名规范,对使用频繁的或关键变量,为了便于阅读和修改,在定义时应加上注释标明其含义.例如: String ls_name // 参保人员姓名变量命名规则为: 变量类型 + 数据类型 + '_' + 含义代码例如: 字符串型实例变量: is_变量名; 日期型全局变量: GD_变量名; 一般变量,用小写字母; 全局变量,将整个变量名大写; 变量:都用小写字母声明.1.变量类型约定数据类型前缀:Any a_Blob bb_Boolean b_Character ch_Date d_DateTime dt_Decimal c_Double db_Integer I_Long L_String s_Time t_UnsignedInteger ui_UnsignedLong ul_DataWindow dw_DataWindowChild dwc_MailSession ms_Menu m_Structure str_Transacttion trans_Window w_UserObject uo_2.变量范围命名约定变量范围命名约定:Global g _ 全局变量将在整个应用中有效.它们可能从其他对象面板Shared s _ 共享变量在一个对象及其实例中有效Instance i _ 实例变量仅在一个对象的实例中有效.相应对象的不同实Local l _ 局部变量仅在一段子程序或在script开始和结束时生效Value v _ 例:vdw_datawindowReference r _ 例:rl_long1) a. 全局变量的命名必须符合gT_subsystemname_detailname格式,其中g表示是全局变量(Globe),T是数据类型(DataType)的简写:i表示整型(int),l表示长整型(long),c表示字符型(char),s表示字符串型(string).subsystename是子系统的英文简写.detailname是有具体意义的英文字母.例如:gs_query_user_info,即为查询子系统定义了一个字符串型全局变量.2) b. 局部变量的命名必须符合lT_detailname格式,其中l表示是局部变量(Local),T是数据类型(DataType)的简写:i表示整数型(int),l表示长整型(long),c表示字符型(char),s表示字符串型(string).例如:li_user_salary,即定义了一个整数型局部变量.3) c. 实例变量的命名必须符合iT_detailname格式,其中i表示是实例变量(Instance),T是数据类型(DataType)的简写:i表示整数型(int),l表示长整型(long),c表示字符型(char),s表示字符串型(string).Detailname是有具体意义的英文字母.例如:is_product_name,即定义了一个字符串型实例变量.六、程序规范1.书写格式1)用分层缩进的写法显示嵌套结构的层次.2)在注释段与程序段,以及不同逻辑的程序段之间插入空行.3)每行只写一条语句,当需要滚动显示时应该分行书写.2.流控制流控制首先应遵守PowerBuilder语法规范,且用分层缩进的写法突出显示嵌套的层次结构,例如:For i = 1 To 100For j = 1 To 50For k = 1 To 200Matrix[i,j,k]=1NextNextNext3.注释及格式要求注释总是加在程序中需要概括性说明或不易令人理解或容易令人理解错的地方.注释语言应简练,易懂而又准确,所采用的语种首选是中文,如有输入困难或特殊需求也可采用英文.注释原则:1)函数或过程的注释在函数头部必须说明函数的功能和参数(值参,变参);在函数的主体部分,如算法复杂时,应以注释的方式对其算法结构做出说明;函数申请过全局资源且有可能导致资源紧张应加以注明(如内存和文件柄等);函数有副作用一定以十分醒目的方式(如加!号等)注明.2)语句的注释应对不易理解的分支条件表达式加注释;不易理解的循环,应说明出口条件(有GOTO的程序还应说明入口条件);过长的函数实现,应将其语句按实现的功能分段加以概括性说明.3)常量和变量的注释在常量名声明后应对该名做适当的注释,注释说明的要点是: 被保存值的含义(必须) ;合法取值的范围(可选);全局量需要对以上逐点做充分的说明.4)制定对象的注释每个开发人员针对自己所制定的窗口,菜单,数据窗口,数据管道和用户对象等添加注释,要点是:标注对象的用途;标注对象的制定人员;标注时间或者修改时间.4.具体格式要求如下:1)在窗口Open事件前应说明/* ======================================================= */ // 窗口中英文名称:// 窗口作用:// 作者:// 日期:/* ======================================================= */2)在事件脚本(Script)之前应说明/* ======================================================= */// 脚本作用:// 输入参数及数据类型:// 返回参数及数据类型:// 全局函数及其用途:// 全局变量及其用途:// 作者:// 日期:// 修改人的姓名:// 修改日期:// 修改原因:/* ===================================================== */ 若有多人修改,每个人均加上自己的注释,而不能改他人的姓名,日期,原因,对要修改的脚本,只能注释不能删除,并且在修改的地方加上修改人名,日期和"Beginning Modification... ","Ending Modification"字样.5.脚本中的注释1)单行脚本程序注释:// 注释文本脚本的程序段注释:/* ================================== *///// 注释文本///* ================================== */变量的注释如下:数据类型变量名 //注释6.在函数,存储过程等脚本(Script)之前应说明/* ======================================================= *// 函数名称:// 参数解释:// 功能描述:// 调用举例:// 最初作者:// 编写日期:// 返回值:// 变量情况:// 修改人:// 修改日期:// 修改原因:/* ======================================================== */七、Powerbuilder脚本编程规范1.Powerbuilder编程注意事项1)不要在子应用中声明全局变量!如必须声明全局变量,则应事先向项目负责人申请.2)供别的文件或函数调用的函数,绝不应使用全局变量交换数据.3)所有SQL语句均需判断返回结果(包括SELECT,COMMIT语句).例: If sqlca.sqlcode = -1 Then错误处理程序跳出Else正常End If4) d. 缺省SQLCA的连接语句connect,在应用Open事件中完成,其disconnect在主应用的Close事件中完成,其余任何pbl中均不能有disconnect语句.5) e. 由于要连接多个数据库,需要用Create创建对象,比如:SQLSYB,则用connect usingSQLSYB,处理完毕后用disconnect usingSQLSYB,并且用 destroy SQLSYB释放资源.2.编码标准1)在代码块前后留一个空行.例子如下:If ThenEnd IfFor = To StepNext2)把单行注释与当前script程序的缩进位置对齐://This is a comment For condition1If Then//This is a comment For condition2If Then//This is a comment For action1End IfEnd If3)缩进应以Tab键实现,不得采用空格.4)变量采用小写格式.注意:变量全部用小写;一个变量一行,每个变量必须注释;通常情况下,变量的后半部分尽量用数据库字段名;变量声明全部在脚本之前声明完毕;所有变量声明时按代码功能段 + 变量类型进行排序.例如:Long ll_quantityString ls_name对象名采用小写,属性,关键字,保留字和内置函数均用首字母大写格式:w_cont_de.Visible = Truem_mdi.m_file.m_print.Enabled = False数据窗口控制的函数加上修饰,而不以数据窗口对象作为参数:dw_main.SetTransObject(sqlca)dw_main.SetRowFocusIndicator(Hand!)dw_main.Retrieve()5)当连接起来的字符串超过了两行的长度时,使用 + 符作为下行的第一个字符,每次均采用缩进格式.字符串的随后部分应该再次缩进.例如:ls_msg = "连接数据库失败!错误信息为:~r~n" &+ Sqlca.SqlErrText &+ "请与系统管理员联系"6)PowerBuilder保留字(关键字)首字母大写其余小写,这样看起来层次清晰,如:This,Parent,ParentWindow,True,False,Return,Halt与Close.7)PowerBuilder内部函数及属性每个字首字母大写其余小写,这样看起来层次清晰,如:sle_user.Text,dw_1.SetTransObject(Sqlca),Sqlca.SqlErrText.8)SQL语句按如下格式书写:SELECT name,sex,dept_idINTO :ls_name,:ls_sex,:ls_dept_idFROM employeeWHERE emp_id = :ls_emp_id ;9)程序中应避免出现goto跳转语句.3. 脚本中一些常用功能模块的编程约定1)光标操作过程的编程约定如下:Declare Cursorname Cursor forSelect语句Open Cursorname;fetch Cursorname intoDo While Sqlca.Sqlcode = 0fetch Cursorname intoLoopClose Cursorname光标命名规则:"Cur" + "_" + 名称.2)(2)调用数据库存储过程的编程约定如下:declare Procedurename procedure For StoredProcedureName:Value1,:Value2......;execute Procedurename;fetch Procedurename into ;close Procedurename;commit;存储过程命名规则:"Pro" + "_" + 名称.有些系统存储过程(例如:sp_droplogin)不能当做一个事务提交,为了执行它,就必须先置事物对象的AutoCommit属性为True,当存储过程执行完毕后再将事务对象的AutoCommit属性置为False.3)在每一个SQL语句之后必须判断SQL语句执行成功与否,成功则继续,不成功则做相应处理并给出一条提示信息.If Sqlca.SqlCode 0 ThenRollback ;MessageBox("错误信息","操作失败!")ElseCommit;MessageBox("提示信息","操作成功!")End If4)所有操作符(包括等号)前后应留一空格,使程序看起来更清晰.例如: ls_msg = ls_title + ls_error5)仅当绝对需要时才在循环结构体中使用函数调用,也就是说,仅当函数的返回值依赖于循环迭代的值时才使用函数调用.使用如下方法:Long ll_num_selectedll_num_selected = lb_devctg.TotalSelected()For i = 1 To num_selectedNext不使用下述方法:For i = 1 To lb_1.TotalSelected()Next4. PB中的任何一个窗口都要有注释说明一般在窗口的Open事件中对窗口的功能进行全面的介绍,以便维护人员可以很清楚地知道窗口的功能和维护要点.其格式可参见前面的说明.5. 表的操作在程序中涉及多个表的操作时,需严格按照各项目组"表操作顺序一览表"规定的顺序对表进行操作,以防发生锁表现象.八、控件编程规范1.公共部分1)应尽量为所有控件使用有意义的名称,重要控件不允许使用 pb_1之类无明确意义的名称.2)大号字体:各窗口控件字体为Arial,字号为12号,字色为黑色.小号字体:各窗口控件字体为宋体,字号为9号,字色为黑色.3)显示控件和输入控件底色分开,显示控件为灰色(窗口颜色),输入控件为白色.4)输入区和显示区分别放置.5)按钮排列紧凑,在窗口右侧纵向排列时靠上放置;在窗口下方排列时靠右放置,因为左撇子操作者毕竟是少数.6)各字符类控件对齐方式为左对齐;数字类控件为右对齐,且必须按所需格式设置Format属性;日期控件必须保证能完整显示所需日期格式,应用yyyy-mm-dd风格.及有前导0的形式(避免2000年问题),可采用左对齐或中对齐.7)CommandButton控件的推荐高度为104.2.控件细则1)静态文本框静态文本框命名规则:st + '_' + 名称(若为label可不改名).外观规定如下:背景色:buttonface;前景色:黑色;边框:无;高度:72.建议在其后加上全角冒号(:).2)单行编辑框单行编辑框命名规则:sle + '_' + 名称.(1)外观背景色:白色;前景色:黑色;边框:3D Lowered;高度:72.(2)程序说明a. 响应事件建议自定义 Keydown 事件,尽量不要用 Modify 事件.b. 当获得焦点时控件背景变为深蓝色,字体颜色变为黄色,失去焦点时还原缺省颜色.3)命令按钮命令按钮命名规则:cb + '_' + 名称(1)外观高度:对于小号字体(宋体9号)为92;对于大号字体(Arial 12号)为108.宽度:对于小号字体(宋体9号)为325;对于大号字体(Arial 12号)为402.(2)说明命令按钮控件不要使用 cb_1 之类无明确意义的名称(尤其在窗口中这类控件比较多时,可能令人分不清各个控件的作用).4)图像按钮尽量不用图形按钮,而用命令按钮.图像按钮命名规则: pb + '_' + 名称.外观规定如下:尺寸:用图像原始尺寸;图像:按钮的有效与无效采用不同的bmp图像以示区别.5)5复选框复选框命名规则:cbx + '_' + 名称外观规定如下:背景色:buttonface;前景色:黑色;边框:3D Lowered;高度:92;位置:标签在右.6)单选按钮单选按钮命名规则:rb + '_' + 名称.(1)外观背景色:buttonface;前景色:黑色;边框:3D Lowered;高度:92;位置:标签在右.(2)程序说明单选按钮最好与组框配合使用.7)组框组框命名规则:gb + '_' + 名称.外观规定如下:背景色:buttonface;前景色:黑色;边框:3D Lowered.8)屏蔽编辑框屏蔽编辑框命名规则:em + '_' + 名称.(1)外观背景色:白色;前景色:黑色;边框:3D Lowered.(2)程序说明a. 响应事件建议用自定义 Keydown 事件,尽量不要用 Modify 事件.b. 当获得焦点时控件背景变为深蓝色,字体颜色变为黄色,失去焦点时还原缺省颜色.9)下拉列表框下拉列表框命名规则:ddlb + '_' + 名称.外观规定如下:背景色:白色;前景色:黑色;边框:3D Lowered.10)应用应用命名规则:app + '_' + 应用名.为应用选择一个图标,以便在运行时标识应用.在 Open 事件中声明 SQLCA 全局变量和打开应用主窗口.在 Closequery 事件中编写退出应用之前的处理程序.在 SystemError 事件中编写系统出错的处理程序.11)窗口窗口命名规则: w + '_' + 窗口名. 主窗口采用 main 窗口类型,子窗口一般采用 Popup 窗口类型,无控制菜单,无最大化最小化按钮,不可改变大小.若为一般性提示窗口,用 response 窗口类型.窗口以buttonface 颜色为背景颜色. 重要的菜单选项设置Toolbar 功能. 窗口上下左右四周应至少留出两个网格,而不得将对象填满整个窗口!12)菜单菜单命名规则: m + '_' + 菜单名. 菜单项 MenuItem 的名称以该菜单项在整个菜单中的物理位置分层次命名.例:若 MenuItem 位于整个菜单的第三列第二行,则命名为 m_32.或文件菜单下的"关闭"菜单项,则命名为 m_file_close.13)数据窗口对象数据窗口对象命名规则:d + '_' + 功能含义. 打印用数据窗口背景色为白色,题目为16号字,内容为11号字,显示比例为75%. 显示用数据窗口背景色原则上为 buttonface,可视窗口制作是否美观的实际情况使用白色数据窗口各列显示框高度为 72. Tabular和Grid风格数据窗口,无表头时列名文本边框为3D Raised.Detail区为3D Lowered,背景色原则上为白色.Grid风格数据窗口一般不出现线条.14)数据窗口控件数据窗口控件命名规则:dw + '_'+ 功能含义. 数据窗口边框原则上为 3D Lowered,也可酌情使用 none 外加 group.15)用户对象命名用户对象命名规则:uo + '_'+ 功能含义. 公共对象对应以上各控件<>规范<>制作.九、用户反馈在系统中对用户的操作及时地提供反馈信息是十分重要的,这些反馈信息也许只是像警告铃或将鼠标显示成沙漏等一样不起眼的反应,但是却能使用户树立信心,使他感到仍在控制软件而没有死机.1.使用反馈的场合在客户/服务器环境下用户最不能忍受的是系统反应速度慢,而在实际的应用中却会经常遇到计算机需要比较长的时间执行一个或一批操作.在这种情况下,应加入反馈,让用户了解应用正在做什么.比如: 在需等待时间较短(0~10秒)的情况下应将鼠标显示成为沙漏,为此可调用函数SetPointer(HourGlass!)来实现这一功能; 在处理时间需10~18秒时,由微帮助来显示处理进度; 当处理时间需18秒以上时,要显示这个处理窗口或显示进度条; 当一个长时间的处理完成后应发出一个提示警告声如Beep(1),这样用户就不必总看着屏幕.2.提供反馈的几种技术手段1)微帮助微帮助是MDI(多文档界面)框下面的状态条中的文字.窗口底部的微帮助一般有两个作用:一是在用户选择菜单项或其他窗口控件时,显示更多的文字信息来解释或提示用户所要进行的操作是什么;另一个用途是系统在处理过程中显示正在进行的工作状态,以使用户了解系统的处理进度,从而免去对死机的担心.2)工具条的帮助当鼠标停留在某一个工具条上时,会出现一个弹出式信息框,在PowerBuilder 4.0以上的版本中,缺省显示的是工具条文字.也可以用菜单画笔在工具条文字之后加一个逗号,加入一段更长的文字来定义一个不同的工具条说明.例如,键入"退出,关闭应用",将看到在带文字的工具条图标上显示的文字是"退出",而弹出的信息框显示的是"关闭应用".3)声音提示在用户可能进行破坏性操作时,用声音及时提出警告是必要的,但是不能滥用,因为当用户无法正确操作软件或做了不希望做的事情时,听到警告声反而会更加烦恼,因此要慎重使用这种反馈方法.此外,在一个长处理结束时使用声音反馈 ( 如警告声或小段悦音)也是必要的.十、提高程序的健壮性1.安全的应用软件在应用软件的开发中,重要的一个因素是要给用户提供一个安全的工作环境,在软件中不应藏有任何"地雷",在用户将要进行破坏性的且难以恢复的操作时,系统应当给予应有的提示.用户只有充分相信软件是安全的,才会乐于使用它,才会放心地去使用它,才能更高效地去探索这一软件所提供的新功能.2.什么是安全的应用最重要的,但也是最不容易实现的是排除可能会使应用非正常终止的错误.在任何情况下,最终用户都不应看到应用出现保护性错误而退出系统,这种错误最容易使用户对软件失去信心.因为这意味着用户要中断思路,并费时费力地重新登录,而且已进行的操作也会因没有存盘而全部丢失.当然造成系统终止的原因很多,可能是网络,硬件,系统软件或是 PowerBuilder本身的问题,但是开发者应当尽量周全地考虑到各种可能发生的问题,使出错的可能降至最小.特别是使用PowerBuilder开发的软件的确经常会出现保护性错误,但是开发人员却不能因此怨天尤人,而是要多做测试,选择最为保险的方法实现相同的功能.此外,在使用PowerBuilder编程时,还有一种常见的导致非正常终止的情况是由于程序员自己的原因造成的,这就是变量联接滞后问题,即在编译时定义一个有效的对象类,但是在运行时却没有创建它的实例或这个实例已注销(destroy);这时如有一段代码引用到这一对象,系统却无法在内存中找到它的实例,由此导致应用终止.所以,在引用变量时,应当首先检查它是否存在实例,例如,在一个窗口中引用了另外一个窗口的对象,就应首先检测它在执行代码之前是否已经创建了一个实例.在下面的例子中,win_A这一窗口对象可能在代码执行时并没有创建,因此就应当在执行前用IsValid函数来检查其是否有效:If IsValid(win_A) ThenClose(win_A)End If3.使用数据窗口中应注意的问题PowerBuilder的代码将引用很多数据窗口中的列,指代这一列的方法可以是列名也可以是列号.列号是指这一个数据窗口在执行 SELECT语句中排。
第09章PowerScript语言

父对象或控件 直系祖先 用户对象的直系祖先
数据库原理及开发
4
9.1 PowerScript基本概念
9.1.3 代词
1.Parent:
– (1)当为窗口中的控件编写脚本使用Parent时, Parent指代包含控件的窗口。
– (2)当为用户对象中的控件编写脚本使用Parent时, Parent指代用户对象。
– 常量是在程序运行过程中其值保持不变的量。 声 明 常 量 时 需 要 加 关 键 字 CONSTANT , 必 须赋初值,并且不能再改变。
– 常量声明的语法格式为:
CONSTANT 数据类型 常量名 = 值
– 其中常量名一般用大写字母表示,以便将其 和变量名区别开来。
–注意,声明常量时不能在一行中进行多项声 明。
单引号(‘)
~‘
波浪号(~)
~~
2/14/2021
数据库原理及开发
9
9.1 PowerScript基本概念
9.1.5 特殊ASCII字符 包括上表中所列字符在内,任何ASCII字
符都可以在~符号后用它的ASCII码值表 示,ASCII码值可以用十进制(000-255), 十六进制(~后接小写的h,范围01-FF), 八进制(~后接小写的o,范围000-377)。
2/14/2021
数据库原理及开发
10
9.1 PowerScript基本概念
9.1.6 断行、续行和注释
1.语句的断行、续行和分隔
– 分隔符:PowerScript的行分隔符是分号“;”。
– 断行:可以加上分隔符表示断行,把多条 语句写在一行上。
– 续行:在语句中间加上续行符“&”,换行 后接着书写。
– 另外,对那些可以确定数据类型的变量,应避免 使用Any类型,原因在于:
PB编程培训资料

Neusoft Co., Ltd.
应用-Application
• • • • 如何建立应用(Application) 事件及脚本(Events and Scripts) 连接(Transaction) 入口(Start Pointer)
Neusoft Co., Ltd.
应用-1.建立
1、Menu->File->New->Application (菜单-文件->新建->开始向导->Application) 2、选择应用名称和存放的库文件 一个应用就建立完毕。实际上这个应用没有任何脚本、窗口,也没有处理任何事情。 应用建立完毕后,PB自动建立了一个PBL文件(PowerBuilder Library),并在这个PBL文件 中创建了一个Application entry(应用条目) 一般,一个应用都有一个主窗口,由这个窗口负责和用户的交互过程,而在应用的open 事件的脚本中处理的就是如何打开这个窗口,如何和数据库建立连接,如何初始化一些全 局变量,关闭应用时(Close事件)做如何处理等等。如: Open事件: ……. connect using sqlca; open(w_main_frame) Close事件: disconnect using sqlca; destroy xxxx 就是在 譬如,建立应用名为pb_lesson,存放库名为lesson.pbl,则在lesson.pbl中就存在了一个 pb_lesson的条目,当然,可以在其他pbl中创建一个新的application.
Neusoft Co., Ltd.
数据库基本知识-4
• 四、ASA的数据库管理 Sybase 随PB发行的Adaptive Server Anywhere (ASA) 6.0 是短小 精悍的个人数据库系统,支持了大多数的关系数据库操作。如日志、事 务、用户、触发器,并提供管理中心(Sybase central)来管理数据库的内容, 在PB中,一个小型的数据库应用用ASA作为后台数据库已经完全可 以胜任。本课程的后台数据库将主要放在ASA。 Sybase Central实际上是以插件方式运行的,他可以管理Sybase产 品中的大多数,如Sybase Enterprise (SYE)数据库, Jugar CTS PowerDynamo, 等等.提供了统一的界面。当然也可以通过SQL语句来管 理数据库。包括建表、索引、存储过程、触发器,数据更新,授权等等都可 以通过SQL语句来执行。 下面将通过演示来讲解关于Sybase Central的使用,特别是如何建 库,建表等操作。
PB 编码规范

PB 编码规范。
原来在聚赫的时候写的这是2010年写的一个规范给公司内部使用的。
PB毕竟是一个老语言了,命名规范和java,c# 差别很大其实代码规范见仁见智吧,良好的书写规范对自己没坏处的,当然对公司也大大的有好处,毕竟谁看到写的乱糟糟的代码心里都不爽。
但是真正能按照规范写代码的人毕竟不是太多,特别特别是代码的注释,更特别特别的是修改注释。
在看到蛋疼代码有蛋碎感的同时,还有一种想爆粗口的念头,想想别人看到咱们的代码会不会也有同样的感觉,所以大家尽量书写规范的代码,共勉。
变量命名规范(这样命名的变量很容易看明白这是实例,全局还是局部,已经变量的类型,变量的意义为修改代码带来方便)变量作用域+ 变量类型+ _ + 变量意义说明串一、变量作用域全局变量g_共享变量s_ //不推荐使用,共享变量不依赖于对象的实例存在实例变量i_局部变量l_注意:四种作用域前缀字母都为小写二、变量类型(以局部变量为例)数据类型类型声明前缀整形Integer li_字符型String ls_日期Date ld_日期时间DateTime ldt布尔Boolean lb_浮点Decimal ldec_Double Double ldou_注意:以上是主要的数据类型,前缀都是小写三、变量意义说明串变量说明字符串可以有2中写法1.推荐使用英文字符串做说明串,每个单词的首字母都要大写,如:ls_CheckedDate2.在英文不好表达时,可以使用中文全拼代替,前两个中文汉字使用全拼,首字母大写,后面汉字使用全拼的首字母,都要大写如:lb_DianJiLBTPX 点击列标题排序可能有人会说用拼音不好,要用英文。
相对于用词霸翻译过来的英文我更只是用中文拼音。
其实pb也支持直接用中文,呵呵四、变量声明1.变量类型使用全称,如:整类使用Integer 而不是Int2.变量类型首字母大写,其余字母全小写如:String3.变量声明尽量不要在一行中声明太多变量,分行处理,在变量不多时可以每行声明一个变量4.变量名称要具有一定的实际意义,做到见其名知其意,在比较难理解时在变量后面添加必要的注释文字程序注释[可以使用pbhelper来辅助完成]程序注释可分3种注释1.函数、事件的说明注释。
pb数据窗口常用代码

一、连接数据库连接数据库也就是指定事务对象。
PowerBuilder提供了两个函数:SetTrans()和SetTransObject()。
语法格式:dw_control.SetTrans(TransactionObject)dw_control.SetTransObject(TransactionObject)其中,dw_control是所使用的数据窗口控件,transactionObject是所要指定的事务对象。
这两个函数有一个重要的区别就是在使用SetTrans()函数时,用户不需做任何数据初始化或事务对象初始化工作。
用户只需要在这里填充一个事务对象,PB 就会自动完成对该事物对象的初始化以及和数据库连接的工作。
而使用SetTransObject()函数时,用户必须首先把所用的事务对象连接到数据库上。
但是,这并不意味着SetTrans()函数比SetTransObject()函数更好,使用SetTrans()函数时,每调用一次函数必须连接一次数据库,因为这个函数在每个事务处理的末端都会执行Disconnect语句。
与此相反,使用SetTransObject()函数可以为数据库维持一个开放性的连接。
因此在一般情况下,为了提高效率,总是采用SetTransObject()函数。
这两个函数都是成功时返回1,发生错误时返回-1。
二、检索数据用于检索数据的函数只有一个,就是Retrieve()函数。
语法格式:dw_control.Retrieve()如果数据窗口控件上的数据窗口对象是有检索参数的,就要在这个函数调用时加上检索参数。
而且检索参数必须和数据窗口对象中定义顺序一致。
此函数返回一个长整型的数据,代表检索出来的数据行数。
如果发生错误,将返回-1。
三、更新数据当用户对数据窗口对象内的数据修改后,想把这些修改反映到数据库中去时,必须使用Update()函数。
语法格式:dw_control.Update()这个更新可能成功,也可能失败。
pb编程规范

PB开发规范一、命名规范1、Pbl库命名:一般采用模块缩写+存放对象类型.pbl命名,原则上单个pbl库不要超过2M大小,超过可以用模块缩写+存放对象类型+序号.pbl命名。
比如:MZ_DDDW_1.PBL。
2、Pbl库中存放对象的命名规则:3、窗口中控件命名规则:前缀用pb默认的缩写,加‘_’,后跟有意义的名字,不要采用p_1,p_2等无意义的命名。
4、PB变量命名规则:PB变量作用域前缀+pb变量类型前缀+_+有意义的名称,如string ls_doctor_name。
其中变量类型前缀如下:变量作用域约定如下:二、程序规范1、 书写格式 ● 单个事件或函数中的代码行数不能超过150行 ● 用分层缩进的写法显示嵌套结构的层次.● 在注释段与程序段,以及不同逻辑的程序段之间插入空行. ● 每行只写一条语句,当需要滚动显示时应该分行书写. ● 把单行注释与当前script 程序的缩进位置对齐: ●变量书写注意事项: ①变量全部用小写;②变量声明全部在脚本之前声明完毕; ●当连接起来的字符串超过了两行的长度时,使用 + 符作为下行的第一个字符,每次均采用缩进格式.字符串的随后部分应该再次缩进. ●建议PowerBuilder 保留字(关键字)、内部函数及属性首字母大写其余小写,这样看起来层次清晰,可通过一些工具规整。
●SQL 语句按如下格式书写:SELECT name,sex,dept_idINTO :ls_name,:ls_sex,:ls_dept_idFROM employeeWHERE emp_id = :ls_emp_id ;●程序中应避免出现goto跳转语句.●所有操作符(包括等号)前后应留一空格,使程序看起来更清晰.例如:ls_msg = ls_title + ls_error2、合适的注释对象的注释,可以在对象的Painter中增加注释,这些注释可以在Library Painter中看到.变量声明时,除临时变量i、j、k等外,原则上每行一个,在后面必须注释.对于Script,要在所有的事件处理程序或函数中添加完整的注释.首先,在每个Script的开头加注释,解释本Script段的功能、编写人员、编写时间、参数要求(如入口和出口参数等)在各程序段中编写必要的备注,备注应控制在20%的脚本量。
pb程序规范

pb程序规范一、书写格式a. 用分层缩进的写法显示嵌套结构的层次。
b. 在注释段与程序段,以及不同逻辑的程序段之间插入空行。
c. 每行只写一条语句,当需要滚动显示时应该分行书写。
二、流控制流控制首先应遵守PowerBuilder语法规范,且用分层缩进的写法突出显示嵌套的层次结构,例如:For i = 1 To 100For j = 1 To 50For k = 1 To 200Matrix[i,j,k]=1NextNextNext三、注释及格式要求注释总是加在程序中需要概括性说明或不易令人理解或容易令人理解错的地方。
注释语言应简练、易懂而又准确,所采用的语种首选是中文,如有输入困难或特殊需求也可采用英文。
注释原则:a. 函数或过程的注释(1) 在函数头部必须说明函数的功能和参数(值参、变参);(2) 在函数的主体部分,如算法复杂时,应以注释的方式对其算法结构做出说明;(3) 函数申请过全局资源且有可能导致资源紧张应加以注明(如内存和文件柄等);(4) 函数有副作用一定以十分醒目的方式(如加!号等)注明。
b. 语句的注释(1) 应对不易理解的分支条件表达式加注释;(2) 不易理解的循环,应说明出口条件(有GOTO的程序还应说明入口条件);(3) 过长的函数实现,应将其语句按实现的功能分段加以概括性说明。
c. 常量和变量的注释在常量名声明后应对该名做适当的注释,注释说明的要点是:(1) 被保存值的含义(必须) ;(2) 合法取值的范围(可选);(3) 全局量需要对以上逐点做充分的说明。
d. 制定对象的注释每个开发人员针对自己所制定的窗口、菜单、数据窗口、数据管道和用户对象等添加注释,要点是:(1) 标注对象的用途;(2) 标注对象的制定人员;(3) 标注时间或者修改时间。
具体格式要求如下:1. 在窗口Open事件前应说明/* ======================================================= */// 窗口中英文名称:// 窗口作用:// 作者:// 日期:/* ======================================================= */2. 在事件脚本(Script)之前应说明/* ======================================================= */// 脚本作用:// 输入参数及数据类型:// 返回参数及数据类型:// 全局函数及其用途:// 全局变量及其用途:// 作者:// 日期:// 修改人的姓名:// 修改日期:// 修改原因:/* ===================================================== */若有多人修改,每个人均加上自己的注释,而不能改他人的姓名、日期、原因,对要修改的脚本,只能注释不能删除,并且在修改的地方加上修改人名、日期和"Beginning Modification... ","Ending Modification"字样。
PB程序设计-第2章PowerScript编程语言

2.2.1 标准数据类型
• UnsignedInteger(UnsignedInt或UInt):无符号 整型。16位数,范围从0到65535。
• UnsignedLong(或ULong):无符号长整型。32 位数,范围从0到4294967295。
返回本节录
2.2.2 系统对象数据类型
在PowerBuilder中,窗口、菜单、各种控件 都是系统对象,每一种系统对象实际上都是 定义在PowerBuilder内部的一种数据类型。 在Browser画板中通过System选项卡可以浏 览到PowerScript的全部系统对象数据类型。 通常只需在相应画板中定义它们,对它们进 行可视化操作。但有时候需要动态地处理窗 口、菜单、控件等系统对象,这时就要定义 系统对象数据类型。
• Blob:大型二进制类型。包括文本文件、图像等。 • Boolean:布尔类型。布尔型变量只有True和
False,用于逻辑表达式。声明布尔类型变量 时,默认值为False。 • Character(或Char):单个ASCII字符。 • Date:日期类型。包括年(4位数)、月(2位 数)、日(2位数)。如:2019ˉ12ˉ05。
SQLSA、Error、Message)不需事先声明。 • 例如: Integer score=100
String city=″大连″,country
返回本节录
2.5 PowerScript语句
返回本节录
2.3.1 运算符
3.逻辑运算
• 逻辑运算符用来对布尔型的变量进行运算,运算 符有非(Not)、与(And)、或(Or),其结 果是True和False。
• 例: If A>10And A<100Then……
[计算机]Pb常用概念与术语及script编程规范
![[计算机]Pb常用概念与术语及script编程规范](https://img.taocdn.com/s3/m/1239fbd9f5335a8102d220d3.png)
Pb常用概念与术语及script编程规范1.dbms数据库管理系统的缩写,它是可以提供数据库管理功能的软件2.Profile保存在pb初始化文件中的命名的参数的集合,它定义一个指向数据库的连接3.Data Source数据源,pb有五种数据源:QUICK SELECT,SQL SELECT,QUERY,EXTERNAL和STRORE PROCEDURE4.ODBC开放数据库连接的缩写,是微软提供的访问数据库的接口标准.通过ODBC接口,PB可以连接到大部分DBMS5.MTSMTS是微软事物服务器的缩写,它是基于一个组件的事物处理系统,支持开放.发行和管理基于组件的应用PONENT组件是在JAGUAR中或MTS中的一个包含业务逻辑的可重用模块.用户对象可以作为组件发行到中间层的JAGUAR或MTS服务器中.7.LIBRARY库,存储PB对象的文件,它的扩展名是.PBL8.PAINTER画笔,创建和编辑PB对象的编辑器,或是管理数据或库的工具9.APPLICATION OBJECT应用对象是一个应用系统的入口点,它定义乐系统的一些应用级行为10.SCRIPT脚本是响应特定事件的一段语句的集合.在PB中编写脚本执行POWERSCRIPT语言11.PRIMARY KEY主键,唯一标识表中每一条记录的一个或多个列.EROBJECT用户对象,用户自定义的用于完成某项处理的.可重复使用的对象13.FOREIGN KEY外部键,是一种约束,要求构成外部键的一个或多个列的值必须对应主健表中的一个值14.EVENT事件,一个发生在对象或控制中的动作,可以触发一段脚本程序的执行.15.FUNCTION函数,执行特定处理的例程,在面对对象编程中,也称方法.16.POLYMORPHISM多态,同一个对象中的两个或多个名字相同,参数列表不同的函数17.METHOD方法,在面对对象编程中,方法是一个于对象有关的函数或例程18.EXTENDED ATTRIBUTES扩展属性,数据库列的扩展信息定义19.ENCAPSULATION封装,将相关的数据和过程打包在一个对象中.20.DESCENDANT后代,继承祖先对象而产生的对象,与祖先对象有相同的功能21.DATAWINDOW OBJECT数据窗口对象,查询和维护关系数据库或其他数据源中数据的对象.22.INHERITANCE继承,一种通过已存在的对象创建窗口.菜点和用户对象的方法23.DDEDDE是动态数据交换的缩写,是WINDOWS应用之间传递数据的一种协议24.OCX是OLE自定义控制.25.OLE是对象连接和嵌入的缩写,它可以使用WINDOWS应用程序使用其他程序及数据26.CONTRAL控制,用于窗口和数据窗口及可视用户对象设计的图形对象,负责应用系统于用户的交互,也称控件是组件对象模型的缩写.28.BLOB一种用于存储大量数据的数据类型.29.ACTIVEX基于COM的技术,允许软件之间相互交互30.ANCESTOR祖先,是用于后代继承的对象,相当于一个定义了一些基本功能的类.。
PB命名规则及软件开发规范

PB命名规则及软件开发规范软件的编写、维护和测试都是由多人协同完成的,这样在工作中就需要一些约定和规范来协调工作人员的工作。
PB虽然吸收了很多RAD工具的优点,但工具只是设施、基础,还需要优秀的方法指导。
这就需要我们制定软件书写标准以规范我们的程序开发。
使程序具有很好的可读性、可维护性。
下面就pbl库划分、命名规范、注释规范、代码格式规范及界面规范进行约定。
一、应用程序pbl组成(假设应用名为app)我们将对象进行分门别类存放,以便于查找和管理1、share.pbl:存放应用、菜单、公用函数、公用结构。
或者命名为public.pbl 。
2、app_win.pbl:存放窗口。
3、app_dat.pbl:存放数据窗口对象。
4、control.pbl:存放公用的用户对象(这些对象可以直接移植到其他的项目中使用)。
注:鉴于目前我们PB开发系统状况——【窗口】、【数据窗口对象】都比较多,第2点,3点规范不采纳,我们将对【窗口】、【数据窗口对象】都按系统大菜单的功能来命名pbl并存放在一起。
二、应用程序中对象命名规范1、窗口命名规范窗口的名字以w_开头,后面加以描述其功能的英文单词。
如w_label表示此窗口为标引窗口。
如果A窗口为B窗口(w_label)的弹出窗口,则A窗口应命名为w_label_pop(pop 为弹出窗口功能的英文名称)。
(注:不做强制要求,直接w_模块功能名也可以)2、数据窗口对象命名规范数据窗口对象以d_开头,后面加上作为其数据源的表名。
如以表stv_class为数据源建立的数据窗口对象应命名为d_stv_class。
如果对d_stv_class进行了修改,如更改其显示风格、增加计算字段或检索参数等,则将其命名为d_winname_label(winname为窗口名,label功能名)。
注:对【数据窗口对象】再详细说明一下,按其功能作用再分命名方式。
报表:d_模块功能名子报表:dwc_模块功能名查找条件datawindow:dwf_模块功能名Windows窗口里:dw_模块功能名Datastore对象:ds_模块功能名下拉列表框datawindow:dddw_模块功能名3、变量命名规范全局变量命名:以gt_开头,其中t表示数据类型的第一个英文字母,后缀为变量功能名。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Pb常用概念与术语及script编程规范
1.dbms
数据库管理系统的缩写,它是可以提供数据库管理功能的软件2.Profile
保存在pb初始化文件中的命名的参数的集合,它定义一个指向数据库的连接
3.Data Source
数据源,pb有五种数据源:QUICK SELECT,SQL SELECT,QUERY,EXTERNAL和STRORE PROCEDURE
4.ODBC
开放数据库连接的缩写,是微软提供的访问数据库的接口标准.
通过ODBC接口,PB可以连接到大部分DBMS
5.MTS
MTS是微软事物服务器的缩写,它是基于一个组件的事物处理系统,支持开放.发行和管理基于组件的应用
PONENT
组件是在JAGUAR中或MTS中的一个包含业务逻辑的可重用模块.用户对象可以作为组件发行到中间层的JAGUAR或MTS服务器中.
7.LIBRARY
库,存储PB对象的文件,它的扩展名是.PBL
8.PAINTER
画笔,创建和编辑PB对象的编辑器,或是管理数据或库的工具9.APPLICATION OBJECT
应用对象是一个应用系统的入口点,它定义乐系统的一些应用级行为
10.SCRIPT
脚本是响应特定事件的一段语句的集合.在PB中编写脚本执行POWERSCRIPT语言
11.PRIMARY KEY
主健,唯一标识表中每一条记录的一个或多个列.
EROBJECT
用户对象,用户自定义的用于完成某项处理的.可重复使用的对象
13.FOREIGN KEY
外部键,是一种约束,要求构成外部键的一个或多个列的值必须对应主健表中的一个值
14.EVENT
事件,一个发生在对象或控制中的动作,可以触发一段脚本程序的执行.
15.FUNCTION
函数,执行特定处理的例程,在面对对象编程中,也称方法. 16.POLYMORPHISM
多态,同一个对象中的两个或多个名字相同,参数列表不同的
函数
17.METHOD
方法,在面对对象编程中,方法是一个于对象有关的函数或例程
18.EXTENDED ATTRIBUTES
扩展属性,数据库列的扩展信息定义
19.ENCAPSULATION
封装,将相关的数据和过程打包在一个对象中.
20.DESCENDANT
后代,继承祖先对象而产生的对象,与祖先对象有相同的功能21.DATAWINDOW OBJECT
数据窗口对象,查询和维护关系数据库或其他数据源中数据的对象.
22.INHERITANCE
继承,一种通过已存在的对象创建窗口.菜点和用户对象的方法
23.DDE
DDE是动态数据交换的缩写,是WINDOWS应用之间传递数据的一种协议
24.OCX
是OLE自定义控制.
25.OLE
是对象连接和嵌入的缩写,它可以使用WINDOWS应用程序使用其他程序及数据
26.CONTROL
控制,用于窗口和数据窗口及可视用户对象设计的图形对象,负责应用系统于用户的交互,也称控件
是组件对象模型的缩写.
28.BLOB
一种用于存储大量数据的数据类型.
29.ACTIVEX
基于COM的技术,允许软件之间相互交互
30.ANCESTOR
祖先,是用于后代继承的对象,相当于一个定义了一些基本功能的类。