会计系统开发工具.ppt
会计信息系统开发工具 引言一、课程简介课程背景大三生产实习、大四电算化会计课程的铺垫计算机语言基础一种能力的培养开发工具的选择简单适用有利于计算机语言基础的培养引言一、课程简介内容应用PowerBuilder 9.0开发数据库系统的方法PB9.0简介PowScript 语言基础PB9.0窗口与控件SQLServer数据库简介SQLServer数据库简单使用方法使用PB9.0操作数据库(嵌入式sql语句,数据窗口)引言一、课程简介教材PowerBuilder 9.0基础教程PowerBuilder 9.0实例教程SqlServer2000基础教程数据库原理引言二、课程要求认真练习三、考核办法考试上机平时作业上课回答问题作业引言四、例子特急送订单管理系统Nell物流货运系统小闹表点名系统第1章 PB9.0 简介1.1 基础知识B/S:即Browser/Server(浏览器/服务器)结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。C/S:即Client/Server(客户机/服务器)结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。第1章 PB9.0 简介1.1 基础知识PowerBuilder:由全球领先的数据管理及企业集成解决方案供应商Sybase公司出品,是第一个基于商业开发人员的面向对象编程(OOP)的应用程序,是一种“快速构建商业应用程序”的开发工具。PowerBuilder第1代产品PowerBuilder1.0于1991年6月正式投放市场。PowerBuilder2.0于1992年7月推出,随后在短短的3年中,相继又推出了PowerBuilder3.0和PowerBuilder4.0。PowerBuilder5.0于1996年6月推出。PowerBuilder6.0于1997年12月推出。1997年 推出PowerBuilder6.01998年 推出PowerBuilder6.52000年 推出PowerBuilder7.02002年 推出PowerBuilder8.0PowerBuilder9.0于2003年6月推出。第1章 PB9.0 简介1.1 基础知识PB4.0可安装于dos环境中的windows3.0(3.2)也可安装于windows 95或windows 98。只能编译成16位。PB5.0可安装于dos环境的windows3.0(3.2)中,也可安装于windows 95或windows 98。编译的时候可以选择编译成16位还是32位。从6.0开始只能安装于windows 95或以上的操作系统中。从6.5开始支持WEB开发。7.0 支持类似java中的try.catch捕获错误。从8.0开始增加WorkSpace(包含/记录 一个或多个target)和Target(包含/记录 一个或多个PBL),有了WorkSpace和Target方便多了,以前拿到别人的源代码有时会搞不清需要包含哪些PBL,现在只要打开Target就知道了。8.0废弃了transport对象,以前网上一些开源的PB代码如拱猪、军棋、聊天室都是用的这个transport对象。从8.0开始就全部废除了,所以很少有人用8.0或以上版本再写此类程序。8.0增加了lenw,leftw,rightw等函数用于“支持”中文,在8.0以前len,left,right都是把中文当两个字符处理,8.0将中文当一个字符处理,lenw,leftw,right等同于以前版本的len,left,right,这样改其实不好用。8.0加强了file相关函数的操作。9.03(9.0打补丁至9.03)在编译时增加一个选项New Visual Style,勾选上此项,编译的程序在XP中具有XP风格(部分标准对象有效,仅在XP中有效)9.0中窗口增加center属性,不必再自己写代码让窗口居中了。10.0 废弃了MSS MicroSoft SQL Server数据库接口,因此用10.0联接SQL SERVER数据库现在多数都是用OLEDB。第1章 PB9.0 简介1.2 PB9.0的安装推荐配置Xp系统PB9.0SQLServer2000安装演示启动第1章 PB9.0 简介1.3 PB9.0开发环境1.3.1 术语Workspace、Target、System Tree、Application Object、Painter、Window、Control、DB Profile、DataWindow、Library Workspace:工作区,可以包含多个应用,同时操作不同应用中的对象Target:目标,建立工作区后,需要在其中放置目标,应用就是一种目标。System Tree:系统树,整个应用程序的总控中心,菜单Application Object:应用对象,一个应用程序的入口点。任何一个PowerBuilder程序都是从应用对象开始执行的。在应用对象中,通常定义的是应用级的行为,如整个应用程序的默认字体、背景颜色、处理系统错误的事件等。第1章 PB9.0 简介1.3 PB9.0开发环境1.3.1 术语Painter:画板,用来编辑相应对象的编辑器。Window:窗口,应用程序与用户交互的界面环境。开发人员设计的程序,在最终用户面前体现的是一个个方便使用、功能强大、美观友好的窗口组合。Control:控件,能够实现特定功能的对象,比如:按钮、单行编辑框等DB Profile:数据库描述文件,应用程序与数据库通讯的媒介。DataWindow:数据窗口,PowerBuilder专利技术,包括数据窗口和数据窗口控件两部分。封装了大量数据库操作。Library:库,PowerBuilder存放对象的地方。第1章 PB9.0 简介1.3 PB9.0开发环境1.3.2 整体界面标题栏、菜单栏、工具栏、客户区、状态栏1.3.3 标题栏显示目前打开Workspace(工作区)的名称第1章 PB9.0 简介1.3 PB9.0开发环境1.3.4 菜单栏File、Run、Tools、Window、HelpFile:New 创建新的PowerBuilder对象Open 打开一个PowerBuilder对象Run 运行/预览当前对象第1章 PB9.0 简介1.3 PB9.0开发环境1.3.4 菜单栏Run:Incremental Build Workspace 增量重建工作区Full Build Workspace 全部重建工作区Debug 调试最近的目标Run 运行最近的目标第1章 PB9.0 简介1.3 PB9.0开发环境1.3.4 菜单栏Tools:Library Painter 打开库画板Database Painter 打开数据库画板Window:TileVertical 竖向排列所有打开的画板Tile Horizontal 横向排列所有打开的画板Close all 关闭所有打开的画板System Tree 显示或隐藏系统树窗口第1章 PB9.0 简介1.3 PB9.0开发环境1.3.5 工具栏工具栏将常用的菜单选项用图标的形式列出,每一个图标对应一个功能。通常,工具栏位于菜单下面,单独排成一行,它形象直观而且便于使用。工具栏中的工具是可以选择的,系统列出的是比较常用的。要选择工具,可以使用Tools/Toolbars命令。第1章 PB9.0 简介1.3 PB9.0开发环境1.3.6 客户区所有的Painter(画板)将在这里打开编辑1.3.7 状态栏显示工具正在运行的状态第2章 PowerScript语言2.1 计算机语言的基础知识2.1.1 计算机的发展人们公认世界上第一台计算机:ENIAC(中文名:埃尼阿克)(电子数字积分计算机的简称,英文全称为 Electronic Numerical Integrator And Computer),它于1946年2月15日在美国宣告诞生。承担开发任务的“莫尔小组”由四位科学家和工程师埃克特、莫克利、戈尔斯坦、博克斯组成,总工程师埃克特在当时年仅24岁。)ENIAC:长30.48米,宽1米,占地面积约63平方米,30个操作台,约相当于10间普通房间的大小,重达30吨,耗电量150千瓦,造价48万美元。它包含了17,468 真空管7,200水晶 二极管,1,500 中转,70,000 电阻器,10,000 电容器,1500继电器,6000多个开关,每秒执行5000次加法或400次乘法,是继电器计算机的1000倍、手工计算的20万倍。每次算题都必须在外部通过开关和插线来安排计算程序,此外由于电子管容易损坏,因此它的使用范围不大。但是它的出现是一件具有历史意义的事件。用它两个小时解决的问题,一个物理学家要用100年才能解决。1939年的ABC(Atanasoff-Berry Computer)1941年的Z3继电器式计算机1950年全世界只有25台计算机,1970年10万台,1991年美国已有3000万台第2章 PowerScript语言2.1 计算机语言的基础知识2.1.2 计算机算题的简单过程(1)利用算盘算题的步骤和需要的设备比如:11+22*23需要:算盘、纸张、大脑、手(2)利用计算机需要:运算器、存贮器、控制器、输入输出设备运算器和控制器合成为“中央处理器”(Centre Processing Unit),由它对数据进行各种操作第2章 PowerScript语言2.1 计算机语言的基础知识2.1.3 数据在计算机内的存贮形式和数据的表示方法(1)内存的组织形式计算机中的存贮器是由千千万万个小的电子线路单元组成的,每一个单元称为一个“位”(bit,又称“比特”),它有两个问题的工作状态,分别以0和1表示。因此计算机存贮的信息是二进制形式的。为了方便管理,常将若干个“位”组成一个“字节”(byte,又称“拜特”)。多数计算机以8个位作为一个“字节”。一个字节可以放8个二进制数,如01100111。第2章 PowerScript语言2.1 计算机语言的基础知识2.1.3 数据在计算机内的存贮形式和数据的表示方法(2)数据的二进制表示方法生活中的二进制为什么用二进制容易实现计算简单十进制和二进制的转换数据在内存中的存贮形式一个整数是以其二进制形式存放在计算机内存的。在计算机中一般用两个字节存放一个整数。例如:134的二进制形式为10000110,它在内存中的存贮形式为:00000000 10000110字符也是以二进制形式存贮的。每一个字符的代码用一个字节存放。一般用ASCII代码(American Standard Code for Information Interchange,即“美国信息交换标准代码”)。例如:字符“A”的ASCII代码为65,它的二进制形式为01000001,它在内存中的存贮形式为:01000001当从键盘上按下”A”键时,计算机系统会自动将”A”转换成01000001,然后送入计算机内存。对于负数(是以其”补码”形式存放)和小数(以指数形式存放),存储形式较复杂一些,这里不作介绍。第2章 PowerScript语言2.1 计算机语言的基础知识2.1.4 计算机的机器语言和高级语言(1)机器语言要使计算机按照人的意图工作,就必须使计算机懂得人的意图,接受人向它发出的命令和信息。计算机不懂人类的语言,例如,我们写A+B=C,机器不能接受。它只能识别0和1两种状态。如果让计算机进行一次加法,需要给计算机这样一条指令;如果让计算机进行一次减法,需要给计算机这样一条指令。人要和计算机进行联系,就要编出这样由0和1组成的数字代码。这种计算机能够接受的代码,称为机器指令。所谓机器语言就是机器指令的集合。用机器语言编写程序就是要写出由一条条由机器指令组成的程序。第2章 PowerScript语言2.1 计算机语言的基础知识2.1.4 计算机的机器语言和高级语言(1)高级语言为了解决机器语言(又称为低级语言)的上述缺陷,人们创造了“高级语言”,它是一种过渡性的语言,比较接近人们习惯的“自然语言”和“数学语言”,又能为机器所接受。编译方式和解释方式50年代(1954年)出现了第一种高级语言FORTRAN高级语言的出现是计算机发展中“最惊人的成就”PowerScript是语言,PowerBuilder是工具第2章 PowerScript语言2.1 计算机语言的基础知识2.1.5 算法和程序算法:是为解决一个特定问题而采取的确定的有限步骤。算法的表示自然语言流程图起止处理判断输入输出流程连接第2章 PowerScript语言2.1 计算机语言的基础知识2.1.5 算法和程序算法的表示N-S结构化流程图根据美国学者I.Nassi和B.Schneiderman1973年提出的方法的基础上形成的一种适于结构化的流程图。例子输入50个学生的成绩,统计出不及格人数。第2章 PowerScript语言2.1 计算机语言的基础知识2.1.5 算法和程序算法的表示例子N=0,M=0当N50输入1个学生成绩GG60M=M+1N=N+1输出M的值YN开始N=1,M=0N=50输入成绩G、=、,=,;NOT;AND;OR第2章 PowerScript语言2.3 变量与常量2.3.1 定义变量是一段有名字的连续存储空间(内存地址的引用)。在源代码中通过定义变量来申请并命名这样的存储空间,并通过变量的名字来使用这段存储空间。变量是程序中数据的临时存放场所。变量中可以存放单词、数值、日期以及属性。由于变量让你能够把程序中准备使用的每一段数据都赋给一个简短、易于记忆的名字,因此它们十分有用。变量可以保存程序运行时用户输入的数据、特定运算的结果以及要在窗体上显示的一段数据等。简而言之,变量是用于跟踪几乎所有类型信息的简单工具。常量在某特定的时候,虽然声明了一个变量,但却不希望这个数值被修改,这种永不会被修改的变量,统称为常量。通常将常量的名字全部使用大写,这样在程序中可以起到一目了然的作用,降低程序维护的负担,提高程序的可读性。使用常量的好处是,用户可以从常量的名字得到其值,而不必记住其具体值,若在一段程序中多次使用同一个数值,那么用常量可以保持数值的一致性,避免修改的遗漏,使维护工作简单。注意不能在同一段代码中对常量进行二次声明,否则导致编译错误。此外,在一行语句中只能声明一个常量。第2章 PowerScript语言2.3 变量与常量2.3.2 声明变量datatype varialename常量constant datetype varialename 2.3.3 作用域全局变量(Global variables)定义为整个应用程序都可以访问、并存储在应用程序对象中的变量。全局变量的数目尽可能保持最小。因为程序任何地方都可以修改全局变量,可控性差。实例变量共享变量局部变量(local variables)在脚本层定义的变量,作用域为变量定义位置开始,脚本末尾结束第2章 PowerScript语言2.4 数据类型是一个值的集合以及定义在这个值集上的一组操作。变量是用来存储值的所在处;它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。在声明变量时可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。PowerBuilder与是一种数据类型敏感的开发语言,它提供了标准的和增强的数据类型。2.4.1 标准数据类型Boolean,布尔型(TRUE、FALSE)Character或Char,单个的ASCII字符,例如:ADate,Datetime,日期时间,例:2011-3-12,2011-3-12 12:15:15Decimal或Dec,有符号十进制数,精度18位,例:3567.777778Double,有符号浮点数,15位精度Integer或Int,16位有符号数,作用域从-32768+32767Long,32位有符号数,范围:-2147483648+2147483647String,任意多个ASCII字符,长度:059999,例:“欢迎使用PB”Time,24小时格式的时间值,例15:50:50:250第2章 PowerScript语言2.4 数据类型2.4.2 增强数据类型Any2.4.3 对象型数据类型在Powerbuilder中,系统对象是一类特定的数据类型,可以通过在Powerbuilder的tools菜单的Browse菜单项所弹出的对话框的system标签中列出。2.4.4 枚举数据类型(Enumerated)特定的数据类型,应用于两种情况:作为函数的参数作为对象和控件的属性在Browse窗口中可以查看所有的枚举数据类型以及取值。一个枚举类型的变量可以被赋值为该枚举类型的所有取值的任意一个,枚举类型的每一个值必须以感叹号(!)结束。例如:文本的对齐方式是一种枚举类型,它共有3个可能的取值:Center!、Left!和right!,代码如下:Mle_edit.alignment=right!第2章 PowerScript语言2.4 数据类型2.4.5 数据类型的转换利用数据转换函数可以将一种数据类型转换为另一种数据类型。Double,将string转换成 double型Integer,将string转换成integer型Long,将string转换成 long型Date,获取一个datetime值的date部分Datetime,将date或string转换成datetime型String,将数值、日期等类型转换成string型Time,获取datetime值的time部分第2章 PowerScript语言2.4 数据类型2.4.6 数据类型的检测IsDate,检测datevalue变量是否包含一个合法的日期字符串isNumber,检测string变量是否包含一个合法的数字字符串isTime,检测timevalue变量是否包含一个合法的时间字符串isNull,检测变量是否为空(例sh_246)所有检测函数,如果是返回true,否则返回false。第2章 PowerScript语言2.4 数据类型2.4.7 字符与字符串(例sh_247)字符是单个AscII元素,而字符串是0个或多个字符的集合。如果用户将一个字符串赋给一个字符变量,则只保存第一个ASCII值。字符串时数据库程序设计中最常用的数据类型,常用的字符串操作函数有:Left(string,n)取字符串的前n个字符串组成的字符串作为函数的返回值Lefttrim(string)去掉字符串的开头空格,返回字符串Len(string)取得字符串的长度,返回长整型Lower(string)将字符串每一个字符变为小写,返回字符串Match(string,textpattern)测试字符串中是否含有特定的textpattern子串,返回布尔型Mid(string,start,length)从字符串中从start位置开始,取长度为length的子串,返回为字符串Pos(string1,string2,length)从长度length(默认1)开始,在字符串string1中查找子串string2,返回子串string2在string1中的起始位置,没找到返回0,类型长整型。第2章 PowerScript语言2.4 数据类型2.4.7 字符与字符串字符串时数据库程序设计中最常用的数据类型,常用的字符串操作函数有:Replace(string1,start,n,string2)返回用string2替换string1从start开始的长度为n的子串而得到得字符串。Reverse(string)返回字符串string的倒置,类型为字符串型Trim(string)返回取掉字符串string开头和结尾的空格后组成的字符串。Upper(string)返回字符串string的每个字符转换为大写后的字符串。第2章 PowerScript语言2.4 数据类型2.4.8 数组数组是有共同名字,通过下标来访问的具有相同数据类型的一组变量。可以通过唯一的下标来反问数组的每一个元素,数组的元素可以是任何数据类型,数组的维数可以是一维或多维。Datatype variablenamed1,dn=valuelist(1)一维数组是一个一维表,用单个数字来说明表中元素的个数,或用to语句来设置下标范围。String s_sz112;string s_sz210 to 20保存的时候不会报错,所以要认真检查。第2章 PowerScript语言2.4 数据类型2.4.8 数组(2)无界数组又称大小可变数组,是没有定义下标作用域的一维数组,多维数组不允许定义无界数组。无界数组下标从1开始,不能更改,所以不能用to关键字。上界由最大的下标值控制。声明及内存分配Integer I_sz1I_sz1100=1000;I_sz150=500;I_sz1110=3000使用无界数组的时候,每一次内存分配都耗费一定的系统时间,为了提高系统性能,尽量不要使用无界数组访问一个无界数组当前作用域以外的下标值将产生运行错误Messagebox(“显示数组元素的值”,string(I_sz1111)第2章 PowerScript语言2.4 数据类型2.4.8 数组(3)数组的上下界使用函数求数组的下界lowerBound(array,n)返回数组array第n维的下界,返回值为长整型,n默认值为1。当参数n超过数组的最大维数时,该函数返回-1,当array的值为NULL时,lowbound函数返回NULL。当无界数组在分配内存值之前,该数组的下界为1,上界为0。Integer a5,b2,5Lowerbound(a);Lowerbound(a,1);Lowerbound(a,2);Lowerbound(b,2)Integer c;Lowerbound(c);c50=75;lowerbound(c)Integer d-10 to 50;Lowerbound(c)第2章 PowerScript语言2.4 数据类型2.4.8 数组(3)数组的上下界使用函数求数组的上界upperBound(array,n)返回数组array第n维的上界,返回值为长整型,n默认值为1。其他特性同函数LowerBound。Integer a5,b2,10Upperbound(a);Upperbound(a,1);Upperbound(a,2)Upperbound(b,2)Integer cUpperbound(c)Upperbound()及lowerbound函数执行非常耗时,尽量避免在循环体中使用。第2章 PowerScript语言2.4 数据类型2.4.8 数组(4)数组的初始化可以在声明数组时给数组赋值。初值的数据类型必须与数组元素的数据类型相同。固定大小的数组的初值个数必须与数组的元素个数相同。语法如下:String s_gzdh4=“abc”,”bcd”,”cde”,”def”也可以将一个数组直接赋给另一个数组:String s_gzdh2String s_gzdh4=“abc”,”bcd”,”cde”,”def”S_gzdh2=s_gzdh第2章 PowerScript语言2.4 数据类型2.4.8 数组(4)多维数组多维数组只能是固定大小,它包含一维以上的声明,数组中元素的引用顺序是,从各维下标最小值开始。Integer i_pic4,5i_pic1,1,i_pic1,2,i_pic1,3,i_pic1,4,i_pic1,5i_pic2,1,i_pic2,2,i_pic4,1,i_pic4,2,i_pic4,5声明举例Integer i_array20,3Char c_array4,0 to 255Long l_array3,4 to 200,-20 to 20第2章 PowerScript语言2.5 代词在PowerBuilder中有3个代词this、parent和supper,它们都有特殊的含义。它们所代表的意义取决于在什么地方使用它们。在PowerScript中使用代词可以引用对象和控件。当使用代词时,即使原控件的名字改变,也不会造成代码错误,使程序容易维护。第2章 PowerScript语言2.5 代词(例sh_25)This可以用于窗口、用户对象、菜单、应用程序对象或控件的代码中,用于指代对象或控件本身。This.text=“还原”Parent用于指示包含该对象的对象,几乎所有对象都有它的父对象。要引用对象的所有者,应使用保留字Parent。Parent.title=“请输入姓名!”第2章 PowerScript语言2.6 基本语句Assignment(赋值语句)顺序结构IF THENDO LOOPCONTINUEEXITRETURNHALTCHOOSE CASEFOR NEXT第2章 PowerScript语言2.6 基本语句2.6.1 Assignment(赋值语句)变量和值之间用等号连接Integer i_aString s_ai_a=1s_a=“中国”2.6.2 顺序结构从第一行开始执行直到最后一行Integer i_a,i_b,i_c,i_d,i_sumi_a=1i_b=2i_c=3i_d=4i_sum=i_a+i_b+i_c+i_dMessagebox(“系统提示”,”i_sum=”+string(i_sum)第2章 PowerScript语言2.6 基本语句2.6.3 IF THEN条件:描述真或假的表达式Integer i_a,i_b,i_c,i_dBoolean b_1,b_2,b_3,b_4i_a=1;i_b=2;i_c=3;i_d=4b_1=(i_a i_b)b_2=(i_a=i_b)b_3=(i_a i_c)or(i_d i_b)b_4=(i_a i_b)Messagebox(“系统测试”,”b_1=”+string(b_1)+”;b_2=”+string(b_2)+”;b_3=”+string(b_3)+”;b_4=”+string(b_4)第2章 PowerScript语言2.6 基本语句2.6.3 IF THEN基本语法If 条件 then 语句 else 语句/If 条件 then语句End if/If 条件 then语句Else语句End if第2章 PowerScript语言2.6 基本语句2.6.3 IF THEN例子Example 1 This single-line IF.THEN statement opens window w_first if Num is equal to 1;otherwise,w_rest is opened:IF Num=1 THEN Open(w_first)ELSE Open(w_rest)Example 2This single-line IF.THEN statement displays a message if the value in the SingleLineEdit sle_State is TX.It uses the continuation character to continue the single-line statement across two physical lines in the script:IF sle_State.text=TX THEN&MessageBox(Hello,Tex)第2章 PowerScript语言2.6 基本语句2.6.3 IF THEN例子Example 3This multiline IF.THEN compares the horizontal positions of windows w_first and w_second.If w_first is to the right of w_second,w_first is moved to the left side of the screen:IF w_first.X w_second.X THENw_first.X=0END IF 第2章 PowerScript语言2.6 基本语句2.6.3 IF THEN例子Example 4This multiline IF.THEN causes the application to:Beep twice if X equals YBeep once if X equals ZDisplay the Choose list box if X is blankHide the Choose list box if none of the above conditions is TRUEIF X=Y THENBeep(2)ELSEIF X=Z THENBeep(1)ELSEIF X=THENShow(lb_choose)ELSEHide(lb_choose)END IF第2章 PowerScript语言2.6 基本语句2.6.3 IF THEN练习密码验证求绝对值第2章 PowerScript语言2.6 基本语句2.6.4 DO LOOP基本语法Do until 条件循环体(可有多条语句)Loop/Do while 条件循环体(可有多条语句)Loop/Do 循环体(可有多条语句)Loop until 条件/Do 循环体(可有多条语句)Loop while 条件第2章 PowerScript语言2.6 基本语句2.6.4 DO LOOP例子DO UNTIL The following DO UNTIL repeatedly executes the Beep function until A is greater than 15:integer A=1,B=1DO UNTIL A 15 messagebox(“”,string(A)A=(A+1)*BLOOP第2章 PowerScript语言2.6 基本语句2.6.4 DO LOOP例子DO WHILEThe following DO WHILE repeatedly executes the Beep function only while A is less than or equal to 15:integer A=1,B=1DO WHILE A 15第2章 PowerScript语言2.6 基本语句2.6.4 DO LOOP例子LOOP WHILEThe following LOOP WHILE repeatedly executes the Beep function while A is less than or equal to 15:integer A=1,B=1DO messagebox(“”,string(A)A=(A+1)*BLOOP WHILE A=15第2章 PowerScript语言2.6 基本语句2.6.4 DO LOOPCONTINUEThese statements display a message box twice:when B equals 2 and when B equals 4.As soon as B is greater than 5,the statement following CONTINUE is skipped during each iteration of the loop:integer A=1,B=1DO WHILE A 5)THEN CONTINUEMessageBox(Hi,B is +String(B)LOOP第2章 PowerScript语言2.6 基本语句2.6.4 DO LOOPExitThis EXIT statement causes the loop to terminate if an element in the Nbr array equals 0:int Nbr10=1,2,3,4,5,6,7,0,9,10int Count=1DO WHILE Count 11 IF NbrCount=0 THEN EXIT Count=Count+1LOOPMessageBox(Hi,Count is now +String(Count)第2章 PowerScript语言2.6 基本语句2.6.4 DO LOOP练习求100以内最小的整数n,使n*5-n能被30整除,找到返回n的值,找不到返回-1 有一个两位数,它的十位上的数与个位上的数的和为5,则符合条件的两位数有几个密码验证第2章 PowerScript语言2.6 基本语句2.6.5 ReturnDescriptionStops the execution of a script or function immediately.SyntaxRETURN expression Examplereturn:彩票没买成return 1:彩票中奖了return-1:彩票没中奖return 0:彩票丢失了第2章 PowerScript语言2.6 基本语句2.6.6 HaltDescriptionTerminates an application.SyntaxHALTExampleThis statement stops the application if the user enters a password in the SingleLineEdit named sle_password that does not match the value stored in a string named CorrectPassword:IF sle_password.Text CorrectPassword THEN HALT第2章 PowerScript语言2.7 函数一个较大的程序一般应分为若干个子程序,每个子程序用来实现一个特定的功能,将被经常重复使用的子程序编写为函数,方便在整个程序的其它位置调用。用户在使用PowerBuilder时,可以调用系统定义的函数,也可以使用自己编写的函数,可以说应用程序的编写离不开函数的使用。PowerBuilder预定义了一系列函数,共有800余个,每个函数都可以完成特定的功能。这些函数一般在PowerScript语言中调用,可以完成几乎所有的应用处理工作,功能非常强大。它们按用途可以分为22类。第2章 PowerScript语言2.7 函数2.7.1 一般表达方法函数名(参数1,参数2,)Messagebox(参数1,参数2)2.7.2 自编函数Integer F_sum(integer arg1,integerarg2)Return(arg1+arg2)第2章 PowerScript语言2.7 函数2.7.3 函数递归调用在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为函数的递归调用。输入第一个人的年龄,计算第N个人的年龄,相邻两个人年龄差为x求N!第2章 PowerScript语言2.8 命名规则从理论上讲,只要满足标识符取名规则的标识符都可以作为变量名、控件名。但是,只有按照某种约定,写出的程序才容易被人看懂,方便调试和维护。标识符命名规则的原则应该是要见命知义。也就是说,当看到该标识符时,即使你没看它的定义,也知道它的作用和类型,若它是标识控件的,知道它是哪一类控件。第3章 窗口和控件3.1 程序设计方法3.1.1 初期程序设计硬件昂贵、性能不高,不得不使用巧妙的手段和技术,编写高效的程序。占内存小,花cpu机时少,但是程序可读性差、可维护性差、通用性差。例:减少变量的使用Integer i_x,i_y,i_zi_x=integer(sle_1.text)i_y=integer(sle_2.text)i_z=i_x+i_ySle_3.text=string(i_z)-Sle_3.text=string(integer(sle_1.text)+in