




已阅读5页,还剩55页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本文档分为两个部分,(完全是分开的两部-没关联)第一部分: PB书本自学类容一:标识符:标识符是程序中用来代表变量,标号,函数,窗口,控件,对象等名称的符号。标识符必须是下划线或者字母开头,标识符的非开头字符可以是字母,数字或者5中特殊符号(-,_,#,%,$)标识符不区分大小写标识符的书写应保持连续,中间不能留空格。标识符的最大长度应该控制在100个字符内。保留字不能用作标识符,因为它们已经有特殊的含义。Asdf_dfdfDffds-adfDfsdf_adfDfa#dfAsdf%fggDff$fsdfThis /误用保留字二:ASCLL码字符:字符串中可以包括特殊的ascll码字符,它们不能使用常规的的输入方法直接输入,要使用其他字符来替代。新行:n 制表:t 双引号:” 单引号: 等等三:代词:日常生活中可以用你,我,他之类的代词来指代特定的人物,PowerBuilder也提供了几个代词指定特定的对象。4个代词分别是:this parent parentwindow super 其中前3个广泛使用。1.This: 代表窗口,用户对象,菜单,应用对象或控件本身,即代表正在为之编写事件处理程序的对象。示例;设窗口有一个名称为cb_button的按钮,其上显示的文本是请单击在该按钮的clicked事件中可以添加如下代码:This.text= 再单机一次 :语句执行后把请单击改成了再单机一次不用代词语句:cb_button.text= 再单机一次2.parent: 代表当前控件所在的窗口对象如上述例子:parent.text= 再单机一次 3Parentwindow 代表程序运行时当前菜单 所在的窗口对象,注意:改代词只能在菜单对象的事件处理程序中使用。例子:假设cb_button窗口关联了一个菜单对象,该菜单中的关闭命令用于关闭窗口cb_button,我们可以在该菜单项的clicked事件中添加如下代码:/关闭关联窗口Close (parentwindow) /等同于Close(cb_button)Super :在编写空间或对象的子对象时,子对象中可以调用父对象的事件处理程序,程序中的既可直接利用父对象名称调用他们,也可以使用super代词来应用。四:对象,属性,函数和事件的应用方法。Powerbuilder应用程序的开发过程实际上就是对各种对象的定义和使用过程。所有对象都有名称,并通过名称相互区分。在powerscript中,访问对象的属性,函数,事件的方法很简单,就是使用圆点(.)作为标记符。(1) 访问对象属性的格式为:对象名.对象属性列4.1:把单行编辑框sle_name 的用户输入内容送入字符串变量userenter 的语句可以写成:Userenter= sle_name.text (2)访问对象的函数与事件的格式为:Objectname. type calltype when functionname (argumentlist)l objectname:对象名l type: 取值为function 或 event ,用于指明访问函数还是事件,默认值是function。l calltype: 用于指明查找函数的时机,有效取值为:static(默认值),编译时查找函数,若不存在,产生编译错误;dynamic,程序运行时查找函数,若不存在,产生运行错误。l when: 用于指明函数或事件是立即执行还是当前程序段执行完毕后执行,取值为 TRIGGER(默认值),立即执行;POST,当前程序段执行完毕后执行。l Functionname:指明调用的函数或事件名称。l Argumentlist: 给出函数或事件的参数。例4.2:对象函数和事件的调用示例。代码如下/想把输入焦点移动到单行编辑框sle_name上,程序中的代码是Sle_name.setfocus()/想立即执行按钮cb_name的单击事件处理器,那么编写代码Cb_name.event trigger clicked五:保留字保留字是powerbuilder内部使用的一组单词,有着特殊的含义,不能再把他们用作标识符。如果应用程序误把保留字用作了标识符,那么powerbuilder将给出编译错误。 在powerbuilder中保留字一般显示为绿色。六:数据类型Powerbuilder的数据类型十分丰富,主要包括:标准数据类型,any 数据类型,系统对象数据类型和枚举类型,共4大类。程序中通过数据类型限定变量的取值范围。在powerscript中,我们使用数据类型来声明变量或数组。1标准数据类型:Blob 二进制大对象,用于存储大量数据,例如图像.大文本等。Boolean 布尔型,true 或falseCharacter/char 单个ASCLL字符Date 日期,包括年(1000-3000)月(01-12) 日(01-31)Datetime 日期及时间,仅用于访问数据库的datetime型数据Decimal/dec 带符号十进制数,最大18位精度。Double Integer/int 16位带符号整数,范围从-2147483648 到 +2147483648RealString 字符串类型,用于任意的ASCLL字符,比如计算机abcUnsignedinteger 16位无符号整数,范围0-65535Unsignedlong 32位无符号整数,范围0-42949762952.常量的申明在编写代码时,对应用程序不应该修改的数据声明成常量是个好办法:一来提高了程序的可读性和可维护能力,二来避免了意外的修改,降低了编码出错的概率。声明常量使用 constant,其简单语法为:Constent 数据类型.常量名= 常量值3.变量的作用域:作用域是指用户定义的变量在什么范围内有效。Powerbuilder的变量作用域共有4种:全局变量,实例变量,共享变量和局部变量。*全局变量:在整个应用程序中都可以访问,他的作用域是整个应用程序*实例变量:实例变量和对象相关联,只有在该对象的事件处理程序或函数中才能使用为该对象定义的实例变量。实例变量在它所关联的对象打开时创建,被关闭时消失。*共享变量:共享变量是一种静态变量,这不仅意味着它所在的对象关闭后如果再次打开时,共享变量依然保持对象关闭时的值,还意味着同一个类的多个实例中的同名共享变量将保持相同的值。*局部变量:局部变量在使用它的事件处理程序或函数中声明,其作用域仅限于声明它的程序段,在该程序段的任何地方均可访问局部变量,但其他程序段都不能访问本程序段中的局部变量。运行程序后,进入某个程序段时,系统自动为局部变量分配内存,退出程序时,局部变量占用的内存被释放。4.变量的默认值变量类型 默认值 Blob 长度为0,空的二进制大对象Boolean falseChar ascll码0Date 1900-01-01Datetime 1900-01-01 00:00:00数值类型* 0String 空字符串(“”)Time 00:00:00七:运算符1算术运算符算术运算符用于完成数学运算+ - - * / + - += -= *= /= =2.关系运算符关系运算符用于比较两个操作符,比较的结果为下述3个值之一(true , false, null )= = =在进行运算符比较时,应注意到这些运算符进行的比较是区分大小些的比较,也就是说Aa。需要时可使用powerscrpt的字符串操作函数进行适当的转换,这类函数包括:Upper() 转换成大写Lower() 转换成小写Righttrim() 删除右部空白Lefttrim() 删除左部空白Trim() 删除两端空白3逻辑运算符 Not and or 4连接运算符连接运算符只有一个,那就是+,用于把两个string型或blob型变量的内容连接在一起,形成新的字符串或blob型数据。4.1例:string testtest =北京 + 上海 /test中包含“北京上海”5.基本语句 Powerscript的基本语句主要包括赋值语句,条件语句,循环语句。5.1赋值语句:用于给变量或对象赋值,使用最频繁的语句。其中语法格式为:Variablename (变量名或对象名) = expression(是表达式,其数据类型应该与variablename的数据类型兼容)5.2 条件语句: 共有if语句和 choose case 语句 两类条件语句。If语句计算一个逻辑表达式,然后根据表达式的值是真还是假决定下一步执行的语句块。 Choose case 语句可同时处理多种情况。(1)if 语句,if语句有两种形式。一单行 ifthen 语句,格式为:If cond then action1 else action2其中cond 是个表达条件的逻辑表达式;action1,action2 是一条语句;大括号表示该部分可以根据需要选择。(2) choose case 语句5.3循环语句:powerscript 的循环语句有3种形式:doloop , fornext, 和 goto。如果合理的将前两种形式与exit 和 continue语句配合使用,完全可以抛弃goto 语句。而且 do loop 结构本身又有4中形式,丰富多彩的表达方式为我们编写清晰流畅的程序提供了有效的手段。(1)do loop 循环语句,4种形式:* Do until condition loop* do while condition loop *do .loop until condition *do loop while condition其中do标示循环的开始;loop 表示循环的结束;condition表示循环条件,是个逻辑表达式,其值为true或false。( 2 )fornext :fornext是个循环次数确定的循环结构,她使循环体内的语句执行规定的次数,语法结构为: for varname = start to end step increment statementblock next其中varname是循环变量,可以使是任意的数字类型;start end 分别是循环变量的初值和终值;increment是每次循环后循环变量的步长增量(默认值为1);statementblock 是一组语句,成为循环语体,大括号表示此语句可以省略。其循环过程为: 虚幻变量varname 从start 开始,到end 为止,重复执行循环体,每执行一次,varname+increment。另外 ,如果start 和end 在循环体内被修改,将影响循环次数。(3) goto 语句goto语句将控制跳转到程序中的其他位置,用goto语句也可以构成循环。其语法格式为:goto label 其中label是语句标号,它使用标识符的命令规则。(4) exit (退出循环)语句在doloop和for.next语句的循环体中,当我们想在中途退出循环时,可以使用exit语句,执行该语句后,程序的控制权转至循环语句后的语句。(5) continue(继续循环)语句在循环体中,遇到continue语句后,将不执行continue语句后与循环结束前的所有语句,而是开始新一轮循环。常用事件Open 事件:打开窗口时触发Close 事件:关闭窗口时触发。Closequery 事件:在开始关闭窗口时触发。Dragdrop 事件:当在窗口客户区 释放拖动对象时发生。Resize 事件:当窗口大小发生变化时产生,窗口被打开时也产生该事件。常用函数Powerbuilder 窗口对象比较常用的函数如下:1.ArrangeSheets() 功能:按指定方式排列mdi框架窗口中的工作窗口(子窗口)或图标。语法:mdiframe.arrangesheets(arrangetype)2. getactivesheet()功能:得到指定mdi框架窗口中当前活动工作表。语法:mdiframewindow.getactivesheet()3.getparent功能:返回父窗口的名称语法: windowname.Getparent()4.hide()功能:隐藏窗口语法: windowname.hide()5.print功能:打印窗口语法:windowname.print()6.setfocus()功能:将焦点设置在该窗口上。语法:windowname.setfocus()7.show()功能:显示窗口语法:windowname.show()与窗口相关的函数1.Open()功能:打开窗口。该函数有两种语法格式:格式一:打开编程时已知数据类型的窗口对象。格式二:打开程序运行后才能确定数据类型的窗口对象。语法一:Open(windowvar,parent)语法二:Open(windowvar,windowtype,parent)2 Openwithparm()功能:带参数打开窗口,与Open()函数相似。区别在于 openwithparm()函数可以向打开的窗口对象传递参数。语法一:openwithparm(windowvar,parameter,parent)二openwithparm(windowvar,parameter,windowtype,parent)3 opensheet()功能:在mdi框架窗口中打开mdi子窗口,并在指定菜单中创建该子窗口的相关菜单项。语法:4 opensheetwithparm()功能:在Mdi框架窗口中带参数打开mdi子窗口。与opensheet()函数相似。区别在于opensheetwithparm()函数可以向打开的窗口对象传递参数。语法:5 close()功能:关闭窗口并释放窗口以及窗口上的控件所占据的内存。语法: Close(windowname)6 CloseWithReturn()功能:关闭窗口,与close()函数相似。区别在于closewithreturn()函数在关闭窗口时将返回值保存在message对象中。PB中实例化(用isvalid判断)的作用是什么?比如:if not isvalid(myo_apprun) thenmyo_apprun = create my_apprunend if如果不写它会有什么后果?不写可能会报错,使用isvalid来判断对象是否成功被创建,如果未被成功创建就去使用的话会抛出异常,程序不能正常运行。Upper()编辑Upper()功能将字符串中的小写字母转换为大写字母。语法Upper( string )参数string:要将其中的小写字母转换为大写字母的字符串返回值String。函数执行成功时返回将小写字母转换为大写字母后的字符串,发生错误时返回空字符串()。如果string参数的值为NULL,Upper()函数返回NULL。eg:select upper(AaCdD) from dual;UPPER(AACDD)message.stringparm的用法 比如openwithparm(w_1,abc)在w_1的open事件里就可以通过message.stringparm取得abc的值string ls_stringls_string = message.stringparm /ls_string的值即为abc在窗口调用的时候openwithparm(window_name,trans_string)在窗口打开的时候(open event),ls_string = message.stringparmOpenWithParm()功能带参数打开窗口,与打开窗口的Open()函数相似。Trim()删除字符串首尾的空白(可以首尾一起,也可以指定首或尾,取决于控制参数),但会保留字符串内部作为词与词之间分隔的空格。=html5,c#,powerbuilder,mysql,oracle经典学习视频和文档资料,本人多年收集的学习资料,里面主要包含:“html5,c#,powerbuilder,mysql, oracle”需要加qq: 4 1 7 1 2 9 3 6 7 =第二部分:Pb的5个可编程对象概述:Application对象:程序执行的起点,全局编程Window对象和控件:用户界面主要构成对象Menu对象:调度中心。Userobject对象:重用。封装。Function对象:重用和编程关系紧密的内容:界面设计:常规设计,标准设计函数:600多个函数,常用70多个事件:常用事件,理解触发事件至关重要属性:常用属性Sql语言:数据处理的基础。PB的编程语言:POWerScript嵌入式sql程序和时间的关系:Pb中所有程序的执行都必须通过事件编程的规范性:能编程序不重要,重要的是编写规范的程序实现功能是基本要求,维护要求规范显示编译: ctrl + L 快捷键 快速替换: ctrl+H 标识符:定义:所有程序员自己定义的名称字母或者下划线开头长度=255不区分大小写不能是保留字:比如 this 等关键词就不能指代词:This:代表当前窗口 parent:所编程对象的容器控件Parentwindow:当前菜单所在的窗口。 Super:子对象引用父对象会用到。数据类型:1:保准数据类型:字符型: string char数值型:注意各类型的取值范围,和数据库的同类型的数据精度是否匹配。类型有: integer(最大值65536) long double real decimal unsignedinteger unsignedlong 日期,时间型:date time datetime 布尔型:boolean Blob型:blob2:系统对象类型: create(创建) destroy(释放内存) browser3:枚举型:4:Any型:运行慢,编译时不做类型检查。第一章语言基础变量声明:作用范围:全局变量:整个target下所有对象都可访问实例变量:window application menu userobject 范围内的变量本地变量:申明变量的事件或者函数内变量声明:注意声明时赋值的特例格式:数据类型,变量名称=初值位置:代码的开头规范:作用范围+类型_变量名称 例子:string ls_ss time lt_study类型转换:20160712 第三天:运算符和表达式:算术运算符:+,-,-,*,/,关系运算符:=,=,90Messagebox(提示,优秀)Case is ls_ls60Messagebox(提示,及格)Case is ls_ls row的第一个被选中的行的行号,row=0 表示重头开始查找。 retrieveStart :开始检索前触发。RetrieveRow: 每检索一行数据触发一次。RetrieveRow: 检索结束时执行。-SetProfileString(string file ,string section,string key,string value)函数作用:写配置文件。返回1 或者-1: 1表示成功,-1 表示失败。例:SetprofileString(gs_path + setup.ini,db,dbms,ls_temp)profileString(string file,string section,string key,string default)函数作用:读配置文件返回读取到的内容。如果无法读取,则返回default。Dw_1.insertRow(row)作用:指定行之前插入空白行,0表示在最后插入返回值: 新插入的行的行号Dw_1.GetRow()作用:返回当前行返回值:当前行的行号Dw_1.deleteRow(row)作用:删除数据窗口中的第row行。Dw_1.ScrollPriorPage()作用:前翻页Dw_1.ScrollNextPage()作用:后翻页Dw_1.Update()作用:保存数据返回值: 1保存成功 否则不成功。Commit using : 事物对象名称;提交事务Rollback using 事物对象名称;回退事务SQLCA 事务管理 transaction类型。Dw_1.SetTransObject(transaction) 不自动管理事务对象Dw_1.SetTrans() 自定管理事务对象 不推荐。作用:为数据窗口控件绑定事务对象。Dw_1.Retrieve()作用:检索数据特性:参数的个数,类型不固定。Dw_1.ModifiedCount()作用: 判断数据窗口中有多少行数据被改动过。返回值: long类型,修改过的行数。Dw_1.DeletedCount()作用:判断有多少行数据被删除返回值: 删除的行数,long 类型。数据窗口对象展现样式:DropDownDw:参数详解: 补充递归:1. 特点:函数自己调用自己2. 什么情况递归:计算域中常用的函数:If(关系表达式,值1,值2):成立返回值1 不成立返回值2.GetRow()Page()Pagecount()IsRowNew()Is
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 看影子猜动物英语课堂游戏
- CN120203828A 全口义齿制造方法及全口义齿
- 老年人安全移动课件
- 实际问题与一元一次方程 (2知识点+10大题型+过关测)学生版-2025年人教版新七年级数学专项提升
- 酸菜知识培训内容摘要
- 镗工高级模拟考试题及答案
- 探索与表达规律 预习练(含解析)
- 人教版八年级英语下册专练:任务型阅读专练20篇(附答案)
- 配音课件app教学课件
- 人教版八年级英语下册期末考前模拟必刷卷01(含答案)
- 第七届全国急救大赛(医生组)理论测试考试题库及答案
- AGV拖车电机选择计算表
- 精神障碍的早期识别与心理治疗
- 液氧贮存与充装安全管理
- 老师孤独症培训课件
- 家庭经济困难学生认定申请表
- 2024年《经济法基础》教案(附件版)
- 智慧化税费申报与管理 课件 项目四企业所得税智慧化税费申报与管理
- 《税费计算与申报》课件 项目二 增值税的计算与申报任务三 增值税的申报
- 电动汽车的储能技术
- 阀门检验报告汇总266黄铜球阀
评论
0/150
提交评论