【PB概述】PowerBuilder的语言基础

     每一种语言都有一组基本的语法约定,POWERBUILDER也不例外。
     (1)断行、续行与多条语句
     通常情况下,powerbuilder的一条语句是写到一行上的,该条语句在书写完毕之后,按<Enter>键转到下一行,开始写下一句的内容。也就是说,在PowerBuilder中,使用<Enter>键作为一行的结束。在PowerBuilder语句比较长的情况下,为了方便阅读,可以使用续行符号把一条语句写到几行上。PowerBuilder的续行符号为‘&’,它放在一句的末尾,表示下一行是前一行的继续。例如下面的一个语句:
      Net=MessageBox("提示","真的想退出么?",&
      Exclamaton!,OKCancel!,2)
     注意,不能在标示符或者保留字的中间加入续行符。
     在嵌入式SQL语言中不需要使用续行符,因为这类语句都是以分号(;)作为语句的结束,尽可以把一条SQL语句写成多行。
     如果想在一行中写上多条语句,那么在多条语句之间应该以分号进行分隔,例如:
  a=b+c;g=h+j;cnt=a+g+cnt
     但是为了使程序写出来之后清晰直观,建议不要在一行中写入多条语句。

 

     (2)PowerBuilder的PowerScript语言的标识符
      标识符用来命名程序中的变量,符号,函数,窗口,控件,对象等的名称。在PowerBuilder中,标识符的命名应当遵守下面的几个规则,这个规则与Java语言的命名规则有少许区别:
     1)必须以字母或者下划线(_)开头。
     2)其余的字符可以是字母、数字、以及下列特殊的符号:短横线(-)、美元符号($)、号码符号(#)、百分号(%)。
     3)标识符的中间不能添加空格。
     4)通常,PowerBuilder中的标识符是不区分大小写的。
     5)标识符不能使用保留字。
     6)PowerBuilder的标识符的最长为40个字符。
     短横线与减号是同一个字符,因此在表达式中使用减法运算符的时候,必须在减号的两边加上两个空格,否则会有可能产生运算错误。通常情况下,尽量不要在标识符当中使用短横线,以免与减法运算符混淆,可以用下划线来代替短横线来分隔单词。如果想禁止在标识符中使用短横线,可以使用文本编辑器打开PB.ini文件,然后在[pb]节点中将DashesInIdentifiers=1修改为:DashesInIdentifiers=0。但是这样会带来一个问题,就是在禁止在标识符中使用短横线之后,建立菜单之后分隔条的名称也就不能使用短横线了。因此还是建议不要对其进行修改。

 


     (3)PowerBuilder中的空值
     空值(NULL)是PowerBuilder与数据库交换数据时使用的一种特殊值,代表数据未定义、不明确,它与字符串数值零以及日期00-00-00的意义是完全不相同的。PowerBuilder的所有数值类型都支持空值,但是与Java等语言不相同,PowerBuilder并不把空值作为默认值。例如,说明变量的时候,PowerBuilder把0赋值给数值型数据,把False赋值给布尔型变量,把“”赋值给字符串变量,这个和Java有很大区别。变量被赋值空值的途径有两条:
     1)从数据库中读到空值。
     2)使用SetNull()函数赋值,例如:
        String person
        SetNull(person)
     在测试一个变量或者是一个表达式是否是控制的时候,要使用函数IsNull(),而不是直接使用关系表达式。例如a是一个变量,要测试a的值是不是为空值,我们可以这样写:
  IF IsNull(a) THEN......
  写成 IF a=NULL THEN.....是错误的。原因是:空值不等于任何另外一个值,也不等于另外一个空值。


     (4)PowerBuilder中对象属性、函数和事件的应用方法
     PowerBuilder应用程序的开发过程实际上就是各种对象定义和使用的过程。所有的对象都有自己的名称,并且通过彼此的名称进行相互区分。在PowerBuilder中,如果想访问对象的属性,函数,事件的方法是非常简单的,同Java一样,都是使用.作为标示符。具体来说,访问对象的格式是:

  对象名.对象的属性
     例如,把单行标记狂sle_name中用户输入的内容送到字符串变量ls_name的语句可以写成:
  ls_name=sle_name.Text
     其中,sle_name是一个单行文本框对象的名称,Text是单行文本框的Text属性。
     程序中访问对象中函数和实践的格式为:
      [objectname.][type][calltype][when]functionname([argumentlist])
     对于上面的格式的说明:

     objectname:是对象名
     type:可以取值为FUNCTION或者EVENT,用于指明是访问函数还是事件,默认值为FUNCTION。
     calltype:用于指明PowerBuilder查找函数的时机,有效的取值为STATIC(默认值)---编译的时候查找函数,如果不存在,就产生编译错误;DYNAMIC---程序运行的时候查找函数,如果不存在,就产生运行错误。
     when:用于指明函数或者事件是立即执行还是当前程序段执行完毕后执行,取值为:TRIGGER(默认值)立即执行;POST--当前程序段执行完毕后执行。

     functionname:指明调用的函数或者事件名称。
     argumentlist:给出函数或者事件的参数。
     例如:要把输入焦点移动到单行文本sle_name上,可以在程序中写上下面的语句:
  sle_name.SetFocus()
     想要立即执行按钮cb_name的单击事件处理程序,那么写上下面的语句:
  cb_name.EVENT TRIGGER Clicked()


     (5)PowerBuilder中的代词
     PowerBuilder提供了四个代词指定特定的对象.程序中使用代词的好处是避免硬代码,做到代码的通用化,这四个代词分别为This、parent、ParentWindow和Supper,四个代词的意义分别列举如下:
     This:代表窗口、用户对象、菜单、应用对象或者控件本身,也就是代表正在为止编写事件处理程序的对象。
     Parent:指当前控件所在的窗口,例如我们可以关闭按钮的父对象,就可以使用parent代词。
     ParentWindow代表运行时菜单所在的窗口,该代词只能在菜单的事件处理程序中使用,如果在“退出”菜单项的“Clicked”事件处理程序中写上代码:Close(ParentWindow)则单击该菜单项的时候就会关闭与之关联的窗口,而不管窗口的具体名称叫什么。
     Super:在编写控件与对象的子对象的时间处理程序的时候,子对象可以调用父对象的事件处理程序,程序中既可以直接利用父对象的名称调用它们,也可以使用Super代词来引用。

 

原文地址:http://blog.csdn.net/ziwen00/article/details/5379946

转载于:https://www.cnblogs.com/anxi/archive/2011/11/16/2251330.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 一、 实现目标 4 二、 框架构思及概念图 4 三、 数据类(DataClass) 5 3.1、 系统对象信息(D_SYSOBJECTS) 5 3.2、 系统字段信息(D_SYSCOLUMNS) 6 3.3、 主外键关系(D_SYSFOREIGNKEYS) 6 四、 资源类(ResourceClass) 7 4.1、 框架参数(FrameworkParameter) 7 4.2、 数据元素字典D_DATAELEMENT(DataElement) 8 4.3、 字段属性表达式类(D_SYSCOLUMNS_ATTRIBUTES) 9 4.4、 系统参数字典(D_SYSPARMDICT) 9 五、 信息类(InformationClass) 10 六、 功能类(FunctionClass) 10 七、 组织类(OrganizeClass) 11 7.1、 角色(Role) 11 7.2、 操作员(Operator) 11 八、 框架设计结构图 11 8.1、 数据项属性表达式部分 11 九、 窗口基类设计 12 9.1、 带有提示栏的窗口 12 十、 数据窗口服务及相关对象 13 10.1、 框架参数对象(uo _FrameworkParameter) 13 10.2、 表达式替换 14 10.3、 操作员数据权限(my_n_cst_dwsrv_popedom_data) 15 10.4、 修改属性表达式(my_n_cst_dwsrv_ModifyDWExpression) 15 10.5、 修改字段显示标题(my_n_cst_dwsrv_ModifyColumnTitle) 16 10.6、 关联查询服务(my_n_cst_dwsrv_RelationSearch) 16 10.7、 GRID风格DW打印服务(my_n_cst_dwsrv_DWPrint) 18 10.8、 DW显示风格设置(my_n_cst_dwsrv_ViewStyle) 19 10.9、 系统字典维护工具 20 10.9.1、 数据结构字典定义 20 10.10、 允许用户进行自定义的参数(D_SYSCONFIG) 21 十一、 简单业务流程处理(Simple Business Flow) 22 11.1. 简单业务流程的定义 22 11.1.1. 业务流程中环节的定义 23 11.1.2. 业务流程的实例化 24 11.1.3. 任务数据的检索 26 11.1.4. 业务流程处理引擎(my_n_cst_workflowengine) 27 11.1.5. 界面设计 31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值