




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 PowerScript 语言,2.1 PowerScript基础,2.2 数据类型,2.3 变量声明及作用域,2.4 运算符及表达式,2.5 PowerScript语句,2.6 几个常用的标准函数,2.1 PowerScript基础,2.1.1 注释 PowerScript提供了如下两种加注释的方法,通过注释可以进一步提高程序的可读性。 (1)单行注释用“/”。 从双斜杠开始到行尾均为注释。 (2)多行注释用“/* */”。 从/*开始到*/结束均为注释。 例如: Decimal add1 / add1表示中间结果 /* flag=1表示按下的数字是前面数字的一部分 flag=0表示按下的数字是一个新的数字的开始 */ Int flag,2.1.2 标识符,标识符是程序中用来代表变量、标号、函数、窗口、选单、控件、对象等名称的符号。 标识符的命名规则如下: (1)必须以字母或下画线开头。 (2)由字母、数字、下画线_、短横线-、¥、# 、%组成。 (3)不能是PowerScript保留字。 (4)不区分大小写(但若用于Web、UNIX等必须区分大小写)。 (5)最长40个字符。,2.1.3 续行符 编写程序时会遇到语句超长,为阅读方便可以将语句分成几行,这时就需要用到续行符&,将语句串起来。 例如: IF side1 = 5 AND & side2 = 6 THEN area = 5*7 /相当于 IF side1 = 5 AND side2 = 6 THEN area = 5*7 注意:不能在标识符或保留字的中间续行。,2.1.4 特殊字符,字符串中可以包括特殊的ASCII码字符,它们不能使用常规的输入方法直接输入,需要使用其他字符来代替。常用的特殊字符如下表。,2.1.4 特殊字符,/显示一学生的相关信息 MessageBox(“学生信息“,“n姓名 t性别 t& 专业名“+“n刘敏 t男 t计算机科学与技术“) 运行后的结果如下图:,2.1.5 空值,空值NULL是PowerBuilder与数据库交换数据时使用的一种特殊值,代表数据未定义、不确定,它与空字符串、空字符、数值零以及日期00-00-00的意义完全不同。 空值既不是零,也不是非零的任何数值。 变量被赋予空值的途径有如下两条。 (1)从数据库中读到空值。 (2)使用SetNull()函数赋值。 例如: String person / person=“ SetNull(person) / person值为NULL,2.2 数据类型,2.2.1 标准数据类型 标准数据类型包括数值型、字符型、日期型、布尔型等一些最基本的数据类型。,2.2.2 枚举类型 枚举类型是PowerBuilder定义的特殊常量,常用于对象或控件的属性、系统函数的参数等。但在PowerScript中我们不能定义自己的枚举类型,而只能按系统要求使用它。枚举类型实际上是一组值,每个值都以英文单词开始,以感叹号(!)结束,例如:yesno! 等。,2.3 变量声明及作用域,2.3.1 变量声明 在PowerBuilder中,所有变量在使用之前,都要首先予以说明。系统预定义的5个全局变量除外(SQLCA、SQLDA、SQLSA、Error、Message)。 格式1: 数据类型 变量名=初值 例如: Real a,b,c 在定义变量的同时,可以同时指定变量的初值。 Integer score=100,2.3 变量声明及作用域,2.3.2 数组的声明 在PowerBuilder中,用户可以使用数组来表示一系列具有相同类型的变量,这些具有相同类型的变量共用一个变量名,使用下标访问数组中的每个变量。 格式2: 数据类型 数组名 =初值 若在声明数组时,方括号内未填数字,则声明一个动态数组,运行时由系统分配数组元素的个数。,2.3.3 变量作用域,在PowerBuilder 10.0中,有4种不同范围的变量:Local、Instance、Global、Shared。 Local变量的作用范围仅在所在的事件和函数内,在别的事件和函数中不起作用。 Instance变量的作用范围不仅在所在对象的全部事件及函数,而且包括该对象的所有控件的事件及函数。 Global变量的作用域是整个应用程序。,2.4 运算符及表达式,2.4.1 算术运算符 算术运算符有:+、-、*、/、。其中加号、减号还用于表示正数、负数。 扩展的算术操作符:+ - += -= /= *= = 2.4.2 关系运算符 关系运算符用来对相同类型的量进行大小比较运算,常用于条件语句和循环语句。关系运算符的结果是True或False。 关系运算符有: 、=、=,2.4 运算符及表达式,2.4.3 逻辑运算符 逻辑运算符用来对布尔型的量进行运算,结果是True或False。 有3个逻辑运算符:NOT、AND、OR 2.4.4 连接运算符 连接运算符只有一个,就是符号“+”,用于把两个String型或Blob型变量的内容连接在一起,形成新的字符串或Blob型数据。 例:s1=“computer “+“book“ 则s1=“computer book“,2.4.5 运算符的优先级 在表达式中,运算符按照优先级进行运算,共分9级,括号最高,同级运算自左至右。 1 () 括号 2 +,- ,+,- 正号、负号、自增、自减 3 幂运算 4 *,/ 乘、除 5 +,- 加、减及连接运算 6 =,=, 关系运算符 7 NOT 逻辑非 8 AND 逻辑与 9 OR 逻辑或,2.5 PowerScript语句,2.5.1 赋值语句 赋值语句用于给变量、对象属性赋值。 格式: variable_name= expression,2.5 PowerScript语句,2.5.2 分支语句 1IF条件语句 条件语句分单行和多行两种格式。 格式1: IF condition THEN ELSE 格式2: IF condition THEN ELSE END IF 在条件语句中,ELSE子句是可选的。,2.5.2 分支语句,2CHOOSE语句 CHOOSECASE语句能够根据所测试的表达式的值的不同来执行不同的语句,而不像条件语句那样只有两种选择。 格式: CHOOSE CASE test_expression CASE expression_list1 Statements1 CASE expression_list2 Statements2 CASE expression_listn Statementsn CASE ELSE Statements n+1 END CHOOSE,2.5.2 分支语句,其中expression_List形式如下。 单个值 由逗号隔开的若干个值 某一区间 IS表达式 混合:例如2,4,7 to 15, IS20,2.5.3 循环语句,1FOR循环语句 FORNEXT语句按照预先规定的次数重复执行一段代码。 格式: FOR v= s TO e STEP i NEXT 执行过程如下:,2.5.3 循环语句,2DOLOOP循环 DOLOOP循环是重复执行一段代码,直到条件表达式为True或False,它有4种格式: 格式1: DO UNTIL condition LOOP 格式2: DO WHILE condition LOOP,2.5.3 循环语句,格式3: DO LOOP UNTIL condition 格式4: DO LOOP WHILE condition,2.5.3 循环语句,3CONTINUE语句 格式: CONTINUE 只能用于DOLOOP和FORNEXT语句中,遇到CONTINUE语句,将不执行CONTINUE语句后面的语句,回到循环条件处继续执行。 4EXIT语句 格式: EXIT 只能用于DOLOOP和FORNEXT语句中,遇到EXIT语句,将结束循环,跳到LOOP或NEXT后面的语句去执行。,2.6 几个常用的标准函数,2.6.1 MessageBox函数 MessageBox函数常常用于显示出错、警告、提示及其他重要信息,并且在程序开发阶段被程序员用来显示程序运行状态及中间结果。MessageBox函数将在屏幕上显示一个窗口,用户在响应该窗口后,程序才能继续运行下去。 格式: MessageBox(title,text ,icon ,button ,default) 其中title和text参数是必需的,其他大括号中的参数是可选的。 各参数的含义如下: title:String类型,指定消息对话框的标题。 text:指定消息对话框中显示的消息,该参数可以是数值型、字符串或boolean值。, icon:枚举类型,可选项,指定要在该对话框左侧显示的图标。值为:Information!(默认值),StopSign!,Exclamation!,Question!,None!。 button:枚举类型,可选项,指定显示在该对话框底部的按钮。值为:OK!(默认值),OKCancel!,YesNo!,YesNoCancel!,RetryCancel!,AbortRetryIgnore!。,default:数值型,可选项,指定作为默认按钮的按钮编号,按钮编号自左向右依次计数,默认值为1。如果该参数指定的编号超过了显示的按钮个数,MessageBox()函数将使用默认值返回。默认按钮是指获得焦点的按钮。 函数执行成功时返回用户选择的按钮编号(例如1、2、3等),发生错误时返回-1。如果任何参数的值为NULL,MessageBox()函数返回NULL。,2.6.1 MessageBox函数,【例2.9】MessageBox函数的使用。 Int ret ret=MessageBox(“这是一个例子“,“是否要存盘?“,Question!,YesNoCancel!,3) IF ret=1 THEN Dw_1.update() Else IF ret=2 THEN RETURN END IF END IF 运行时的界面如图所示。,MessageBox函数运行示例,2.6.2 Open函数,Open函数用来打开一个PowerBuilder窗口。 格式: Open(window_name) 打开窗口并触发窗口的Open事件。,2.6.3 Close函数 Close函数用来关闭一个PowerBuilder窗口。 格式: Close(window_name) 先触发窗口的CloseQuery事件,若CloseQuery事件的返回值不等于1,则再触发Close事件、关闭窗口并释放窗口以及窗口上的控件所占据的内存。若CloseQuery事件的返回值等于1,则不会关闭窗口。因此,我们可以在窗口的CloseQuery事件中,编写代码询问用户是否要关闭窗口。,2.6.3 Close函数 例:在窗口的CloseQuery事件中编写代码 Int ret ret=MessageBox(“准备关闭窗口”,“是否要保存?”, Question!,YesNoCancel!,3) Choose case ret Case 3 Return 1 Case 1 Dw_1.update() End choose,2.6.4 Run函数,Run函数被用于在PowerBuilder中运行其他的Windows应用程序,如计算器、记事本及其他用户应用程序等。 格式: Run(appl)或 Run(appl, state) 参数appl是个字符串,指明要运行的应用程序名,若不含路径名,则默认为当前路径。参数state是个枚举类型,用以指明开始运行时的窗口状态,有3个值可选, Maximized!、 Minimized! 、 Normal!,2.8 应用程序编程实例,【例2.12】用PowerBuilder 10.0制作计算器应用程序。 计算器的外观如下图。,自制计算器外观,2.8 应用程序编程实例,创建计算器的具体步骤如下。 1创建计算器应用 (1)创建新的工作空间。 (2)创建新的应用。 2创建计算器窗口和设置窗口属性,2.8 应用程序编程实例,3声明几个变量 在“Script”脚本区左上边的下拉列表框中选择“(Declare)”,然后在下面的脚本区中编写代码如下: Decimal add1 Char s1 Boolean flag 其中,add1保存中间结果;s1保存按下的运算符;flag 是一个标志位,flag=false表示按下的数字是前面数字的一部分,flag=true表示按下的数字是一个新的数字的开始。,2.8 应用程序编程实例,4在窗口中布置显示数值的单行编辑框控件 5在窗口中布置10个数字按钮和小数点按钮 首先制作数字“1”按钮 按钮事件 “Clicked”中输入如下代码: IF flag THEN sle_1.text=“ flag=false END IF sle_1.text=sle_1.text+THIS.text,2.8 应用程序编程实例,保存已完成的工作。由于10个数字按钮以及小数点按钮的“Clicked”事件的脚本都一样,外观也仅有Text属性不同,所以可以用控件完全复制的方法来快速地创建其他按钮。 6、*、/ 运算符按钮的制作 首先制作“”运算符按钮,它与数字按钮仅外观类似(Text属性不同,其余属性相同),脚本完全不同。可以先用外观复制的办法制作“”按钮控件。,2.8 应用程序编程实例,新按钮的“Clicked”事件脚本如下: CHOOSE CASE s1 CASE * sle_1.text=String(dec(sle_1.text)*add1) CASE / sle_1.text=String(add1/dec(sle_1.text) CASE + sle_1.text=String(dec(sle_1.text)+add1) CASE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 湖北省孝感市孝南区十校联谊2026届九年级英语第一学期期末检测试题含解析
- 山东省泰安市泰山区江山实验学校2024-2025学年七年级3月月考生物试题(无答案)
- 广东省茂名电白区七校联考2026届化学九年级第一学期期中学业水平测试试题含解析
- 2026届四川省德阳市广汉中学化学九上期末检测模拟试题含解析
- 江苏省扬州市宝应县2026届英语九年级第一学期期末检测模拟试题含解析
- 甘肃省庆阳市宁县2026届九年级化学第一学期期中调研模拟试题含解析
- 2026届黑龙江省望奎县英语九上期末教学质量检测试题含解析
- 关于服装代理合同5篇
- 离婚财产分割中房屋产权及租赁权转移合同
- 高科技企业员工保密与竞业禁止条款合同书
- 高中物理《相互作用》大单元集体备课
- 隧道施工行业分析
- 大学生职业生涯规划说课课件
- 新能源汽车整车控制系统检修高职全套教学课件
- 桥式起重机的安全维护范本
- 读书分享读书交流会《活着》课件2
- 三人合伙开公司协议书:免修版模板范本
- (完整版)经典无领导小组讨论题目(附答案)
- 健康心理快乐成长小学课件
- 北师大版四年级上册数学早读资料PPT
- 马克思主义政治经济学概论
评论
0/150
提交评论