PowerBuilder7.0实用教程
- 格式:ppt
- 大小:3.97 MB
- 文档页数:156
PowerBuilder最吸引人的地方就是她那强大的数据窗口技术,它为展现数据的本质提供了丰富的手段,数据窗口能够从多种数据源提取数据,然后以多种风格展现在用户面前,对于一个PB程序员能否用好用活数据窗口是那么的重要,同时也反映出编程人员的一定技术水平。
相信在看了本文之后一定会对你编写程序有所帮助,文中如有任何不妥之处还请同仁们多多指教。
在实际的应用中我们或许会碰到用户有这样的要求,在第一张报表上打印一个客户的购买商品的统计数据,以后的每页显示的是他购买商品的明晰清单。
也就是相当于打印两份报表,一份是统计报表,另一份是明细表。
单纯就这两份报表而言对于任何一个PB程序员来说都不是什么难事,很容易就可以搞定,我们完全可以分两张报表打印给用户,但这还总是让我们觉得似乎缺了点什么,毕竟用户是想让这两份报表作为一个整体出现,最起码的要求是它们的页号应该连续,并且同时也能告之用户总共有多少页。
这就涉及到多个数据窗口连续打印的问题。
首先,统计和明细的结果是根据用户输入的条件来得到的,这是个不定的结果,我们无法预先得知会有多少条数据,更别说需要多少页了。
即便是我们能够确定有多少条数据也会因为用户打印机的纸张设置不同而会出现不同的显示结果。
其次,要在统计表和明细表里显示两张报表的总页数,这个有点难度,毕竟对于两张报表来说都是个未知数,即对于统计表来说,它可以知道自己的总页数,但不知道明细表的总页数。
同样对于明细表也是这样,只知道自己的总页数,而不知道统计表的总页数。
这样很难在两张报表里分别显示它们的页数之和。
虽然如此可对于它们自己而言当前是第几页还是能够确定的,这个只要调用数据窗口的内嵌函数 Page()就可以很容易的得到。
下边我们就通过一个简单的例子来探讨如何实现多个数据窗口连续打印技术。
程序首先让用户输入客户号,然后系统根据用户输入的客户号统计出该客户各类商品的购买总数以及订购的每一种商品明细。
整个程序的执行如下三副图所示:在开始之前先让我们看一下例子中用到的三张表的结构以及它们之间的相互关系,见下图:其中,表Customer和表Sales_Order通过cust_id(客户编号)相关联,表Sales_Order和表Sales_Order_Items通过id(销售定单号)相关联。
powerbuilder教程
PowerBuilder是一种用于开发客户端/服务器和Web应用程序
的集成开发环境(IDE)。
它具有易于使用的可视化设计工具
和强大的开发功能,适用于数据库应用程序的快速开发和维护。
PowerBuilder的开发过程主要包含以下几个步骤:
1. 创建新的应用程序:在PowerBuilder中,可以选择新建应
用程序,然后配置数据库连接等信息。
2. 创建数据窗口:数据窗口是PowerBuilder中最重要的界面
元素之一,用于显示数据库中的数据。
可以通过拖放方式将数据库表或查询结果添加到数据窗口中,然后设计数据窗口的布局和样式。
3. 编写业务逻辑:可以使用PowerScript编程语言来编写数据
窗口和应用程序的逻辑。
PowerScript是一种类似于其他编程
语言的脚本语言,可以用于处理用户交互、数据库操作、错误处理等。
4. 调试和测试:在开发过程中,可以使用PowerBuilder提供
的调试工具来调试和测试应用程序。
可以设置断点、监视变量的值,并逐步执行代码以检查程序的运行情况。
5. 部署和发布:完成开发和测试后,可以将应用程序部署到目标环境中。
PowerBuilder支持将应用程序打包成可执行文件或
安装程序,以便用户在其计算机上安装和运行应用程序。
总之,通过PowerBuilder的可视化设计工具和强大的开发功能,开发人员可以快速构建数据库应用程序,并实现复杂的业务逻辑。
它是一种非常适合开发数据驱动应用程序的开发工具。
PB数据窗口技巧1 使DataWindow列只能追加不能修改如何使DataWindow中的数据只能追加新记录而不能修改,利用Column 的Protect 属性可以很方便的做到这一点,方法如下:将每一列的Protect 属性设置为:If( IsRowNew(), 0, 1) )在PowerScript 中可以动态修改Protect 属性:dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'")这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。
2 如何在DataWindow中实现列的自动折行我们在PowerBuilder应用程序的开发过程中, 使用DataWindow时, 经常会遇到某列的数据太长, 不能同时全部显示的情况. 若采用自动水平滚动, 操作起来又不够简便. 下面介绍一种方法, 实现列数据多行显示, 即实现列数据的自动折行.具体步骤如下:1) 在DataWindow Painter中打开此DataWindow.2) 在需设定自动折行的列上双击鼠标, 弹开此列的属性窗口.3) 选择Position标签, 选中Autosize Height 多选框.4) 选择Edit标签, 不选中Auto Horz Scroll多选框.5) 单击OK按钮, 保存所做的修改.6) 点中Detail Band (即写有Detail的灰色长带), 单击鼠标右键, 选择Properties... 菜单项.7) 选中Autosize Height多选框.8) 单击OK按钮, 保存所做的修改.9) 保存此DataWindow.注意:连在一起的汉字(中间没有标点或空格分隔), 系统将认为是一个单词, 不会自动进行折行.3 在数据窗口中实现动画要实现动画,必须要有定时器,在数据窗口中已经有了一个定时器,双击数据窗口将弹出的对话框,在Timer Interval中定义大于零的值就有定时器(可以精确到毫秒),有了这个定时器就可以实现动画了。
PB控件使用介绍一、PB中使用Microsoft Web Browser控件步骤:在pb的某窗口中加入OLE对象,选择Insert control(插入控件),然后选中"Microsoft WEB 浏览器",(随系统而定的版本),就可以在这个窗口直接使用IE浏览器控件了。
常用函数:(对这个ole控件取名叫ole_web)ole_web.object.navigate(string ls_url) file://浏览某url,譬如:ole_web.object.navigate('') 就是浏览 页面,当然支持本地文件,也支持本地图片文件的浏览,如jpeg,jpg,gif,png等等,如果是不支持的文件,则直接弹出选择打开文件对话框,和ie一模一样。
ole_web.object.goback() file://回退(如果没有内容可退,则会弹出错误,可以屏蔽该错误)ole_web.object.goforward() file://前进,同上常用事件:documentcomplete : url请求的页面完成;downloadcomplete:url中请求的下载完成;常用属性:ole_web.object.width :pixel高度,需要转换为pbunit高度才可以调整ole_web.object.height:同上ole_web.object.offline:离线方式,true,false两者之一你甚至可以用pb写出一个和ie类似的界面用来进行浏览网页或图片。
二、在程序中打印在程序中如何提供打印功能呢?这里有三种调用打印函数的格式可供选择。
1. 对数据窗口控制或者数据窗口可以使用这种打印格式。
DATAWINDOWNAME.Print(cancel_window)这里cancel_window 是一个布尔值,它指出是否要显示一个用户可以用来中止打印动作的窗口。
PowerBuilder调试方法与技巧1.引言PowerBuilder是数据库前端应用开发的主流编程工具,随着从Client/Server的两层开发模式到三层甚至多层开发模式的过渡,PowerBuilder不断增加新的功能以适应和推进这种转变。
PowerBuilder 7的版本已经可以通过开发Jaguar 中间层组件创建典型的分布式应用。
这就给PowerBuilder的调试技术提出新的要求。
调试技术在任何软件开发中都站有及其重要的位置。
利用PowerBuilder开发也不例外。
PowerBuilder工具集成了强大的调试画板,使得调试变得容易,但其中的一些高级的调试技巧和技术并不是很容易掌握,而掌握和使用这些调试的高级技巧和技术是开发高质量软件产品的重要保证,也是优秀的PowerBuilder开发者必须具备的能力。
PowerBuilder提供的高级调试技术主要包括:设置临时和条件断点、设置变量值改变断点、Just-in-time调试、Jaguar组件远程调试术(Remote Debug)。
前三种调试技巧适合于本地调试;最后一种是分布式应用中的调试技巧,可以在客户端对部署在应用服务端Jaguar CTS(Component Transaction Server组件事务服务器简称)的组件进行调试,包括调试陷入到事件或者方法的脚本,观察和更改组件变量等。
远程调试技术以本地调试为基础,是PowerBuilder做分布式开发的关键性技术,尽管与本地调试类同,但却又有其独特和复杂的一面,是做好PowerBuilder中间层组件开发的重要技术。
当然,熟悉本地调试的各种技术细节,才能更好得进行远程调试。
对于基本的调试技术(比如设置断点、单步执行、屏蔽和清楚断点、监视变量等)不再累述。
2.PowerBuilder7的调试画板简介调试画板集成了PowerBuilder强大的调试功能,包括以下主要的部分:1)Breakpoints View:展示所有要调试的对象、事件、代码行信息、通过它很容易定位到需要调试的代码或者进行断点使能和屏蔽等操作。
PowerBuilder 7.0实用技巧八则一、实现运行窗口居中众所周知,PowerBuilder 7.0在以前的版本中提供了图形化的预览工具,可以很方便的在设计阶段实现窗口居中。
但是,到了7.0似乎该项工具被取消了,也没有什么属性来设置,至少我没有找到。
每当我们需要将窗口居中的时候只有一点一点地调整它的X,Y值,这一点十分让人头痛。
出于无奈,只好通过编程实现。
我们只在每个需要居中的窗口的Open事件中写上这些代码就会实现窗口的自动居中。
要实现窗口的自动居中,我们可以用函数Move()来实现。
但是,由于我们开发出来的应用程序往往会在不同的设置环境中运行,虽然一般情况下是由我们为用户配置好的,但我们总不能保证用户显示器的设置模式不会改变。
所幸的是,PB为我们提供了环境对象Environment,该对象其实是一个系统结构,其中保存了PB应用程序的运行平台信息,例如,代码集,CPU类型等。
其中当然会有我们需要的屏幕宽和高。
为了得到该结构我们可以用函数GetEnvironment()。
该函数的作用是得到关于操作系统,处理器和屏幕的系统信息。
具体用法如下:Environment my_systemInteger li_ScreenWidth, li_ScreenHeightGetEnvironment(my_system)// 得到屏幕的总宽度和长度li_ScreenWidth = PixelsToUnits(my_system.ScreenWidth, XPixelsToUnits!)li_ScreenHeight = PixelsToUnits(my_system.ScreenHeight, XPixelsToUnits!)// 函数PixelsToUnits()的作用是将屏幕的像数转换成PowerBuilder使用的单位,因为像数通常不用于方形中,具体用法请参见函数手册。
然后就可以用Move()来实现窗口居中。
PowerBuilder编程技巧实例随着数据库技术在各行各业的广泛应用,作为企业级数据库前端开发工具的Power Builder日益成为开发人员的得力助手。
PowerBuilder以其开放的体系结构,友好的用户界面和简洁高效的开发环境赢得了众多程序员的喜爱,连续多年被评为美国计算机界的年度风云产品,在数据库开发工具领域占据了高达44%的市场份额。
PowerBuilder进入我国的时间不长,许多编程人员希望了解并掌握这一先进工具。
在这里,笔者将自己平日用PowerBuilder作开发的一些体会整理出来,奉献给大家。
PowerBuilder是由多个功能模块组成的可视化集成开发环境,是面向对象的开发工具,用它可以方便地建立起基于Windows的分布式数据库应用。
其功能模块分别完成应用管理、窗口对象设计、菜单对象设计、数据窗对象设计和数据库查询等工作,这些功能模块由于PowerBuilder提供的色彩丰富的工具条而被称作"Pain ter"(画板。
下文便依据各模块作大的分类介绍相应的编程技巧。
、有关应用的编程技巧仅让应用程序运行一次的技巧有时需要限制一个PowerBuilder应用同时运行的实例(Instanee个数或仅让应用运行一次,我们可以通过调用WindowsSDK函数或使用PowerBuilder的Handle(函数来实现。
先谈调用SDK函数的方法。
为了调用SDK函数,需要在AppIicationPainter的菜单项Declare'GlobalExternalFunctions中定义:Fun ctio nuin tGetModuleHa ndle(stri ngModuleNameLibrary"Kernel.exe"Fun ctio nuin tGetModuleUsage(ui ntModuleHa ndleLibrary"Kernel.exe"F面这段程序写在Application的Open事件中。
《PowerBuilder》课程实验指导书实验一PB编程环境一、实验目的了解PowerBuilder的集成环境,熟悉PowerBuilder的基本操作以及利用PowerBuilder控件进行简单的编程。
二、实验原理利用PowerBuilder控件进行简单的编程。
三、主要仪器及耗材计算机,PowerBuilder四、实验内容与步骤内容:1. PB 的启动与退出。
2.定制画板与工具条。
3. 利用Template Application创建应用程序。
4. 利用PowerBuilder控件进行简单的编程。
步骤:1.启动双击屏幕上的PowerBuilder图标,就可以启动PowerBuilder。
2.定制画板根据自己的需要将扩展画板加到PowerBar中,以方便使用。
其方法为:在PowerBar 上单击鼠标右键,弹出一个弹出式菜单,选择"Customize", 打开"Customize"对话框,该对话框包括上下两个部分,上部分为PoweBuilder所能提供的所有画板(含基本画板和扩展画板),下部分为目前已经在PowerBar中的画板.可以通过拖的方式把扩展画板加到PowerBar中。
3.定制工具条(1) 在PowerBar上单击鼠标,弹出的菜单中Powerbar1和PainterBar1代表系统当前所打开的工具条。
(2) 单击菜单中的New菜单项就可以生成一个新的工具条,单击后系统弹出一个题为New toolbar 的对话框,要求用户为要创建的工具条选一个名字。
(3) 系统接着弹出一个题为Customize的对话框,此后就可以用和前面类似的方法来定制新创建的工具条。
4.利用Template Application创建应用程序。
在创建workspace之后,单击File→在Target标签中双击Template Application图标→About the Template Application Wizard对话框→What you will do对话框→Specify New Application and Library对话框→Specify Template Type对话框→Adjust Application Library Search Path对话框→Name MDI Frame and Menu对话框→Name MDI Base Sheet,Menu and Service对话框→Name Individual Sheet对话框→Assign Display Names to Sheets对话框→Name About Box and Toolbar Window对话框→Specify Connectivity对话框→Create Project 对话框→Ready to Create Application对话框,最后单击Finish。
目录第一讲面向对象与PB开发环境 ............................................ 错误!未定义书签。
一.开发工具总体介绍.......................................................... 错误!未定义书签。
二.面向对象技术与可视化开发环境.................................. 错误!未定义书签。
1.面向对象技术................................................................. 错误!未定义书签。
2.PowerBuilder可视化开发环境 ..................................... 错误!未定义书签。
三.熟悉开发环境.................................................................. 错误!未定义书签。
四.应用程序开发步骤.......................................................... 错误!未定义书签。
第二讲应用对象与事务对象 ................................................... 错误!未定义书签。
一.应用对象和应用对象画笔.............................................. 错误!未定义书签。
1.应用对象......................................................................... 错误!未定义书签。
2.应用库............................................................................. 错误!未定义书签。
PowerBuilder函数使用手册.PowerBuilder 函数全集PrintDefineFont(功能定义打印作业使用的字体,对每个打印作业PowerBuilder 支持八种字体。
语法PrintDefineFont(printjobnumber,fontnumber,facename,heig ht,weight,fontpitch,fontfamil y, italic,underline参数printjobnumber :用PrintOpen(函数打开的打印作业号fontnumber :指定赋给当前定义字体的编号,有效值在1到8之间facename:string 类型,指定字体名称,该字体应该是你的打印机支持的字体,比如“宋体”height:Integer 类型,使用正值指定字体的高度,以千分之一英寸为单位;使用负值指定字体点数,比如,-18代表18点。
一般来说,使用点数更精确些weight :指定字体的磅数,正常字体为400磅,粗体为700磅fontpitch :FontPitch 枚举类型,指定字体标准。
有效取值为:Default! - 缺省值;Fixed! - 固定形式;Variable! - 可变形式fontfamily :FontFamily 枚举类型,指定字体系列。
有效取值为:AnyFont! 、Decorative! 、Modern! 、Roman! 、Script! 、Swiss!italic :boolean 类型,指定是否使用斜体样式。
有效取值为:TRUE - 使用斜体样式;FALSE - 不使用斜体样式。
缺省值为FALSEunderline :boolean 类型,指定是否加下划线。
有效取值为:TRUE - 加下划线;FALSE - 不加下划线。
缺省值为FALSE 返回值Integer 。
函数执行成功时返回1,发生错误时返回-1。
如果任何参数的值为NULL ,PrintDefineFont(函数返回NULL 。
PowerBuilder调试方法与技巧1.引言PowerBuilder是数据库前端应用开发的主流编程工具,随着从Client/Server的两层开发模式到三层甚至多层开发模式的过渡,PowerBuilder不断增加新的功能以适应和推进这种转变。
PowerBuilder 7的版本已经可以通过开发Jaguar 中间层组件创建典型的分布式应用。
这就给PowerBuilder的调试技术提出新的要求。
调试技术在任何软件开发中都站有及其重要的位置。
利用PowerBuilder开发也不例外。
PowerBuilder工具集成了强大的调试画板,使得调试变得容易,但其中的一些高级的调试技巧和技术并不是很容易掌握,而掌握和使用这些调试的高级技巧和技术是开发高质量软件产品的重要保证,也是优秀的PowerBuilder开发者必须具备的能力。
PowerBuilder提供的高级调试技术主要包括:设置临时和条件断点、设置变量值改变断点、Just-in-time调试、Jaguar组件远程调试术(Remote Debug)。
前三种调试技巧适合于本地调试;最后一种是分布式应用中的调试技巧,可以在客户端对部署在应用服务端Jaguar CTS(Component Transaction Server组件事务服务器简称)的组件进行调试,包括调试陷入到事件或者方法的脚本,观察和更改组件变量等。
远程调试技术以本地调试为基础,是PowerBuilder做分布式开发的关键性技术,尽管与本地调试类同,但却又有其独特和复杂的一面,是做好PowerBuilder中间层组件开发的重要技术。
当然,熟悉本地调试的各种技术细节,才能更好得进行远程调试。
对于基本的调试技术(比如设置断点、单步执行、屏蔽和清楚断点、监视变量等)不再累述。
2.PowerBuilder7的调试画板简介调试画板集成了PowerBuilder强大的调试功能,包括以下主要的部分:1)Breakpoints View:展示所有要调试的对象、事件、代码行信息、通过它很容易定位到需要调试的代码或者进行断点使能和屏蔽等操作。
第五章PowerBuilder应用程序的对象PowerBuilder为每个程序都定义了一个应用对象,将它作为程序的开始入口,所以在PowerBuilder开发的软件中,在应用(Application)对象中,需要编写启动代码,同时应用对象还规定着应用程序系统级的许多属性。
5.1 PowerBuilder的应用对象在PowerBuilder画板中,可以对应用程序系统中的各种对象进行设置,包括Application、Window、控件(按钮、文本框等)和数据窗口(DW)等。
在画板中包含许多视图,常见视图列举如下:•“Properties”(属性)视图:用来设置对象及各种控件的属性。
•“Event List”(事件列表)视图:查看对象的所有事件。
•“Script”(脚本)视图:为各种对象的事件编写代码。
•“Function List”(函数列表)视图:查看对象的所有函数。
5.1.1 “Application”应用对象属性“Application”应用对象有许多属性,在“Properties”属性视图中,有“General”和“Toolbar”标签。
Application应用对象的常用事件有:“Open”事件、“close”事件、“systemerror”事件、“idle”事件。
5.1.2 应用对象的事件设计“Open”事件:是一个PowerBuilder应用程序的起点。
•“Close”事件:是在退出应用程序、返回到操作系统之前所触发的事件。
•“Idle”事件:是在程序中判断设定的时间间隔内,当用户未敲击键盘或使用鼠标时,被触发的事件。
•“SystemError”事件:用来处理严重的系统错误。
【例5.1】设置应用对象属性5.1.3 引用多PBL文件PowerBuilder应用程序中的对象,基本上都保存在“PBL”文件中,如果要将一个“PBL”文件移动到其它计算机上,而只需要复制“PBL”文件即可。
方法是建立工作空间之后,再将该“PBL”程序导入,该技术对低版本的PB应用向高版本的升级非常实用。