




已阅读5页,还剩81页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
重庆大学全日制本科计算机基础系列课程,计算机信息管理基础,重庆大学计算机学院 曾一,第12讲,PowerBuilder编程基础,重庆大学计算机学院 曾一,本章主要内容,PowerBuilder编程基础 PowerBuilder的各主要元素 PB脚本PowerScript,1.PowerBuilder,一种可视化的面向对象的快速应用程序开发环境。 面向对象的,整个应用程序由大量对象组成,对象之间存在消息传递 。 PB中,窗口(window)是主要的用户界面 。 PB是一个开放的应用程序开发环境,它可以访问很多常用的后台数据库系统。 PB的应用程序是事件驱动的,这就是说运行于该环境下的程序并不是顺序执行的,而是用户通过各种动作控制应用程序的流程。,PowerBuilder界面,菜单栏,工具栏,系统树窗口,剪贴窗口,属性区,工作区,输出窗口,应用程序结构,应用属性,应用程序对象的属性,General选项卡,应用程序对象名称,应用程序的显示名称,设置状态条的默认文本,默认设置为Ready,定义显示数据窗口消息对话框时的默认标题,应用程序对象的附加属性,2.应用程序对象的方法和事件,(1)Open事件 open事件是一个重要的事件,它表明了应用程序对象开始执行。 该事件只发生一次,且必须为其编写脚本代码。 Open事件脚本的功能应该是初始化运行环境,并打开程序的主窗口。,应用程序对象的方法和事件,应用对象的事件-open,脚本 /设置事务对象的参数 SQLCA.DBMS = “ODBC“ SQLCA.AutoCommit = False SQLCA.DBParm = “ConnectString=DSN=my_db;uid=dba;pwd=sql “ /连接数据库 CONNECT USING SQLCA; /连接数据库 /打开窗口 IF SQLCA.SQLcode0 then messagebox(“ 数据库连接失败! “,SQLCA.SQLErrText,stopSign!,OK!) ELSE open(w_main) /打开主窗口 End if,应用对象的事件-close,脚本: /断开与数据库的连接 DISCONNECT USING SQLCA; /判断断开数据库的情况 IF SQLCA.SQLcode0 then messagebox(“ 数据库断开失败! ”,SQLCA.SQLErrText, stopSign!,OK!) End If,3.窗口对象和常用窗口控件,窗口是Windows应用的可视图形操作界面,是PB中主要的组成部分 用户通过窗口向应用程序提供必要的数据,直接操作应用程序;应用程序通过窗口显示运行状态和执行结果。 窗口的组成 属性:定义窗口的外观和行为; 事件:由用户动作触发而进行的动作; 控件:放在窗口上,用于请求、输入或显示信息。,窗口的类型,PB提供下列几种类型的窗口: 1) 主窗口(Main): 2) 子窗口(Child): 3) 弹出式窗口(Popup): 4) 响应窗口(Response): 5) 框架窗口及带微帮助的框架窗口: (MDI Frame and MDI Frame with Microhelp),窗口对象,定义窗口的属性: 窗口的属性用于指定窗口的表现形式。 可以在设计窗口时通过打开窗口的属性框来定义或修改;也可以在程序运行时动态地修改。 打开窗口的属性框: 在窗口的空白工作区双击,或右键选属性项,或单击工具栏属性图标,或选择Edit/Properties。 可看到四个属性标签页,每个标签页中包含一类属性值。,常用窗口控件,控件大致可以分为四类: 激活动作类型 包括命令按钮和图片命令按钮等。 选择项类型 包括单选按钮、复选框。还可以用选项组控件对这些选择项控件进行分组。 显示数据类型 包括列表框、图片列表框、数据窗口、下拉列表框、下拉图片列表框、静态文本框、图形、列表窗口、树状窗口、多格式文在编辑框、进度条、滚动条、单行编辑框、多行编辑框、编辑掩码控件以及OLE控件等。 修饰类型 这些控件是绘制对象,如图片、直线、矩形、圆角矩形和椭圆等。,7种常用窗口控件,1)Commandbutton(命令按钮)控件 Default(默认)属性和cancel (取消)属性 Clicked事件 2)StaticText(静态文本框) 静态文本控件常用于向用户显示提示信息或说明没有标题的控件等。 属性 : Text:显示的文本 Border:有否边框 Alignment:对齐方式 Border Color:选择边框的颜色 Fill Pattern:指定填充图案,3) SingleLineEdit(单行编辑框) 和MultiLineEdit(多行编辑框) 单行编辑框和多行编辑框都是用于文本输入和输出的控件。 单行编辑框通常用于输入一行文本;而多行编辑框则用于输入大量多行文本。 Text属性 Password属性,7种常用窗口控件,常用窗口控件,4)EditMark(编辑掩码控件) 掩码编辑框与单行编辑框的外观完全一样 但是掩码编辑框可以通过创建的掩码完成格式化的输入。 属性: MaskDataType:掩码类型 Mask:掩码字符串 Spin:微调控件项 Min:最小值 Max:最大值,常用窗口控件,5)RadioButton(单选按钮)、CheckBox(复选框) 单选按钮控件表示在一组选项按钮中只有一个按钮可以被选中,它们通常只用于表示某些选项的状态,而不用于激活动作,单选按钮的checked属性为True(选中)。 单选按钮一般总是安排在选项组中使用。 复选框用来表示或让用户选择一组状态,多个复选框是彼此相互独立的 。 复选框被选中,checked属性为True。 复选框未被选中, checked属性为False。 复选框为第三种状态, ThirdState属性设置为True。,常用窗口控件,6) ListBox(列表框) 和DropDownListDox(下拉列表框) 列表框在一个矩形框中显示多行文本,主要用来提供多个选项供用户选择。 sle_1.text=lb_1.selecteditem() /选中内容给单行编辑框 下拉列表框与列表框的功能用途类似,它是将单行编辑体与列表框的功能结合起来。 sle_1.text=ddlb_1.text /选中内容给单行编辑框,属性 text:选中的文本 列表项:items标签页中列出 AllowEdit:选中后,允许用户编辑列表项 ShowList:选中后,下拉列表框仅用于列表显示,不具备下拉功能。相当于列表框。 事件 Selectionchanged事件:改变选项后触发该事件 DoubleClicked事件:双击某选项时触发 Modified事件:列表框编辑确认后触发 GetFocus事件:下拉列表框获得焦点时 触发 LoseFocus事件:失去焦点时触发,常用窗口控件,7)Picture(图片框) 图片控件一般用来美化界面。 它在界面的指定位置插入一幅图片 图片格式可以是BMP、WMF、GIF和JPG等格式。 属性: Picturename:图片的文件名 Invert :反转图片颜色,常用窗口控件 (图示),4.窗口对象和常用窗口控件的运行和预览,运行、预览窗口 要查看设计好的窗口效果,可在系统树窗口的某窗口名处单击右键,选Run/Preview。,5.建立菜单,1)菜单基本概念,2) 菜单分类 下拉式菜单 下拉式菜单由菜单标题和菜单项组成,位于菜单栏上。用户选择菜单标题后,弹出该标题下的菜单项。 弹出式菜单 弹出式菜单与对象相关联,也叫做上下文菜单。当用户在某对象内单击鼠标右键时,在鼠标指针处打开相应的弹出式菜单。 级联菜单 级联菜单可以出现在前两种菜单中,在其父菜单项后面有个箭头符号,表示该菜单项后有级联菜单。,3)菜单设计 菜单是一种独立的对象,它用Menu(菜单)画板来建立和修改, 在Menu画板中提供了WYSIWYG(所见即所得)的窗口。,4)创建菜单对象 在PB Object选项卡中,选择Menu图标,然后单击OK按钮打开Menu画板 添加菜单项 选择InsertSubmenu菜单项,或在所见即所得视图区单击右键,从弹出式菜单中选择Insert Submenu Item菜单项。 设置快捷键:在定义的加速键前面加上&符号,如设置菜单:文件(F),则输入菜单项应为:文件(&F) 设置快捷键:利用菜单项属性ShortCut 设置分隔线:- 一个减号,菜单属性,General选项卡,Toolbar选项卡,5)菜单的使用,通过窗口属性MenuName中输入菜单名,将菜单连接到相应的窗口上 注意 窗口的Window Type 属性必须为mdi!或mdihelp!,6)菜单事件 Clicked事件触发时机 (1)用鼠标单击菜单项。 (2)用键盘选中菜单项,然后按Enter键。 (3)按下菜单项的快捷键。 (4)菜单项显示在屏幕上时,按下加速键。 注意: 只有在菜单项的Visible和Enabled属性均为True时,菜单项才会响应鼠标单击或键盘操作。,示例:,6.脚本语言PowerScript,1)PowerScript基本概念 断行、续行与分隔符 分隔符:PowerScript的行分隔符是分号“;”。 断行:可以加上分隔符表示断行,把多条语句写在一行上。 续行:在语句中间加上续行符“&”,换行后接着书写。 注释 : 行注释:以双斜杠“/”开始到行结束。 块注释:以“/*”开始到“*/”结束。 标识符 标识符是指在程序中使用的变量、标号、函数、窗口、控件、菜单及所引用对象的名称。,6.脚本语言PowerScript,1)PowerScript基本概念 在PowerBuilder8中,标识符的命名遵从下述规则: 标识符必须以英文字母或者下划线“_”开头 标识符不能是保留字 标识符只能由字母、数字和如下特殊字符组成:短划线“-”,下划线“_”,美元符“$”,号码符“#”和百分号“%” 标识符不区分大小写字母 标识符不能超过40个字符,且中间不能出现空格 保留字:是PowerBuilder 内部使用的一组单词,有着特殊的含义,不能再把它们用做标识符 代词:This 、Parent、 ParentWindow 和Super,2)标准数据类型,3)变量与常量,无论是常量或是变量在使用前都应先声明,以便编译时分配适当的存储空间,并且声明的格式、位置不同,其作用域和可见性也不同。 变量 变量是指在程序运行过程中可以改变的量。 在应用中,使用变量前必须先予以声明。 声明变量的简单语法格式为: 数据类型名 变量名 = 初始值 其中,数据类型 变量名为任何合法的标识符,声明变量时可以直接把一常量或表达式的值赋给它(初始化),变量初始化是在编译时进行,而不是在运行时完成。 如果声明变量时不赋初值,系统将按数据类型的默认值自动赋初值 可以在同一条语句同时声明多个相同类型的变量,之间用逗号( , )分隔即可。 语法格式为: 数据类型名 变量名 = 初始值 , 变量名 = 初始值 , 变量名 = 初始值 , ,常量,常量是在程序运行过程中其值保持不变的量。声明常量时需要加关键字CONSTANT,必须赋初值,并且不能再改变。 常量声明的语法格式为: CONSTANT 数据类型 常量名 = 值 其中常量名一般用大写字母表示,以便将其和变量名区别开来。 注意,声明常量时不能在一行中进行多项声明。,数组,组成数组的变量称为元素,每一个元素都有唯一索引号(下标),用于将其与其它元素区分开来。数组有两种类型,即一维数组和多维数组,多维数组的大小必须确定,而一维数组的大小可以确定,也可以不确定。 声明数组的语法格式如下: 数据类型 数组名d1,dn=初值,4)变量的作用域,作用域即使用范围,无论是变量还是常量都有自己的作用域 全局变量(Global) 全局变量可以在整个应用程序中被访问,它的作用域是整个应用程序。 实例变量(Instance) 实例变量属于某个对象(应用程序、窗口、用户对象或菜单)并与该对象相关联,只有在该对象及与该对象相关的控件的脚本中才能使用其定义的实例变量。,共享变量(Shared) 共享变量和实例变量类似,只能在定义共享变量的对象和与该对象相关的控件的脚本中访问共享变量。 但是,共享变量与实际的类定义相关联,而与对象实例无关,这意味着所有同类实例都可共享相同的变量。 共享变量是一种静态变量,将保存其最后的设置,也就是说,它所在的对象关闭后再次打开时,共享变量依然保持对象关闭时的值。 局部变量(Local) 局部变量在使用它的事件或函数中声明,它仅属于声明它的脚本,在该程序段的任何地方均可访问局部变量,但其它程序段不能访问该程序段中的局部变量。 运行程序后,进入某个程序段时,自动为该程序段的局部变量分配内存,退出程序段时局部变量占用的内存被释放。,5)运算符与表达式,运算符表示了一个或两个操作数之间的运算操作 PowerScript利用运算符构成表达式,完成一定的运算。 算术运算符,扩展算术运算符,关系运算符,逻辑运算符,连接运算符 连接运算符“+” 用于把String型变量的内容连接起来。 例如:string Test Test = “中国“ + “重庆“ / Test 中包含“中国重庆“,运算符的优先级,6)表达式,表达式是由算术运算符、关系运算符及逻辑运算符连接起来的变量、常量构成的语法单位。,7)基本语句,(1)赋值语句 语法格式为: variablename = expression 其中,variablename代表变量名,expression代表表达式,也可以是字符串、数字、变量或常量以及数组等。 在赋值语句中,若等号右边是表达式,则先将其结果转化为等号左边变量的类型后,再赋值给变量。 如:s=a*h/2,(2)条件控制语句 IF语句 (a)单行IFTHEN语句 语法格式为: IF condition THEN action1 ELSE action2 (b)多行IFTHEN语句 语法格式为: IF condition1 THEN Action1 ELSEIF condition2 THEN Action2 ELSE Action3 END IF 注意:多行IFTHEN语句即使只有action1一个语句块,也需要END IF表示多行IFTHEN的结束。,CHOOSE CASE语句 适用于多分支选择结构 语法格式为: CHOOSE CASE test_expression CASE expression_list1 statementblock1 CASE expression_list2 statementblock2 CASE expression_listn statementblockn CASE ELSE statementblock n+1 END CHOOSE,其中test_expression 是测试表达式,expression_list 是判断表达式,statements 是满足条件时执行的语句块,方括号表示该成分可以省略。 expression_list可以使用如下的形式: 用逗号分隔的一组数据,例如2,4,7 用to 表示一个区间范围,例如2 to 15 用is 代表测试值,后跟关系运算符和比较值,例如is 30 组合运用上述三种方法,并用逗号进行分隔,例如5,6,8 to 12,is 20,(3)循环控制语句 PowerScript 的循环语句有两种形式 DO LOOP和 FOR NEXT ,可以与EXIT 和CONTINUE 语句配合使用 DO LOOP 循环 四种形式结构分别为: DO UNTIL condition LOOP DO WHILE condition LOOP DO LOOP UNTIL condition DO LOOP WHILE condition DO 表示循环的开始,LOOP 表示循环的结束,condition 表示循环条件,是逻辑表达式,其值为True 或False,DO UNTIL conditionLOOP语法格式为: DO UNTIL condition Statementblock LOOP 执行过程为 先判断控制条件condition,如果为false,则执行语句块statementblock,执行到LOOP后,接着判断条件condition,直到结果为true时结束循环。,DO WHILE conditionLOOP的语法格式: DO WHILE condition Statementblock LOOP 执行过程为 先判断控制条件condition,如果为true,则执行语句块statementblock,执行到LOOP后,接着判断条件condition,直到结果为false时结束循环。,DOLOOP UNTIL condition的语法格式: DO Statementblock LOOP UNTIL condition 执行过程为 先执行语句块statementblock,然后判断控制条件condition,如果为false,则继续执行语句块statementblock,直到condition的结果为true时结束循环。,DOLOOP WHILE condition的语法格式为: DO Statementblock LOOP WHILE condition 执行过程 先执行语句块statementblock,然后判断控制条件condition,如果为true,则继续执行语句块statementblock,直到condition的结果为false时结束循环。,FORNEXT语句语法格式为: FOR varname = start TO end STEP increment Statementblock NEXT 其中,varname 是循环变量,可以是任意的数值类型,start、end 分别是循环变量的初值和终值。increment 是每次循环后循环变量的步长增量,缺省值为1 ,statements 是一组语句称做循环体。 FOR -NEXT 语句的执行过程为:循环变量varname 从start 开始到end 为止,重复执行循环体,每执行一次varname,被重新赋新值为varname + increment 。,(4)EXIT语句 EXIT语句是中途结束循环的语句。注意:如果在循环嵌套中使用EXIT语句,那么执行EXIT语句只能退出当前层的循环,而不能退出所有循环。 (5)CONTINUE语句 CONTINUE语句控制循环的执行使之返回循环开始处。,(6)RETURN语句 RETURN 语句立即终止事件处理,程序或函数的执行把控制返回到调用程序,其语法格式为: RETURN expression 其中expression 是个表达式,其值作为事件处理程序或函数的返回值。 (7) HALT语句 HALT 语句用于终止应用程序的运行,其语法为: HALT CLOSE 其中CLOSE 是个可选项,当HALT 语句不带CLOSE 选项时,该语句立即终止应用程序的运行;当HALT 语句带CLOSE 选项时,执行到该语句后应用程序先执行应用对象的Close 事件处理程序,之后再终止应用程序的运行。,8)常用标准函数,(1)MessageBox( )函数 使用MessageBox( )函数可以向用户显示或提示各种信息。语法如下: MessageBox ( title,text,icon , button ,default ) title是一个被用来确定MessageBox标题的字符串。 text是在MessageBox中显示的文本。 icon用来指示显示在MessageBox左侧的图标。可选的值有Information! StopSign!、Exclamation!、Question!、None!。,button用来指示你想要显示的命令按钮的集合。这些值是OK!、OKCancel!、YesNo!、YesNoCancel!、RetryCancel!、AbortRetryIgnore!。默认值是OK!。 default指定默认的按钮 函数返回值:Integer,函数执行成功时返回用户选择的按钮编号例如1,2,3 等,发生错误时返回-1 举例: ll=MessageBox (“保存修改“,“您修改了数据现在是否保存“,Question!,YesNoCancel!),(2)Open函数 打开一个PowerBuilder窗口 格式: Open ( window -name) (3)Close函数 关闭一个PowerBuilder窗口 格式: Close ( window-name) 例如: 下面的代码关闭窗口w_employee 然后打开窗口w_departments Close(w_employee) Open(w_departments),(4)数据类型检查函数 数据类型检查函数又称为Is簇函数它们用来判断一个字符串是否符合某种数据类型的格式,返回值是一个布尔类型的值。Is簇函数的语法格式为: Is*(string) 其中string为要测试的字符串。 IsNumber( )用于测试某字符串是否为有效数值。 IsDate( )检测指定的字符串是否包含有效日期。 IsTime( ) 检测指定的字符串是否包含有效时间。 IsNull ( )测试某变量或表达式的值是否为Null。,(5)数据类型转换函数,9)自定义函数,参数的传递方式有以下三种: Value 表示值传递,将实际参数的值传递给函数。 Reference地址传递,把实际参数的地址传递给函数,如果函数修改了形式参数的值,则实际参数的值也就被修改了。 Readonly只读地址传递,把实际参数的地址传递给函数,但不允许修改参数的值。,9)自定义函数,自定义全局函数 (1)选择FileNew菜单项,或在工具栏中单击New图标,打开New对话框,单击PB Object选项卡。 (2)选择Function图标,然后单击OK按钮,或者直接双击该图标,打开Function画板,9)自定义函数,(3)在Function Name项中输入函数名,自定义全局函数的命名一般用“f_”开头,命名规则即标识符的命名规则;在Return Type下拉列表框中选择函数的返回值类型,如果函数没有返回值,则选择“None”项;在Pass By下拉列表框中选择参数传递方式;在Argument Type下拉列表框中选择参数类型;在Argument Name项中输入参数名(即形式参数,简称形参),命名规则即标识符的命名规则。 (4)编写完函数脚本后可以编译并保存该函数。,7.数据窗口,数据窗口的设计思想 一个数据窗口通常由数据窗口控件和数据窗口对象两部分组成。 数据窗口控件是被粘贴到窗口上的窗口级对象,提供了一个展示数据窗口对象的窗户,它可以在窗口中通过画板工具栏创建。 数据窗口对象直接关联数据表,主要用于显示数据并允许用户增删改数据。通过在数据窗口中控件的Data Object属性中设置有关的数据窗口对象的名字,将数据窗口对象和窗口联系在一起,并把数据对象显示给用户。,数据窗口对象有两个重要术语: 数据源和数据显示风格 数据源指如何获取数据,即数据的来源。 显示风格指数据窗口对象以何种格式显示给用户,即用户如何和数据窗口交互。 创建数据窗口对象的步骤: File-New-DataWindow-选择表现风格、数据源(Data source) 设置数据表及数据列 保存,数据窗口对象的工作带,数据窗口中各工作带的作用,数据窗口的应用,数据窗口对象定义好之后,一般要与窗口界面上的数据窗口控件相关联,用户通过数据窗口控件(dw_1)操作数据窗口对象,进而操作数据库。 下面一小段程序代码说明了使用默认事务对象SQLCA连接到一个ASA数据库,以及检索该数据库的方法: SQLCA.DBMS = “ODBC“ SQLCA.AutoCommit = False SQLCA.DBParm = “ConnectString=DSN=my_DB;UID=dba;PWD=sql“ connect; dw_1.settransobject(SQLCA) IF SQLCA.SQLCode 0 THEN MessageBox(“连接失败“, “不能连接到数据库原因为“ + SQLCA.SQLErrText) RETURN END IF dw_1.retrieve() /数据从数据库检索到数据窗口中 Disconnect;,数据窗口,上述程序段包括下列几步: 与数据库连接 为数据窗口设置事务对象 进行数据库处理(查询、修改) 断开与数据库连接 即: /写在应用的open事件中 创建事务对象,并赋值,使其与数据库相连。 connect; /写在窗口的open事件 settransobject() retrieve() /写在应用的close事件中 disconnect 删除自己创建的事务对象(destroy),数据窗口,常用函数说明: Settransobject():将一个事务对象与DataWindow控件联系起来。 Retrieve():读取数据库中的数据。 InsertRow(row):向DataWindow控件插入一个新行。 DeleteRow(row):从DataWindow控件中删除一行。当参数的值为0 时删除当前行。 Update():将DataWindow中所做的改变应用到数据库中。,数据窗口常用函数,连接事务对象的函数 Settransobject()函数 参数为事务对象 例:dw_1. Settransobject(sqlca) 滚动
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- B类岗位招聘面试实战模拟题库攻略
- 三农融资基础知识培训课件
- 三八急救知识培训通知课件
- 小儿贴敷疗法课件
- 大学社团心得体会
- 大学生父亲节活动策划方案
- 三体好书课件
- 小儿脑瘫的护理课件
- 小儿胸部X线摄影课件
- 垃圾分类公益主题活动策划方案
- 2025年住培结业考试题库及答案
- 写字楼租赁合同法律风险及防范指南
- DB42∕T 2151-2023 应急物资储备库建设规范
- 养老机构医养结合交流合作总结范文
- 分包招采培训课件
- 神经刺激器行业深度调研及发展项目商业计划书
- 公司全员销售管理办法
- 工贸行业重大事故隐患判定标准安全试题及答案
- 2025年全国新高考I卷高考全国一卷真题语文试卷(真题+答案)
- 课程思政教学课件
- 2025至2030中国建筑防腐行业发展趋势与前景分析报告
评论
0/150
提交评论