第2章 PowerScript编程

上传人:小**** 文档编号:243135548 上传时间:2024-09-16 格式:PPT 页数:78 大小:790.50KB
返回 下载 相关 举报
第2章 PowerScript编程_第1页
第1页 / 共78页
第2章 PowerScript编程_第2页
第2页 / 共78页
第2章 PowerScript编程_第3页
第3页 / 共78页
点击查看更多>>
资源描述
,第,2,章,Power Script,编程,78,第,1,章 的 复习内容,请问第,1,章中主要介绍了什么内容,?,当你拿到一个实际项目的时候,你应该分哪几个步骤来完成该项目,?,在用,PowerBuilder,来开发项目时,其对象创建的先后顺序如何,?,请问实验一中的独立实验应该如何实现,?,第,2,章,PowerScript,编程,2.1,PowerScript,编程环境,2.2,PowerScript,语言基础,2.3,PowerScript,数据类型,2.4,PowerScript,声明语句,2.5,PowerScript,运算符,2.6,PowerScript,控制语句,2.7,PowerScript,常用系统函数,2.8,PowerScript,自定义函数,2.9,PowerScript,自定义结构,2.10,本章小结,2.11,本章习题,2.1,PowerScript,编程环境,PowerBuilder,提供的编程环境实际上就是,相关对象画板的脚本(,Script,)视图,,主要用于查看或编写事件和函数的代码、声明变量、常量、外部函数以及创建用户事件等等。,你知道,PowerBuilder,的哪些对象呢,?,应用对象 窗口对象 菜单对象 等,事务对象 等,2.1.1,脚本视图的打开,PowerBuilder,中几乎所有的对象都可以为之编写相应的脚本程序。,当然,在为对象编写脚本代码之前,应该,首先打开相应的脚本视图,。,对象选择,事件选择,脚本视图,变量声明,2.1.2,脚本视图定制,一般来说,,PowerBuilder,提供的默认脚本视图已经能够满足绝大多数情况的需要。,当然必要时用户也可以自己对脚本视图进行,定制,。,2.1.3,自动脚本功能使用,自动脚本,功能是一种用来帮助编写脚本代码的辅助功能。,它通过在,脚本视图中显示上下文相关的属性、函数、事件、变量等信息,的列表框以供选择来大幅度地提高编写程序的效率,同时保证了代码输入的正确性。,2.2.1,脚本注释,注释是开发人员针对程序功能,人为添加的一些说明性的文字,,其本身并不参加程序的编译和执行。,Power Script,提供的注释方式与,C,语言完全相同,包括,单行注释和多行注释,。,例,2.1,程序注释的示例:,/,这是放在行开头的注释,cb_1.text = “This,代词”,/*,这是多行注释的开始,cb_1.text = “This,代词”,这是多行注释的结束 *,/,2.2.2,分隔与续行,如果要将多条短语句书写在一行上,可以在多条语句之间使用,分隔符分号“;”,,,如果要将一条长语句分成多行书写,可以在长语句的每个断点处加上,续行符号“,&”,。,例,2.2,分隔与续行的示例:,分隔:,B = B + 1,;,C = C + 1,;,A = B + C,续行:,messagebox,(,提示, , ,保存信息吗,?, Question! ,YesNo,! ,1),可以写成,messagebox,(,提示, , ,保存信息吗,?, &,Question! ,YesNo,! , 1),2.2.3,标识符,标识符是指在程序代码中用来,代表变量、常量、函数、窗口、控件、菜单等名称的符号,.,PowerScript,中标识符在定义的时候必须遵循以下的规则:,必须以英文字母或者下划线“,_”,开头;,不能是保留字;,最大长度为,40,个字符,字符之间不能有空格;,不区分大小写;,只能由字母、数字以及,5,个特殊字符(“,_”,、“,-”,、“,$”,、“,#”,、“,%”,)组成;,例,2.3,判断以下列举的标识符中,哪些是对,哪些是错?,标识符:,ABC_Code,、,Child-Id,、,Actual-$-amount,标识符:,2nd-quantity,、,ABC Code,、,Childs Id,2.2.4,保留字,保留字是,系统预先保留的,,提供系统内部使用的标识符。保留字不可以用作用户自定义的标识符,否则系统将给出编译器警告信息。,Alias,and*,autoinstantiate,call,case,catch,choose,close *,commit,connect,Constant,continue,create*,cursor,declare,delete,escribe,*,descriptor,destroy,disconnect,do,dynamic,else,elseif,2.2.5,特殊,ASCII,字符,PowerBuilder,允许用户在字符串中使用特殊,ASCII,字符。特殊,ASCII,字符的输入,以 “,”,开头,,后接一些普通字符或者数字。,2.2.5,特殊,ASCII,字符,例,2.4,特殊,ASCII,字符的示例:,messagebox,(,提示,特殊,ASCII,字符:,nn,新行,双引号,nt,制表符,单引号,),消息框的显示界面如图,2-6,所示。,2.2.6,空值,NULL,空值,NULL,是在与,数据库进行交换时使用的一种特殊值,,,代表数据未定义,,它与空字符串“”、空字符、数字,0,以及日期,0000-00-00,均不同。,函数,SetNull,(),可以将一个变量赋值为,NULL,,函数,IsNull,(),可以测试变量或者表达式是否为空值。,例,2.5,空值,NULL,示例:,String,ls_name,SetNull(ls_name,),if,IsNull(ls_name,) then,messagebox,(,提示, ,ls_name,为空值,),end if,ls_name,= null,2.2.7,常用代词,代词主要有,This,、,Parent,、,ParentWindow,和,Super,。,This,用来指代,当前正在为之编写脚本的对象,,例如窗口、窗口控件、菜单、应用对象以及用户对象等。实际编程中,,This,经常可以省略或者直接以对象或者控件的名称代替。,Parent,用来,指向包含当前对象的父对象,。这里的当前对象可以是窗口中的控件、用户对象中的控件或者某个菜单项。,当窗口中的控件使用,Parent,时,,Parent,指向包含该控件的窗口;,当用户对象中的控件使用,Parent,时,,Parent,指向当前用户对象;,当菜单中使用,Parent,时,,Parent,指向当前菜单项的上一级菜单。,2.2.7,常用代词,ParentWindow,用来代表,当前菜单所关联的窗口,,因此仅能在菜单的事件处理程序中使用。,Super,用来调用,当前子对象所继承的父对象中的事件处理过程或者函数,。,子对象调用父对象的事件处理过程的语法格式为:,Call Super : ,或者,Super : Event (),调用父对象的函数的语法格式为:,Super : (,参数列表,),2.3,PowerScript,数据类型,PowerScript,具有强大的数据处理功能,并为此提供了丰富的数据类型,主要包括以下四类:,标准数据类型,枚举类型,系统对象数据类型,任意(,Any,)数据类型。,不同的数据类型声明将直接影响到变量、常量、数组和其他对象在,系统中的存储空间大小以及能表示的具体内容,。,2.3.1,标准数据类型,接后页,2.3.1,标准数据类型,2.3.2,系统对象类型,系统对象类型是一种特殊的数据类型,每一种类型都对应一种系统对象,如窗口、菜单、控件等。,对于,可视化的系统对象,如按钮、文本框等控件,一般不必特意将其作为数据类型来处理,而只需要选择直接使用即可;,对于,非可视化的系统对象,如事务对象(,Transaction,)则可以按照常见数据类型来处理。,例,2.12,系统对象数据类型示例:,假设窗口,w_object,中有两个按钮分别是,cb_1,和,cb_2,,其中两个按钮的文本显示依次为“第一个按钮”和“第二个按钮”,如图,2-9,所示。,当程序运行时单击,cb_2,,通过消息框显示,cb_1,的文本内容。,2.3.2,系统对象类型,通常写法:,messagebox,(,提示,通过声明系统对象类型,r,得到,cb_1,的文本内容为, + cb_1.text + ),系统对象写法:,commandbutton,cb,cb,= cb_1,messagebox,(,提示,通过声明系统对象类型,r,得到,cb_1,的文本内容为, +,cb.text,+ ),2.3.3,枚举数据类型,枚举类型是,PowerBuilder,预定义的数据类型,常被用于作为函数的参数,或者用于指定对象或控件的属性。,所有枚举类型都以感叹号“!”结尾,并且用户不能定义自己的枚举类型,,这一点正是与其他高级语言如,C,、,C+,等不同的地方。,2.3.4 Any,数据类型,Any,数据类型是一种,可变的数据类型,,它可以存储包括标准数据类型、系统对象数据类型、数组以及结构等在内的各种类型的值。,对某,Any,类型的变量赋值之后,可以使用函数,ClassName,(),来获得,Any,类型变量中保存数据的实际类型。,例,2.14,Any,数据类型示例:,Any,a_value,String,s_type,a_value,= 3.45,s_type,=,ClassName(a_value,),messagebox,(,提示,s_type,),2.3.5,数据类型转换函数,实际开发过程中,不同的数据类型之间常常需要实现彼此之间的转换,转换操作必须依赖于,数据类型转换函数,来实现。,2.3.6,数据类型检查函数,数据类型检查函数常用来检查字符串中内容是否为合法值。,2.4,PowerScript,声明语句,在,PowerBuilder,中,除系统预定义的,5,个全局变量(,SQLCA,、,SQLDA,、,SQLSA,、,Error,、,Message,)外,其他使用的所有变量、常量以及数组等和其他程序设计语言如,C+,一样,遵从,先定义、后使用,的原则,以便编译时进行存储空间的分配。,2.4.1,变量声明,变量是指在程序的运行过程中,其值可以被改变的量。,PowerBuilder,中简单变量的声明只需要说明,数据类型,和,变量名,即可。,其声明的格式为:, =,=, ,其中“,=”,为赋值符号。如果一次声明多个变量,需要在变量之间使用“,”间隔。,例,2.15,变量声明示例:,int,i,long k=123456,date today , birthday,char c=A,string,my_address,=Hello,2.4.1,变量声明,变量被声明后,若未指定初值,则系统赋予默认值,。变量的数据类型不同,系统赋予的默认值也不一样。,2.4.1,变量声明,变量作用域决定了变量在程序中的哪些地方可以被访问。根据作用范围的不同,变量分为四种类型,即,Global Variables (,全局变量,),、,Instance Variables (,实例变量,),、,Shared Variables (,共享变量,),以及,Local Variables (,局部变量,),。,全局变量可以在整个应用程序中访问,存储在应用对象中。一般情况下不建议使用全局变量,因为这会降低程序的可读性。,局部变量只能在相应的事件或函数脚本中定义,事件或函数脚本执行完毕后,相应的变量也就撤销了。,2.4.1,变量声明,实例变量与具体的对象实例相关联,可以将其看作是对象实例的一个新增属性。对于一个具体的实例变量,可以在其所关联的对象实例的事件或函数(同时包括了该对象的所有控件的事件及函数)被访问,,是一种局部的全局变量。,实例变量在其所关联的对象被打开时创建,被关闭时释放。,共享变量属于一个对象并且可以被该对象的所有实例所访问。当一个对象实例关闭时,共享变量的值保持不变;当再次打开这个对象实例时,可以继续使用关闭前的值。对于同一对象的所有实例,共享变量的值始终保持不变。,2.4.1,变量声明,变量的声明位置直接决定了变量的作用域。,局部变量在使用该变量的程序段代码中直接声明和使用,而全局变量、共享变量和实例变量则在窗口、菜单等对象的,Script,窗口中进行声明。,2.4.1,变量声明,实例变量与局部变量的区别,:,请思考以下问题,在窗口的,clicked,事件中编写代码,要求程序能够辨认当前鼠标在窗口上单击的次数,.,实例变量与共享变量的区别,:,请思考以下问题,在窗口的,clicked,事件中编写代码打开一个新的窗口,同时在新打开的窗口的标题栏上显示这是该窗口第几次被打开,.,2.4.2,常量声明,常量是指在程序的运行过程中,其值一直保持不变的量。,常量的声明与变量类似,不过存在以下两点不同:,声明时需要在数据类型前用关键词,CONSTANT,修饰;,声明时必须给常量赋初值。,常量的声明格式为:,CONSTANT = ,=, ,其中“,=”,为赋值符号。如果一次声明多个常量,需要在常量之间使用“,”间隔。,例,2.16,常量声明示例:,CONSTANT,int,age=23,CONSTANT string city=,温州,2.4.3,数组声明,数组是,具有一定顺序关系且数据类型相同的若干个元素组成的集合,。数组中的各个变量通常称为数组元素,数组元素通过,下标进行,访问。,数组的声明格式为:, = ,初值表,其中,数组元素的个数可以省略,但方括号不能省略。,如果省略数组元素的个数,则该数组被声明为动态数组。,缺省情况下数组元素的下标从,1,开始。,如果一次声明多个数组,需要在数组名称之间使用逗号“,”间隔。,如果定义多维数组,下标之间用逗号分开。,例,2.17,数组声明示例:,int,scores30,int,scores 2 to 10,string address = ,温州,杭州,台州,real val5,5,2.5,PowerScript,运算符,运算符用于,构造各种表达式,,以便完成一定的运算。,PowerScript,提供的运算符主要包括,4,种:,算术运算符,关系运算符,逻辑运算符,连接运算符。,2.5.1,算术运算符,算术运算符用于构成算术表达式,完成加、减、乘、除和乘方,5,种算术运算。,2.5.2,关系运算符,关系运算符用于两个可以比较的数据类型之间的关系比较,其结果为,True,或者,False,。,字符串的大小如何进行比较,?,2.5.3,逻辑运算符,逻辑运算符用于完成布尔类型的值的逻辑运算,其结果为,True,或者,False,或者,Null,。,2.5.4,连接运算符,连接运算符主要用于把两个,String,类型变量或者,Blob,类型变量的内容连接在一起,从而形成新的字符串或者二进制大对象数据。,PowerScript,提供的,连接运算符只有一个,,就是符号“,+,”,。,例,2.18,字符串连接的示例如下:,String,FirstName,LastName,FullName,FirstName,= “,shen,”,LastName,= “John”,FullName,=,LastName,+,FirstName,2.5.5,运算符优先级,在由运算符构成的表达式中,其运算需要按照,运算符的特定次序进行,,这一特定的次序由运算符的优先级决定。,2.6,PowerScript,控制语句,PowerScript,控制语句主要用于控制程序流程,.,。,赋值语句,条件语句,循环语句,。,2.6.1,赋值语句,赋值语句用于把一个常量、变量或者是表达式的结果赋值给变量、对象的属性。其语法格式为:,variablename,= expression,赋值语句两边的,数据类型应该一致,,否则需要数据类型转换函数进行转换。,例,2.20,赋值语句示例:,ls_name,= “,Johnshen,”,li_age,= 23,在,PowerScript,中,赋值号与关系运算符的“,=”,是相同的,因此不能在一条语句中给多个变量赋值。,li_a,=,li_b,= 3,2.6.2,条件语句,IF,语句,单行,if,语句的语法格式为:,IF condition THEN action1 Else action2 ,例,2.21,单行,IF,语句示例:,IF true THEN a=3 ; b =4,IF true THEN a=3 else b=4 ; c=5,多行,if,语句的语法格式为:,IF condition1 THEN,action1,ElseIF,condition2 THEN,action2,。,Else,action3,End IF,例,2.22,多行,IF,语句示例:,IF true THEN,a=3,Else,b=4,c=5,End IF,2.6.2,条件语句,CHOOSE CASE,语句,CHOOSE CASE,语句是一种,多分支选择语句,,能够根据表达式值的不同而执行不同的语句,其语法格式为:,CHOOSE CASE,testexpression,CASE,expressionlist,statementblock, CASE,expressionlist,statementblock,。,CASE ELSE,statementblock,End CHOOSE,例,2.23 CHOOSE CASE,语句示例:,CHOOSE CASE Weight,CASE 1,2,3,4,5,Postage=Weight*0.70,CASE IS 10,messagebox,(,提示,这是第, +,String(count,) + ,次循环,),count +,loop,第二种其语法格式为:,DO WHILE condition,statementblock,LOOP,int,count = 1,do while count 10,第四种其语法格式为:,DO,statementblock,LOOP WHILE condition,int,count = 1,do,messagebox,(,提示,这是第, +,String(count,) + ,次循环,),count +,loop while count = 10,2.6.3,循环语句,Continue,和,Exit,语句,Continue,和,Exit,语句一般用于,FORNEXT,和,DOLOOP,循环中,可以更加灵活的控制循环的执行。,当循环体在执行过程中,遇到,CONTINUE,语句时,将跳过本次循环而直接开始新一轮循环;,遇到,Exit,语句时,将立即退出当前循环,程序将转到循环后的语句继续执行。,例,2.27 Continue,和,Exit,语句示例:,for count = 1 to 10,if count = 3 then continue,messagebox,(,提示,count,现在的值为, +,String(count,),if count = 4 then exit,next,2.6.4,其他语句,Return,语句,Return,语句用于,立即终止事件处理程序或者函数的运行,,同时返回到调用程序,其语法格式为:,Return expression ,可选项,expression,为一个表达式,它的值将作为返回值返回给事件处理程序或者函数。,Halt,语句,Halt,语句用于,终止整个应用程序的运行,,其语法格式为:,Halt Close,当,Halt,语句不带,Close,选项时,该语句将立即终止应用程序的运行;带,Close,选项时,一旦执行该语句,应用程序先执行应用对象的,Close,事件处理程序,再终止应用程序的运行。,2.6.5,粘贴控制语句,在脚本代码的编写过程中,经常需要使用到以上的控制语句如条件语句、循环语句等。,以上控制语句除了从脚本视图直接输入之外,也可以通过,粘贴的方法来提高代码的输入速度,。粘贴控制语句的步骤如下所述:,2.7,PowerScript,常用系统函数,系统函数,不属于任何对象或控件,在程序的任何地方都可以直接使用。,PowerBuilder,提供了几百种系统函数,熟练的掌握它们不仅有助于加快应用程序开发的进度,而且提高了程序的运行效率。,以下主要介绍在实际开发过程中的一些,常用的系统函数,,其他更多的系统函数请使用联机帮助查看。,2.7.1,MessageBox,(),函数,MessageBox,(),函数将在屏幕上显示一个提示框,用于向用户显示一些提示、警告、出错、询问等信息。,MessageBox,(),函数的格式如下:,MessageBox,( title, text , icon , button , default ),例,2.29,MessageBox,(),函数示例:,int,li_return,li_return,=,Messagebox,(,提示,请选择按钮,Question!,YesNo,!),if,li_return,= 1 then,Messagebox,(,提示,你选择了,Yes,Exclamation,!),else,Messagebox,(,提示,你选择了,No,Exclamation,!),end if,2.7.2,字符串相关函数,Asc,(),函数,Asc,(),函数用于获取字符串中第一个字符的,ASCII,码值。其语法格式为:,Asc,( string ),如,Asc(“ABCD,”),Char(),函数,Char(),函数用于获取字符串的第一个字符,或者将,Blob,变量的第一个值或一个数值转换为字符。其语法格式为:,Char ( n ),如,char(65),Fill(),函数,Fill(),函数用于获取一个由指定长度的指定字符构成的字符串。其语法格式为:,Fill ( chars, n ),如,Fill(“ABCD,” , 3) , Fill(“*” , 3),2.7.2,字符串相关函数,Left(),函数,Left(),函数用于获取指定字符串中左部的指定长度的子串。其语法格式为:,Left ( string, n ),如,Left(“ABCD,” , 2),Mid(),函数,Mid(),函数用于获取指定字符串中指定位置开始的指定长度的子串。其语法格式为:,Mid ( string, start , length ),如,Mid(“ABCD,” , 2 , 2),Right(),函数,Right (),函数用于获取指定字符串中右部的指定长度的子串。其语法格式为:,Right ( string, n ),如,Right(“ABCD,” , 2),2.7.2,字符串相关函数,LeftTrim,(),函数,LeftTrim,(),函数用于删除字符串中左部的空格。其语法格式为:,LeftTrim,( string ),如,LeftTrim,(“ ABCD”),RigthTrim,(),函数,RigthTrim,(),函数用于删除字符串中右部的空格。其语法格式为:,RigthTrim,( string ),如,RightTrim(“ABCD,”),Trim(),函数,Trim (),函数用于删除字符串中两边的空格。其语法格式为:,Trim ( string ),如,Trim(“ ABCD ”),2.7.2,字符串相关函数,Lower(),函数,Lower(),函数用于将字符串中所有的大写字母转换为小写字母。其语法格式为:,Lower ( string ),如,Lower(“ABCD,”),Upper(),函数,Upper (),函数用于将字符串中所有的小写字母转换为大写字母。其语法格式为:,Upper ( string ),如,Upper(“abcd,”),Len(),函数,Len(),函数用于求指定字符串或者,Blob,变量的长度。其语法格式为:,Len ( string or blob ),如,Len(“ABCD,”),2.7.2,字符串相关函数,Pos(),函数,Pos(),函数用于在一个字符串中从指定位置开始查找其子串的位置。其语法格式为:,Pos ( string1, string2 , start ),如,Pos(“ABCD,” , “C”),Replace(),函数,Replace(),函数用于将一个字符串中指定长度的子串替换为另一个字符串。其语法格式为:,Replace ( string1, start, n, string2 ),如,Replace(“ABCD,” , 2 , 3 , “ELL”),2.7.2,字符串相关函数,例,2.28,字符串函数示例:,? =,Asc(A,) ? = Char(65),? = Fill(-+, 2) ? =,Left(BABE,RUTH, 4),? =,Mid(BABE,RUTH, 5, 5),? =,Right(BABE,RUTH, 4),? =,LeftTrim,( RUTH),? =,RightTrim(RUTH,),? = Trim( BABE RUTH ),? =,Lower(Babe,Ruth) ? =,Upper(Babe,Ruth),? = Len(),? =,Pos(BABE,RUTH, RU),? =,Replace(Davis, 4, 2, e),2.7.3,数值相关函数,Abs(),函数,Abs(),函数用于计算一个数的绝对值。其语法格式为:,Abs ( n ),Int,(),函数,Int,(),函数用于求不大于(即小于或等于)某个指定值的最大整数。其语法格式为:,Int,( n ),Ceiling(),函数,Ceiling (),函数用于求不小于(即大于或等于)某个指定值的最大整数。其语法格式为:,Ceiling ( n ),Max(),函数,Max(),函数用于求两个数中的最大值。其语法格式为:,Max ( x, y ),2.7.3,数值相关函数,Min(),函数,Min (),函数用于求两个数中的最小值。其语法格式为:,Min ( x, y ),Mod(),函数,Mod(),函数用于求两个数的余数。其语法格式为:,Mod ( x, y ),Round(),函数,Round(),函数用于将给定的小数四舍五入到指定的小数位数。其语法格式为:,Round ( x, n ),Rand(),函数,Rand(),函数主要用于随机得到一个位于,1,和最大值之间的整数。其语法格式为:,Rand ( n ),2.7.3,数值相关函数,例,2.29,数值函数示例:,?,= Abs(-4),?,= Int(3.8),?,=,Int,( - 3.8),?,= Ceiling(-4.2),?,= Max(4,7),?,= Min(- 4, - 7),?,= Mod(20, 6),?,= Round(9.625, 2),?,= Rand(10),2.7.4,日期相关函数,Today(),函数,Today(),函数用于获取当前的系统日期。其语法格式为:,Today ( ),Year(),函数,Year(),函数用于获取日期中的年份。其语法格式为:,Year ( date ),Month(),函数,Month (),函数用于获取日期中的月份。其语法格式为:,Month ( date ),Day(),函数,Day (),函数用于获取日期中的日期。其语法格式为:,Day ( date ),2.7.4,日期相关函数,Now(),函数,Now(),函数用于获取当前的系统时间。其语法格式为:,Now ( ),Hour(),函数,Hour (),函数用于获取时间(,24,小时制)中的小时。其语法格式为:,Hour ( time ),Minute(),函数,Minute (),函数用于获取时间(,24,小时制)中的分钟。其语法格式为:,Minute ( time ),Second(),函数,Second (),函数用于获取时间(,24,小时制)中的秒数。其语法格式为:,Second ( time ),2.7.4,日期相关函数,例,2.30,日期函数示例:,?,= today(),? =,Year(today,(),? =,Month(today,(),? =,Day(today,(),?,= now(),? =,Hour(now,(),? =,Minute(now,(),? =,Second(now,(),2.7.5,数组相关函数,LowerBound,(),函数,LowerBound,(),函数用于获取数组中指定维的下界。其语法格式为:,LowerBound,( array , n ),其中,,array,为指定的数组名,,n,为可选项,用于指定数组的某一维。,UpperBound,(),函数,UpperBound,(),函数用于获取数组中指定维的上界。其语法格式为:,UpperBound,( array , n ),其中,,array,为指定的数组名,,n,为可选项,用于指定数组的某一维。,2.7.5,数组相关函数,例,2.31,数组函数示例:,假设声明以下数组,integer a5, b2,5,,请问,?,=,LowerBound,(,a,),? =,UpperBound,(,a,),? =,LowerBound,(,b,),? =,UpperBound,(,b,),? =,LowerBound,(,b,2,),? =,UpperBound,(,b,2,),2.7.6,定时相关函数,Idle(),函数,Idle(),函数用于设置定时器时间间隔,如果用户在指定的时间间隔内没有任何动作就触发应用对象的,idle,事件。其语法格式如下:,Idle ( n ),Timer(),函数,Timer(),函数用于设置定时器时间间隔,并且在这一时间间隔内反复触发指定窗口的,Timer,事件,其语法格式如下:,Timer ( interval ,windowname, ),例,2.32,定时函数示例:,Idle(100) timer(2 , this),2.7.7,调用相关函数,Run(),函数,Run(),函数用于运行一个指定的应用程序。,Run(),函数的语法格式为:,Run ( string ,windowstate, ),ShowHelp,(),函数,ShowHelp,(),函数用于显示指定的帮助文件。其语法格式如下:,ShowHelp,(,helpfile,helpcommand,typeid, ),例,2.33,调用函数示例:,Run(notepad, Maximized! ),ShowHelp(C,:PBINQ.HLP, Index!),2.7.8,粘贴系统函数,在脚本代码的编写过程中,经常需要使用到以上的各种系统函数。除了从脚本视图直接输入之外,也可以通过,粘贴系统函数,的方法来提高代码的输入速度。,粘贴系统函数的步骤如下所述:,2.8,PowerScript,自定义函数,PowerBuilder,中除了系统提供的函数之外,用户也可以根据程序需要定义自己的函数。,用户自定义函数主要分为,自定义全局函数,和,自定义对象函数,。,自定义全局函数与任何对象均无关联,在应用程序的任何位置均可以进行调用;自定义对象函数则是定义在窗口、菜单等对象之中,是这些对象的一部分,而且通常只能在所在对象的脚本之中进行调用,但是必要时也可以在其它对象中通过“对象名,.,函数名,()”,进行调用。,2.8.1,自定义全局函数,图,2-21 New,对话框,图,2-22,函数画板,访问范围,返回类型,函数名称,参数信息,功能实现,2.8.2,自定义对象函数,图,2-23,应用对象脚本视图,图,2-24,应用对象函数画板,访问范围,返回类型,函数名称,参数信息,功能实现,2.9.1,自定义全局结构,在一个,结构中,可以包含一个或者多个成员变量,,并且各个,成员变量均具有相应的数据类型和名称,。在,Type,下拉列表框中选择成员变量的类别,在,Variable Name,中直接输入成员变量的名称。,图,2-25,全局结构画板,2.9.2,自定义对象结构,打开要创建的结构所在的对象画板,然后选择菜单,Insert,的子菜单项,Structure,打开相应的结构画板,如图,2-26,所示。,图,2-26,对象结构画板,2.10,本章小结,本章主要介绍了,PowerBuilder,的脚本编程环境,,PowerScript,语言的基本语法及流程控制语句,,PowerBuilder,提供的部分常用系统函数以及如何自定义函数和结构。,通过本章的学习,应该进一步熟悉,PowerBuilder,编程环境,并且熟记,PowerScript,的编程语法及其相关应用,为后续章节的学习打下扎实的基础。,2.11,本章习题,一、填空题,1,、,PowerScript,中的续行符号是,_,,分隔符号是,_,。,2,、,PowerScript,中的注释分为,_,和,_,。,3,、,PowerScript,中代词主要包括,_,、,_,、,_,、,_,。,4,、,PowerScript,语言中,所有的枚举类型都是以,_,结尾,5,、,PowerScript,中常量的声明必须使用关键字,_,。,6,、,PowerBuilder,中如果声明的变量只能在事件或函数中使用,则该变量属于,_,变量。,7,、,PowerBuilder,中通过函数,_,设置变量为,NULL,,函数,_,判断变量是否为空。,2.11,本章习题,二、简答题,1,、,PowerScript,中的四个代词依次指代什么?,2,、,PowerScript,语言中的标识符允许使用短横线“,-”,吗?,3,、,PowerScript,中的数据类型共分为哪几种?如何查看每种数据类型?,4,、,PowerScript,中变量作用域分为哪几种?各有什么不同?,5,、,PowerScript,中的运算符主要分为哪几种?,6,、,PowerScript,中常用的系统函数主要分为哪几类?,2.11,本章习题,三、编程题,1,、编写一个判断是否闰年的程序,要求对于任意输入的一个月份,程序能够判断出该年份是否是闰年。,2,、编写一个“字符统计”的程序,要求对于任意一个字符串,程序能够分别统计出其中所包含的各类字符,包括数字字符、英文字符、空格字符以及其他字符的个数。,3,、编写一个求和的程序,要求能任意输入两个整数,程序能够计算出这两个整数之间的所有奇数和、偶数和。,2.11,本章习题,4,、试设计如图,2-27,所示的“成绩等级”窗口,以便实现将百分制转换为相应等级的功能,其中,,90,分及以上为“优秀”,,80,分及以上为“良好”,,70,分及以上为“中等”,,60,分及以上为“及格”,,60,分以下为不及格(分别用,IF,语句和,CHOOSE CASE,语句实现)。,5,、创建两个自定义函数,两个函数的功能是分别求出任意给定的两个整数的最大公约数和最小公倍数。,(辗转相除法来求最大公约数,),图,2-27,成绩等级窗口,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!