PowerBuilder实践教程200页完整版教学课件汇总全书电子教案

上传人:cl****1 文档编号:570329616 上传时间:2024-08-03 格式:PPT 页数:200 大小:431.04KB
返回 下载 相关 举报
PowerBuilder实践教程200页完整版教学课件汇总全书电子教案_第1页
第1页 / 共200页
PowerBuilder实践教程200页完整版教学课件汇总全书电子教案_第2页
第2页 / 共200页
PowerBuilder实践教程200页完整版教学课件汇总全书电子教案_第3页
第3页 / 共200页
PowerBuilder实践教程200页完整版教学课件汇总全书电子教案_第4页
第4页 / 共200页
PowerBuilder实践教程200页完整版教学课件汇总全书电子教案_第5页
第5页 / 共200页
点击查看更多>>
资源描述

《PowerBuilder实践教程200页完整版教学课件汇总全书电子教案》由会员分享,可在线阅读,更多相关《PowerBuilder实践教程200页完整版教学课件汇总全书电子教案(200页珍藏版)》请在金锄头文库上搜索。

1、第1章 PowerBuilder概述 PowerBuilder简称PB,是PowerBuilder soft公司推出的数据开发工具。 PowerBuilder采用了面向对象编程技术,可视化、图形化和自动报表技术突出,它创建了一个具有独特优点的开发编程语言,可以使应用程序开发效率高、成本低、质量好。 PowerBuilder是高效开发计算机网络应用软件的工具,经常设计客户机/服务器架构的应用,也可以设计B/S结构的应用。PowerBuilder把开发工具与企业服务器紧密集成,用户不需要离开PowerBuilder集成环境,就可以开发出应用服务器所需的各种组件,或者编写网页和代码。1.1 Powe

2、rBuilder特色 PowerBuilder是一种数据库开发工具,比一般开发工具的开发效率强得多。数据窗口事件驱动的应用程序4L语言面向对象的编程跨平台开发开放的数据库连接分布式开发1.2 PowerBuilder开发环境 PowerBuilder 10.0安装完毕后,会在“开始”级联菜单中生成程序选项。单击“开始/程序/Sybase/ PowerBuilder 10.0/ PowerBuilder 10.0”菜单项,即可启动。 要利用PowerBuilder进行应用程序开发,首先必须熟悉PowerBuilder的开发环境,也就是说,必须对PowerBuilder的界面及其构成、操作方法、开

3、发流程等进行深入的了解。1.2.1 PowerBuilder界面 当第一次启动PowerBuilder 10.0时,会打开“Welcome to PowerBuilder”对话框,其中列出了提供操作的选项。具体如下所示:Create a new workspace and a new targetCreate a new workspace and add an existing targetCreate just a new workspaceOpen an existing workspaceClose this dialog PowerBuilder主窗口的最上方是标题栏,下面是菜单栏,

4、菜单栏的下面是PowerBuilder的主工具栏。主窗口的左边是系统树窗口和剪贴窗口,下方是输出窗口。1.2.2 PowerBuilder菜单 PowerBuilder的所有开发工作都可以通过选择菜单项进行,PowerBuilder的菜单包“File”、“Run”、“Tools”、“Window”、“Help”5菜单项及其下拉菜单。“File”菜单。“File”菜单下包括“New”、“Inherit”、“Open”、“Run/Preview” 等10个菜单项。“Run”菜单。“Run”下拉菜单包括“Incremental Build Workspace”、“Full Build Workspa

5、ce”、“Deploy Workspace”、“Debug”等11个菜单项。“Tools”菜单。“Tools”下拉菜单包括“Toolbars”、“Keyboard Shortcuts”、“System Options”、“To Do List”、“Browse”等10个菜单项。“Window”菜单。“Window”下拉菜单包括“Tile Vertical”、“Tile Horizontal”、“Layer”、等9个菜单项。“Help”菜单。“Help”下拉菜单用来提供系统帮助功能,它的下拉菜单包括“Contents”、“Welcome to PowerBuilder 9.0”、“Sybase

6、Web Site”等6个菜单项。1.2.3 PowerBuilder工具栏在菜单栏下面显示的是PowerBuilder的主工具栏,利用工具栏可以执行建立新的对象和应用、打开已经存在的对象、调试和运行当前应用等操作。1.2.4系统树(System Tree) 系统树列出了当前开发的系统的所有可用资源,它可以让开发者获取各类对象的信息,还可以实时拖动对象到画板视图中进行编辑。“Workspace”选项卡,列出当前工作区及当前工作区中的所有目标。“Page”选项卡,显示“Microsoft Internet Explorer”对象模型以及在HTML编辑器中当前页的层次结构。“Language”选项卡

7、,列出了对Web目标有效的语言元素。“Web target”选项卡,显示了客户端和服务器端脚本语言的语句和实例对象。1.3系统开发基本概念 在开始使用PowerBuilder进行应用开发之前,首先介绍PowerBuilder的有关概念和术语。工作区。在PowerBuilder中所有的程序开发工作都是在工作区下进行的。画板(Painter)和编辑器(Editor)。画板是用来编辑对象的编辑器;对于每一个画板,都有一个源码编辑器,可以使用这个文件编辑器直接编辑对象的源码。事件(Event)和脚本(Script)。 PowerBuilder开发的应用程序是基于事件驱动的,可以在该事件中编写代码。属性

8、(Properties)。所有对象和控件都有自己的属性,例如宽度、高度等。1.4 PowerBuilder的安装PowerBuilder的安装十分简单,只需要根据安装向导的提示,逐步完成操作即可完成。把PowerBuilder安装光盘放入光盘驱动器中设置用户信息 输入用户名以及公司名称选择安装文件夹选择安装PowerBuilder 套件中的组件第2章 PowerBuilder程序设计基础 PowerBuilder具有可视化、高效编程的特点,可以编写GUI界面的应用程序。 PowerBuilder开发环境本身就是一个良好的GUI界面,为程序开发者提供了方便。 2.1 工作区与应用对象设计 Pow

9、erBuilder可以建立多个工作区,但是在同一时刻只能有一个工作区被打开。建立了工作区后,可以建立一个或多个目标对象,或者将已存在的目标添加到当前工作区中。 添加已存在的目标到当前工作区的步骤如下:右击工作区名称,选择“Add Target”菜单项选择要打开的目标文件名(.pbt)设置目标的属性设置工作区的属性2.2 画板布局 默认状态下,系统树窗格和剪贴窗格显示在PowerBuilder主窗口的左边,输出窗口显示在PowerBuilder主窗口的底部。但也可以根据需要对画板布局进行调整。具体步骤如下:选择“Tools/System Options”菜单项选择“General”选项卡,清除“

10、Horizontal Dock Windows Dominate”复选框。单击“OK”按钮。2.3 定制工具栏 PowerBuilder提供的工具栏由3种,主工具栏(称为Power工具栏)、画板工具栏和格式工具栏。并且对工具栏可以实施以下操作:下拉工具栏工具栏的显示属性设置移动工具栏定制工具栏重建工具栏2.4 PowerBuilder画板 在PowerBuilder中,建立和编辑对象的地方称为画板(Painter),例如窗口画板、菜单画板、数据库画板等。在画板中可以设置对象的各种属性,为对象的事件编写脚本,定义变量、函数等。 大多数用来编辑PowerBuilder对象的画板具有以下特征:带有多

11、个视图(View)、具有撤消(Undo)/重做(Redo)功能,可以采用拖放操作来编辑脚本或复制对象,支持历史记录恢复,可以按照任务列表(To Do List)上的链接项跳转到指定位置,支持存盘提醒功能。2.4.1 布局画板 视图是画板内用来执行特定功能的地方。主要视图如下:布局(Layout)视图,显示对象及其控件的实际外观属性(Properties)视图,显示和设置对象或者当前选中的控件的属性值脚本(Script)编辑视图,用来编辑事件和函数的脚本控件列表(Control List)视图,列出对象中的可视控件事件列表(Event List)视图,显示了对象或控件的所有事件非可视化对象列表(

12、Non-Visual Object List)视图,列出已经添加到当前对象中的非可视化用户对象函数列表(Function List)视图,列出了PowerBuilder内置的函数以及对象级的自定义函数2.4.2 快捷键 PowerBuilder菜单的大多数菜单项都设置有快捷键,通过这些快捷键可以快速执行菜单项的功能。 PowerBuilder允许定制菜单项的快捷键。设置菜单项快捷键的步骤如下:选择“Tools/Keyboard Shorts”菜单项选择一个设有快捷键的菜单项或者带有默认快捷键的菜单项按下快捷键单击“OK”按钮即可 移去一个已定义的菜单项快捷键,操作步骤如下:选择“Tools/K

13、eyboard Shorts”菜单项选择要移去快捷键的菜单项单击“Remove”按钮单击“OK”按钮 重置快捷键方法如下:选择“Tools/Keyboard Shorts”菜单项单击“Reset”按钮,在确认对话框中单击相应的按钮单击“OK”按钮2.4.3 设计字体 PowerBuilder启动后,各对象或画板都会以系统默认的字体显示,但也可根据需要,重新设计字体。 PowerBuilder 可以完成对以下字体的设计:数据表、标题和标签中的字体属性用户对象、窗口以及数据窗口画板内的字体属性应用、菜单、库画板、浏览器和帮助的字体属性函数画板、脚本视图、数据库画板内的交互SQL视图、源码编辑器、文

14、件编辑器、调试窗口的字体属性2.4.4 定制颜色 PowerBuilder提供了数十种预定义颜色,同时也允许开发者定制自己的颜色。 定制颜色的步骤如下:打开画板,选择“Design/Custom Colors”菜单项调整基本颜色的属性或者直接输入确切的颜色数值单击“添加到自定义颜色”按钮即可根据需要再定制其它颜色单击“确定”按钮即可2.4.5 输出窗口 输出窗口用来显示各种操作的有关信息,例如,迁移(Migration)、构建(Build)、调度(Deployment)、编译项目、保存对象、检索等。 单击Power工具栏中的“Output Window”按钮或者选择“Window/Output

15、”菜单项可以隐藏或显示输出窗口。 初次启动PowerBuilder时,工作环境会按照默认的设置显示,不过这个设置是可以改变的。 设置启动PowerBuilder时的有关参数,其步骤如下:选择“Tools/System Options”菜单项,从中选择“Workspaces”选项卡根据不同的要求设置有关属性2.5 设置PowerBuilder环境参数2.6 使用帮助 PowerBuilder提供的联机帮助功能有两类:l HTML帮助文件包含大量的帮助信息,分别是“HTML帮助用户手册”、“应用开发技术”、“数据窗口程序员手册”、“数据库连接”以及为PowerBuilder企业级用户准备的“使用W

16、eb和JSP目标”。l Windows帮助包含以下内容: PowerBuilder当前版本的新特性,上下文敏感帮助,对象控件、数据窗口、Power Script的参考信息,以及描述语法工具、迁移助手等工具的帮助信息。2.7 PowerBuilder开发典型案例 最新版本的PowerBuilder除了可以开发传统的客户机/服务器应用之外,还可以方便地开发出多层应用(分布式应用)和Web应用。使用PowerBuilder开发应用程序的步骤如下:建立工作区建立应用建立窗口创建数据窗口对象测试和调试与应用编译应用2.8 数据库连接 数据库(Database,DB)是按一定组织方式存储在计算机存储器中的

17、相互关联的数据集合。 数据库的应用开发,包括数据库的创建、管理、连接和ODBC的工作原理,以及建立数据表、建立主键和数据修改等。 数据库管理系统(DBMS)是一个管理数据库的软件系统,为用户提供了描述数据库、操纵数据库和维护数据库的方法和命令,并且能自动控制数据库的数据完整性以及安全性。2.8.1 创建数据库 数据库系统(DBS)是一个具有管理数据库功能的计算机系统,包括数据库、数据库管理系统、应用软件和数据库管理人员(DBA)等几部分。 【例2.2 】在PowerBuilder集成环境中创建数据库。2.8.2 访问数据库 在访问数据库之前,首先要建立与数据库的连接。PowerBuilder与

18、数据库的连接建立在驱动程序之上。对于Sybase、Oracle这样的大型数据库系统, PowerBuilder提供访问效率高的专用数据库接口;而对于小型数据库和支持ODBC接口的数据库,PowerBuilder提供了ODBC接口。 PowerBuilder连接数据库的步骤是:确定连接数据库的接口(即专用接口还是ODBC)、建立数据源,建立引导名、连接数据库。 【例2.3 】给ASA8类型的数据库定义数据源。 【例2.4 】建立数据库引导名。2.9 简单应用实例 PowerBuilder可以高效率地编制一个具有数据的“插、删、改、打印和备份”功能的小程序。首先创建一个简单数据库:“c:mydb”

19、,然后,创建工作空间:“WK1”和应用:“aa”,再新建窗口:“w1”和数据窗口对象:“dd”,最后,给窗口中的各个控件编写脚本。 【例2.5 】一个具有简单“插、删、改、打印和备份”功能的应用程序。 第三章 数据库画板 数据库(表)及其主键、外键、索引的建立和定义是进行实际开发工作的第一步,PowerBuilder的开发工作几乎都是围绕数据库展开的。在建立数据库(表)之前,开发人员应进行详细的系统分析,其中包括该建哪些表和表的字段及数据类型、宽度以及主键、外键、索引的规划等。 在数据库画板内,可以执行数据库的大部分数据管理功能,主要包括以下内容:建立数据表、主键、外键、索引列、修改属性、数据

20、视图和执行交互式SQL命令等。3.1 数据表操作 数据库中的数据一般都存储在表中,数据表(Table)是一个实体,有唯一的名称,表是由行与列组成的,每一行都是对这种实体完整性的描述。 数据表是数据存储的基本单元,它可以看作一组行和列编号的数据集合,在关系数据表中,行被称为记录,而列则被称为字段。数据表中常用概念如下:表、字段、记录、主键、关系。3.1.1 创建数据库和数据库表 PowerBuilder自带一个小型关系型数据库管理系统“Adaptive Server Anywhere”,支持多种平台应用。 【例3.1 】创建数据表,存储表3.1中的信息,数据库表名定义为:“boy”。3.1.2

21、数据库画板工具栏 数据库画板工具栏有“PainterBar1”、“PainterBar2”和“PainterBar3”三个,其中“PainterBar1”主要是针对于数据库表进行操作,主要是: Connect、Disconnect、 Save、 Create Table、 Drop Object等。 “PainterBar2”主要是对“Interactive SQL”交互式SQL语句进行操作,主要是:Cut、Copy、Paste、Paste SQL、Select ALL、Comment等。 “PainterBar3”主要是针对记录进行操作,主要是:Retrieve、 Save Changes、

22、 Insert Row、 First、 Next等。3.1.3 Layout视图窗格 在数据库画板中,用鼠标右键单击表,在弹出的快捷菜单中选择“ Add to Layout”子菜单项,则PB系统将把该表以图形的方式直观地显示在“Layout object”视图中。“Layout”视图中列出了数据表、列、主键、索引和外键等信息,鼠标右击其中任何一个对象,并在弹出的快捷菜单中选择“Properties”菜单项,都可对此对象进行编辑。3.2 数据表设计 在数据库画板中,有多种操作方法可以对数据库的表进行修改与维护,建立数据表的另一种方法是:右击数据库资源“Tree”中的“Tables”项,并在弹出的

23、快捷菜单中选择“New Tables.”菜单项。3.2.1 数据表属性窗格 在数据库画板对象的“Objects”视图中,鼠标右击数据表,在弹出的快捷菜单中选“Properties”菜单项,可打开表的属性视图窗格。 在表的属性视图中,可以设定此数据表的相关属性,共有四个标签页:Data Font属性、General属性 、 Heading Font属性、 Label Font。 设置完成后,可以单击工具栏中的“Save”图标保存修改。3.2.2 主键、外键和索引 表的主键(Primary Key)是能够唯一标识每一行数据的一列或若干列的集合。定义表的主键可以保证表的引用完整性,如果数据库管理系统

24、(DBMS)支持主键(绝大多数DBMS都具备此项功能),就应该为每个数据表定义各自的主键。 外键(Foreign Key)是指表中的一个或多个列与其它表中的主键建立的对应关系,在关系数据库中,可以利用外键连接多个表,保证数据库的参照完整性。 外键的建立步骤如下: 对应规则有三类,它们的含义分别是:Disallow if Dependent Rows Exist(RESTRICT)Delete any Dependent Rows()CASCADESet Dependent Columns to NULL(SET NULL) 索引的创建与主键类似。3.2.3 列属性维护 在定义数据表时,同时也定

25、义了列的类型、初值等基本属性。在数据库画板中还可以定义列的其它属性,包括显示格式、编辑风格、有效性规则等。列的属性定义方式与表的属性类似,该属性视图共有五个标签页: General、 Headers、 Display、 Validation、 Edit Style。3.2.4 扩展属性 列的“Display Formats”、“Edit Styles”、“Validation Rules”属性在表的属性窗口中只能引用而不能对其定义,在数据库画板中选择“View/Extended Attributes”菜单项,将打开扩展属性(Extended Attributes)视图,在此视图中可以定义列的显

26、示格式、编辑风格和验证规则。 自定义显示格式(Display Formats)自定义编辑样式(Edit Style)自定义有效性规则(Validation Rules)3.3 数据表数据维护 当定义了数据库的表后,在PowerBuilder开发环境中也能够方便地输入数据。数据库画板提供了如下三种界面来编辑数据,分别为网格格式、列表格式和自由格式,它们的差别仅在于显示数据方式的不同。3.3.1 数据录入 以表“boy”为例,在对象视图中选中表“boy”,单击“PainterBar1”工具栏的“Data manipulation grid”工具按钮,以网格状来显示数据。单击“PainterBar3

27、”工具栏的“Insert Row”工具按钮,插入一条记录,单击“Delete Row”工具按钮删除当前记录,单击工具栏“PainterBar3”中的“Save Changes”工具按钮保存数据。3.3.2 数据排序与过滤 当希望以某种顺序查看数据时,可以指定数据的排序方式:首先进入数据表数据的编辑界面,然后选择“Rows/Sort”菜单项,弹出“Specify Sort Columns”对话框,用鼠标左键按住左边的“Source Data”中的列并拖动到右边Columns列表框中,然后选择排序方式。当浏览部分数据时,可以指定过滤条件对表中数据进行筛选。步骤如下:首先将焦点切换到“Result”

28、视图,然后选择“Rows/Filter”菜单项,弹出“Specify Filter”对话框。输入过滤条件。 单击“Verify”按钮验证过滤表达式是否正确。单击“OK”按钮关闭对话框,满足条件的数据被显示出来。3.3.3 建立视图 视图是数据库应用系统中十分重要的组成部分,通过视图可以进一步简化应用程序编程工作,使其更加简洁、灵活、方便、有效。视图是一种非常特殊的虚拟表,它可以象表一样地被访问和使用,但视图本身并不是真正的表,并不存在视图这种物理结构,它的数据只是来自一个或多个数据库中的表或视图。3.3.4数据导入与导出 在开发环境中可以将数据库表中的数据导出到文件中。也可以将保存在文本文件或

29、“DBF”库文件中的数据通过数据库画板导入到数据库中。导出数据导入数据3.3.5 设置数据显示格式在数据库画板中,设置列的显示格式的步骤如下:在数据库画板的对象(Objects)视图下,展开树视图,显示某个表的列清单。鼠标右击要指定显示格式的列,在弹出的快捷菜单中选择“Properties”菜单项,在列(Columns)视图中选择“Display”标签页。在“Display Format”下拉列表框中选一个显示格式。单击画板工具栏上的“Save”按钮。 定义了某个显示格式后,可以根据需要对它进行修改。操作步骤如下:打开数据库画板。如果扩展属性(Extended Attributes)视图没有显

30、示,选择“View/Extended Attributes”菜单项打开扩展属性视图,否则单击该视图的标签页。在扩展属性视图下,打开显示格式列表。鼠标右击要修改的显示格式名称,在弹出的快捷菜单中选择“Properties”菜单项。在显示格式视图中修改已定义的显示格式。3.4 SQL命令 SQL命令是数据库发布命令的交互标准,适用于各种公开发行的数据库系统,PowerBuilder的数据库画板支持直接使用SQL命令进行数据库表的维护。3.4.1 SQL命令类型SQL(Structured Query Language)称为结构化查询语言,主要功能就是同各种数据库建立联系,用来执行各种各样的操作,例

31、如更新数据库表中的数据、从数据库表中提取数据等。SQL语句有很多,功能齐全,可以分为四大类:数据定义数据查询数据更新数据控制3.4.2 SQL数据表命令SQL命令可以在数据库画板中执行,也可以在Sybase Central或数据库管理工具“Interactive SQL”中执行。定义类的SQL命令(CREATE、DROP 、ALTER等语句)可以对数据库、数据表、索引、视图和存储过程等进行操作。这些命令一般都通过数据库画板来完成。【例【例3.2】通过SQL语句创建数据库【例【例3.3】创建个人信息表( person )【例【例3.4】删除表: person【例【例3.5】修改表person的表

32、结构,在表中新增一列备注(Notes)。【例【例3.6】修改表Boy的表结构,在表中新增一列部门编号(dp)。【例【例3.7】查询表boy。【例【例3.8】在“boy”表中取id=”00101”记录的工资数值,存入实型变量X中。【例【例3.9】查看“boy”中的所有数据,并要求按工资升序排列。【例【例3.10】查找“boy”表中工资大于2000元的员工记录。【例【例3.11】查找“boy”表中工资大于2000元或性别为“女”的员工记录。【例【例3.12】查找dpt表中所在部门为01、03和05的记录。【例【例3.13】查询会计系(01)的所有人员。【例【例3.14】查找“王昭”所在部门所有人员

33、的信息。【例【例3.15】查询目前没有人员的部门。【例【例3.16】查找姓“王”的人员的信息。【例【例3.17】统计实际总人数。【例【例3.18】统计01部门的平均工资。【例【例3.19】统计各部门的实际总人数。3.4.4 数据更新语句 SQL命令经常通过Insert、Delete和Update命令对数据表进行数据修改。在数据修改过程中必须注意数据表的主键不能有“值重复”和“空值”等特性。INSERT语句:用于向数据库表中添加新的数据行。 【例【例3.20】给boy表中插入一个员工记录。 【例【例3.21】批量插入记录。UPDATE语句:用于更新或修改数据库中满足规定条件的现有记录。 【例【例

34、3.22】将boy表中的编号为“00101”的记录工资修改为:2000元。 【例【例3.23】将boy表中的女性的工资增加200元。DELETE语句:用于删除指定数据表中满足条件的记录。 【例【例3.24】在boy表中,删除编号为“00102”的记录。3.4.5 数据库提交命令 数据库提交撤消属于SQL的数据控制类命令,在PowerBuilder中,经常被用于控制数据库的数据状态。COMMIT语句:用于完成数据库的物理修改 。ROLLBACK语句:用于放弃自上一个COMMIT、ROLLBACK或CONNECT操作之后的所有数据库操作。CONNECT语句:用于在程序中将指定的事务对象与数据库连接

35、。DISCONNECT语句:中断与数据库的连接 3.4.6 获取SQL命令 前面的建表过程中都是利用图形界面来完成的,PowerBuilder实际上是将建立数据库的SQL命令传递到了后台运行的DBMS中。 【例3.25】获取建表的SQL命令。 【例3.26】使用SQL命令进行数据查询。3.4.7交互执行SQL命令 编程时经常会遇到要写一些SQL语句来测试一下数据及修改表中的数据。选择“View/Interactive SQL”菜单项进入“Interactive SQL”视图(ISQL)。直接执行:直接在“ISQL Session”视图中,输入SQL语句。读入SQL语句:在“Interactiv

36、e SQL”视图中可读入文件中的SQL语句。3.4.8自动生成SQL命令 PowerBuilder提供了图形化的SQL语句生成工具,就是SQL画板。SQL画板可以通过类似于创建数据窗口对象的图形界面生成SQL语句,并且直接粘贴到脚本环境中,而不必花过多时间去关注SQL语法。PowerBuilder的SQL语句画板能够构造三类语句:游标、非游标以及过程,非游标SQL语句对应于单行SELECT、INSERT、UPDATE和DELETE语句。 【例【例 3.27】调用SQL画板。3.5 数据库扩展属性设计 PowerBuilder扩展属性系统表保存了数据库中的表、列、显示格式、有效性规则和编辑风格等

37、信息。对于这些系统表,同样可以通过SQL语句进行访问。3.6 使用游标 当SELECT语句的执行结果是多条记录的时候,或当需要读取多条记录时,就需要使用游标进行操作。 游标的一般使用步骤为:用DECLARE语句声明游标。使用OPEN语句打开游标。使用FETCH语句读取一行数据。根据返回值处理数据。判断是否已经读完所有数据,未读完时重复执行步。使用CLOSE语句关闭游标。 下面介绍DECLARE、OPEN、FETCH、CLOSE语句,并构建一个游标程序。DECLARE语句:和变量一样,游标也遵循先定义后使用的原则。OPEN语句: OPEN语句打开已经声明的游标并执行相应的“SELECT”语句。F

38、ETCH语句: FETCH语句从游标中读取当前记录并把它保存到指定的变量中。CLOSE语句: CLOSE语句用于关闭已打开的游标。 【例【例 3.28】从数据表“boy”中逐行取年龄小于40的记录并用消息框显示员工相关信息。第四章第四章 PowerScript PowerScript 语言语言 编写程序代码是计算机软件系统开发必不可少的工作。PowerBuilder中使用语法比较简练的语句形式来书写程序命令,所使用的编程语言称为PowerScript,是一种高级的、结构化的面向对象的编程语言,包括事件处理、用户自定义函数和自定义对象等技术。4.1 基础符号 PowerScript语言的基础符号

39、包括代码、断行、续行、注释、标识符、代词、保留字等成分。 PowerScript中的代码编写具有如下特点:没有行号语句书写完毕后,按Enter键(回车键)转到下一行,开始下一条语句不能在标识符或保留字的中间续行在嵌入式SQL语句中无须使用续行符,可以把一条SQL语句写成多行4.2 PowerScript标识符 用来标识变量名、数组名、文件名、函数名、窗口名、控件名和对象名等的字符序列,称为标识符。PowerScript中标识符的命名必须遵循以下原则:必须以字母或下划线“_”开头不能是保留字长度不能超过127字符不能含有空格可以包含字母、数字及下述的特殊符号:下划线(_)、短横线(-)、美元符号

40、($)、号码符号(#)、百分号(%)PowerScript中标识符不区分大小写 【例4.1】多行显示提示信息4.3 数据类型 PowerBuilder的数据类型十分丰富,包括标准数据类型、系统对象数据类型、枚举类型和“ANY”数据类型四大类,程序中通过数据类型限定变量的取值范围。标准数据类型String类型日期及时间类型枚举类型空值处理4.4 运算符 在程序运行过程中,经常进行数值计算、数值比较、字符串连接、逻辑操作等运算。 这些操作运算需要用到运算符号,PowerScript支持的运算符可分为四种类型:算术运算符:用于完成数学运算。关系运算符:进行两个操作数的比较。逻辑运算符:用于构成其结果

41、为TRUE或FALSE的逻辑表达式。连接操作符:连接操作符只有一个,就是符号“+”,用于把两个String型或Blob型变量的内容连接在一起,形成新的String或Blob型数据。操作符的优先级:操作符的优先级决定表达式的运算次序。在表达式中,运算按运算符的特定次序进行,这一次序就是运算符的优先级。4.5 对象、属性和变量 PowerScript是一个面向对象的编程语言,PowerBuilder应用程序的开发过程实际上就是各种对象的定义和使用过程。所有对象都有名称,并通过名称相互区分。在PowerScript中,引用对象的属性、函数、事件的方法很简单,就是使用圆点“.”作为所属标记符。4.5.

42、1命令代词 PowerScript提供了四个对象代词:This、Parent、ParentWindow和Super,可通过这些代词引用某指定对象。分别介绍如下:This:代表窗口、用户对象、菜单、应用对象或控件本身,即代表正在为之编写事件处理程序的对象。Parent:指当前控件所在的窗口。ParentWindow :代表运行时菜单所在的窗口,该代词只能在菜单的事件处理程序中使用。Super:只在使用继承时使用,指代的是该对象的父对象。4.5.2 对象数据类型 在PowerBuilder中,窗口、菜单、各种控件都是系统对象,系统对象实际上都是定义在PowerBuilder内部的一种数据类型。查看

43、系统对象继承关系的方法是:单击“Power”工具栏的“Browser(浏览器)”图标,系统打开“Browser”对话框。单击“System”标签页。鼠标右击左边的列表框,系统显示一个快捷菜单。选择“Show Hierarchy”菜单项。鼠标再次右击左边的列表框,从弹出的快捷菜单中选择“Expand All”菜单项。4.5.3 常量与变量 常量是指在程序运行过程中其值不变的量。在标识符前面只要加上关键字“Coustant”就说明了该标识符是一个常量。声明为一个常量以后只能引用,不能更改它的值。 变量可以用来存放常数、中间结果等,还可以作为控制变量来控制程序的运行。 PowerScript中变量遵

44、循先定义后使用的原则,除了系统预定义的五个全局变量(SQLCA、SQLDA、SQLSA、Error、Message)外,其他所有变量在使用前必须首先定义。 PowerBuilder中变量按作用域分为四种:全局变量、实例变量、共享变量和局部变量。不同作用域的变量需要在不同的位置定义,下面分别予以介绍。 全局变量:在整个应用程序中都可访问,它的作用域是整个应用程序,在应用程序的任何地方都可以访问(赋值或引用)此变量。实例变量:是对象级的变量,在对象内定义,只有在该对象的事件处理程序或函数中才能使用该实例变量。共享变量:类似于实例变量,但使用不如实例变量那样频繁,只有在特定的环境中才会用到它。局部变

45、量:只在某程序段内或某函数内部有效的变量叫局部变量(Local Variables)。4.5.4 数组 数组是一系列有序数据的组合,数组中的每一个元素都属于同一个数据类型,并用统一的数组名和下标来确定每一个元素。 使用数组时,有时元素的个数是不确定的。为了获得数组的上下界,PowerScript提供了两个函数:LowerBound(Array,N)UpperBound(Array,N)4.6常用函数 PowerScript中提供了类型丰富、功能众多的内部函数,在应用开发中使用这些函数能够极大地提高程序开发的效率。数据类型转换函数类型检查函数字符串操作函数数值计算函数 日期时间函数 Messag

46、eBox()函数 【例4.2】进行三项选择的信息提示。响铃函数Beep()运行函数Run()延时函数sleep()实例检查函数isvalid()4.9文件系统函数 PowerBuilder的文件系统函数非常多,涉及文件打开、读、写、关闭、复制、删除和创建目录、删除目录、判断目录是否存在等。GetFileOpenName:显示打开文件对话框,让用户选择要打开的文件。 GetFileSaveName:显示保存文件对话框,让用户选择要保存的文件名。 FileOpen():以指定的读写方式打开指定的文件,同时返回该文件的句柄。 FileRead:从指定文件中读取数据。 FileWrite:向指定文件中

47、写数据。 FileClose:关闭先前用“FileOpen()”函数打开的文件。 GetFolder():返回用户所选文件夹。 FileLength:得到指定文件的长度(以字节为单位)。 FileMove:移动文件。 FileSeek:将文件指针移动到指定位置。读写文件时相应函数会自动移动文件指针。 FileDelete:删除指定的文件。 FileExists:检查指定的文件是否存在。 FileCopy:文件复制。 4.10 PowerBuilder密码验证程序 “口令验证”是MIS系统的重要组成部分,通过用户名和密码的验证来确定用户的身份,是MIS系统常用的认证手段。 【例4.8】编制用户密

48、码验证程序,密码正确则打开主窗口。 【例4.9】打开用户密码验证程序,添加新用户注册功能。4.11 本章小结 本章详细介绍了PowerBuilder的PowerScript语言的有关知识,包括基础知识、操作符、数据类型、变量、数组以及脚本等。通过示例详细介绍了PowerBuilder内置了数以百计的函数和语句,还有很多属性和事件等,进可能全面地描述它们并对它们的用法进行详细分析。第五章 PowerBuilder应用程序的对象 PowerBuilder为每个程序都定义了一个应用对象,将它作为程序的开始入口,所以在PowerBuilder开发的软件中,在应用(Application)对象中,需要编

49、写启动代码,同时应用对象还规定着应用程序系统级的许多属性。5.1 PowerBuilder的应用对象 在PowerBuilder画板中,可以对应用程序系统中的各种对象进行设置,包括Application、Window、控件(按钮、文本框等)和数据窗口(DW)等。 在画板中包含许多视图,常见视图列举如下:“Properties”(属性)视图:用来设置对象及各种控件的属性。“Event List”(事件列表)视图:查看对象的所有事件。“Script”(脚本)视图:为各种对象的事件编写代码。“Function List”(函数列表)视图:查看对象的所有函数。5.1.1 “Application”应用

50、对象属性 “Application”应用对象有许多属性,在“Properties”属性视图中,有“General”和“Toolbar”标签。 Application应用对象的常用事件有: “Open”事件、“close”事件、“systemerror”事件、“idle”事件。5.1.2 应用对象的事件设计 “Open”事件 :是一个PowerBuilder应用程序的起点 。“Close”事件 :是在退出应用程序、返回到操作系统之前所触发的事件 。“Idle”事件 :是在程序中判断设定的时间间隔内,当用户未敲击键盘或使用鼠标时,被触发的事件。“SystemError”事件 :用来处理严重的系统错

51、误。 【例5.1】设置应用对象属性 5.1.3 引用多PBL文件 PowerBuilder应用程序中的对象,基本上都保存在“PBL”文件中,如果要将一个“PBL”文件移动到其它计算机上,而只需要复制“PBL”文件即可。方法是建立工作空间之后,再将该“PBL”程序导入,该技术对低版本的PB应用向高版本的升级非常实用。 【例5.2】应用对象导入。5.2 窗口设计 窗口设计是软件开发的重要组成部分,窗口与放置在窗口内的控件构成了应用程序的大部分输入输出内容,承担起应用软件与用户交互的基本职能。 窗口由属性、事件以及放置在窗口里面的控件组成。属性:定义了窗口的外观和行为。事件:可以为窗口的事件编写脚本

52、,从而控制当事件发生时窗口的行为。 5.2.1 窗口类型 PowerBuilder提供了6种类型的窗口,分别是:主窗口(main)弹出式窗口(Popup)子窗口(Child)响应式窗口(Response)MDI框架窗口(MDI Frame)MDIHELP框架窗口(MDIHELP Frame)5.2.2 窗口画板 窗口画板由标题栏、画板工具栏以及一系列视图构成。画板工具栏“PainterBar1” 画板工具栏“PainterBar2” 画板工具栏“PainterBar3”格式工具栏:用来设置控件文本的字体、大小和对齐方式等属性。5.2.3 窗口属性 窗口风格就是它的属性特征,包括类型、基本外观、

53、在屏幕的初始位置、鼠标指针形状等。 在窗口画板中定义窗口属性,就是给窗口的属性赋值的过程。 【例5.3】设置窗口的标题属性5.2.4 窗口度量与命名 在PowerBuilder中,所有窗口的测量单位都采用PowerBuilder单位(PBUs)。 PowerBuilder应用程序由各类型的对象组成,为了区分各种对象,应该使用不同的名称来标识。对象的名字应该由两部分组成,前一部分标识该对象类型,后一部分为指示该对象功能的有意义的名称。 5.2.5 窗口预览 在窗口的设计过程中,预览窗口是获取窗口整体布局信息的最简单方法。单击在画板工具栏上的“Preview”按钮,或者选择“Design/Prev

54、iew”菜单项就可以预览窗口。 要退出窗口的预览模式,可以采用下述方法之一:如果窗口有控制菜单(“ControlMenu”属性为真),可以在窗口的控制菜单中选择“关闭”菜单项,或者单击窗口右上角的“关闭”按钮。5.3 窗口中的控件 窗口是应用程序界面的基础,而要使窗口真正发挥作用,还必须在窗口内添加各种控件,因为在应用程序的运行过程中,用户主要是同窗口中的各种控件进行交互。 PowerBuilder为开发者提供了丰富的窗口控件,窗口控件按照可见性分为两类:具有实际功能的控件没有实际功能、主要起装饰作用的控件5.3.1 创建控件添加控件:选择“Insert/Control”菜单项然后再在窗口的布

55、局视图中,单击要放置控件的位置。控件命名:在PowerBuilder应用程序开发中,应该遵循一个统一的命名规范。选择控件:在布局视图或控件列表视图内选择控件。移动控件控件的复制和删除5.3.2控件顺序 PowerBuilder根据控件在窗口中的位置关系来赋予默认的Tab顺序。Y值最小的控件其默认的Tab顺序排第一;如果有多个控件的Y值相同,系统根据其X值决定Tab次序。 改变控件的Tab顺序的步骤如下:选择“Format/Tab Order”菜单项单击要改变的Tab值 输入一个新的Tab值重复上述步骤,直到所有控件的Tab值设置完毕。再次选择“Format/Tab Order”菜单项或者单击“

56、Tab Order”工具按钮,“Tab”顺序将被保存下来。5.3.3控件属性 所有控件均有两个影响控件是否可以访问的控制属性:可视(Visible)属性以及可用(Enabled)属性。 Visible属性:如果选中控件的“Visible”属性,则控件在窗口中显示。 Enabled属性:如果选中控件的“Enabled”属性,该控件是可被激活的。颜色属性:窗口画板有两个颜色下拉工具栏,分别用来设置控件的前景色和背景色。控件的三维外观: PowerBuilder允许把三维外观作为默认的设置。控件的布局:把控件添加到窗口以后,可调整它们的大小和位置。控件对齐:选择“Format/Align”菜单项或者

57、单击画板布局下拉工具栏的对齐按钮。5.3.4 控件的特殊属性命令按钮:用来执行某个动作。图片按钮:功能与命令按钮完全相同。单选钮:用来提供相互排斥的选项。复选框(Check Box):用来设定独立选项的方框。静态文本(Static Text):用来向用户显示某些信息,或者用来指示某个没有与文本关联的控件。静态超文本链接:为PowerBuilder应用提供了链接到“Internet”网页的功能。单行编辑框和多行编辑框:用来接收用户的输入和显示输出。编辑掩码框:可以设置输入数据的格式。5.4 控件的脚本设置 在对窗口和控件的布局和属性进行了设定之后,通常还须编写脚本,才能发挥它们应有的功能。 为窗

58、口和控件编写脚本的步骤如下:双击窗口的空白处或双击某个控件,打开脚本视图。在视图顶部中间的事件下拉列表框中选择一个事件。在编辑区中编写事件的脚本。5.4.1属性和脚本控制 在定义窗口时,可以设置窗口和控件的属性,还可以在脚本中给窗口和控件的属性赋值,从而改变它的属性。 【例5.4】当用户单击一个命令按钮(cb_1)时,静态文本“st_1”的文本将变为“欢迎使用本软件”,窗口标题变为“窗口新标题”,该命令按钮的文本变为“已经被单击”。 【例5.5】加法程序。 【例5.6】弹球运动。5.4.2 列表框脚本控制 列表框(ListBox)一般用来显示可用的选择,列表框既可用来显示信息,也可以激活动作。

59、如果要实现双击某项时执行某些操作,必须在列表框的“DoubleClicked”事件中编写脚本。 定义列表框的列表项的方法是:为列表框添加选项,选择该控件的Items属性页标签,输入其列表值,按“Tab”键输入下一行。 【例5.7】利用程序输入信息时,为避免输入重复信息,在添加重复信息时进行警告。5.4.3 图片控件脚本控制 图片(Picture)是一种用来显示图像的控件。当在窗口中添加了一个图片控件后,该控件显示为一个虚框,要使图片控件显示图片,必须设定它的“PictureName”属性。 【例5.8】学生相片(JPG图数据)的存储与读取。 【例5.9】程序界面布局练习。5.4.4 OLE控件

60、脚本控制 OLE(对象连接与嵌入)是一种在应用程序中连接其它应用程序或控件的技术。利用OLE控件可以在窗口中嵌入OLE兼容的应用程序。此外,还可以把自定义控件(ActiveX控件)放置到窗口中,实现PowerBuilder标准控件无法实现的功能。在窗口中放置OLE控件的步骤如下:单击画板工具栏中下拉工具栏上的OLE按钮。根据需要选择要嵌入的应用程序或控件。选择一个已存在的对象。在窗口画板的布局视图上单击要放置“OLE”控件的位置。 使用“Ole”控件存储图片与“Picture”控件存储图片的过程类似,关键过程如下:将BMP图片存入数据库的典型脚本从数据库中删除图片的典型脚本按图片编号查询图片信

61、息典型脚本 5.5 Windows API函数应用 PowerBuilder提供了数百个内部函数供开发者使用。 【例5.10】 播放音乐。 【例5.11】实现窗口打开与关闭的动画效果。 【例5.12】限制程序多次运行。 【例5.13】在程序中打开文本文件。 【例5.14】半透明窗口的实现。 【例5.15】返回键盘上某一键的当前状态。5.6 5.6 本章小结本章小结 主要介绍应用对象的创建、打开已存在的应用对象等知识,通过示例介绍组成应用软件的窗口和控件的有关知识,包括窗口的设计和使用、窗口上各控件的使用。最后介绍了API函数的基础知识和PowerBuilder中使用API函数的一般方法。第六章

62、 数据窗口技术 数据窗口(Data Window, DW)是PowerBuilder最重要最具特色的技术之一.PowerBuilder数据窗口的功能非常强大,既可以操控数据,又可以作为报表来使用。 在数据窗口中,还可以添加各种控件,对数据进行过滤、分组、生成统计表和统计图,通过生成Web数据窗口组件,还可以把数据窗口应用于Web页。6.1数据窗口对象 数据窗口对象可以用来检索、操纵和显示数据库或其它数据源中的数据。 在PowerBuilder应用中,使用数据窗口对象的一般步骤如下:在数据窗口画板中建立数据窗口对象。 在窗口或用户对象中添加一个数据窗口控件。将数据窗口控件与数据窗口对象关联起来。

63、在窗口画板中编写脚本,来操控数据窗口控件及数据窗口对象。 【例6.1】创建或修改数据窗口对象6.1.1 数据窗口画板 “数据窗口对象”可以在数据窗口画板中创建、编辑、修改。【例6.2】 已创建了一个数据窗口对象,把它打开进行编辑。6.1.2 数据窗口工具栏 数据窗口画板包括三个定制的画板工具栏和一个格式工具栏,介绍如下:画板工具栏包括标准操作按钮以及用来执行预览操作的按钮。 在画板工具栏中,还包括6个下拉式工具栏,这6个下拉式工具栏分别是:控件(Controls)下拉式工具栏:用于选择放置到数据窗口对象中的控件。前景色和背景色下拉工具栏:用来设置一个或多个选中的控件的前景色和背景色。边框(Bo

64、rders)下拉工具栏:用来设置一个或多个选中的控件的边框。布局(Layout)下拉工具栏:用来设置多个选中控件的对齐方式、尺寸以及间距等。滑动方式(Slide)下拉工具栏:用于设置所选中的一个或多个控件的滑动方式。格式工具栏(Style Bar):用来设置选中的控件的文本属性。6.1.3 Band带与滑动块 数据窗口画板的设计视图被分成几个区域,这些区域控制滑块称为带(Band),每个带相当于用来显示数据窗口对象的一节。 一般情况下,一个数据窗口对象划分为四个带:标题带(Header Band)、细目带(Detail Band)、汇总带(Summary Band)、脚注带(Footer Ba

65、nd)。 【例6.3】定义可变高度的细目带。6.1.4数据窗口元素 数据窗口对象中包含多种元素,例如:文本、列、计算域、带、图表甚至数据窗口本身。 设置数据窗口元素属性的方法是:单击要设置属性的控件或对象,在弹出的快捷菜单中选择Properties菜单命令,然后在“属性视图”中设置有关属性。在“属性视图”中,设置有关属性。6.1.5 数据窗口显示与打印样式 如果设计的数据窗口不易于浏览,可以通过改变数据窗口的显示比例来满足需要。可以在数据窗口画板的4个视图中设置显示比例(Zoom),它们是:设计视图、预览视图、数据视图以及列设定视图等。 数据窗口对象中的数据除了可以在屏幕上显示和编辑之外,还可

66、以通过打印机打印出来。在打印之前,可以设定打印参数。 【例6.5】定义数据窗口对象的打印参数。6.2 数据窗口脚本控制技术 数据窗口的脚本控制技术,指通过脚本对数据窗口的结构和数据进行处理的功能。数据窗口对象与数据窗口控件的连接是程序中使用数据窗口对象的关键。 【例6.6】在窗口中添加数据窗口控件,在放置了一个数据窗口控件以后,指定与该控件关联的数据窗口对象。6.2.1数据窗口与事务对象 要把数据窗口对象的数据显示出来,必须访问数据库。为数据窗口控件进行数据连接的方法是使用事务对象。事务对象定义了PowerBuilder用于连接数据库所需要的参数。 PowerBuilder提供了四个事务管理语

67、句:Connect,启动一个事务;Commit,提交一个事务;Disconnect,终止事务;Rollback,撤消事务。 【例6.7】自定义事务对象:“trs”,并与“DW_1”连接。6.2.2 数据窗口控件的函数与事件 PowerBuilder使用大量的数据窗口函数,通过PowerScript语言来进行数据窗口的脚本控制。Retrieve()函数:从数据库中检索数据到数据窗口控件中。Update()函数:将所做的修改保存到数据库中。Itemchange事件:当编辑控件中的数据被改变后,将会引发该事件。编辑控件中的文本编辑控制 【例6.8】 数据窗口与普通控件的数据交互。6.2.3 动态数据

68、窗口 “数据窗口控件”的属性保存着“数据窗口控件”的外观和行为信息。数据窗口对象本身具有一系列属性,数据窗口对象的属性在设计数据窗口时就已经定义,在程序运行期间,可以通过编程获取并重新设置这些属性。 访问“数据窗口对象”的属性的方法有两种:一是使用函数,二是使用表达式。 PowerBuilder提供了Describe()和Modify()两个函数来访问和设置数据窗口对象的属性。6.2.4数据窗口的错误处理 数据窗口运行期间可能引发的错误主要有以下几类:数据项目不合法检索或更新数据失败试图访问无效或不存在的属性或数据当数据窗口的检索和更新发生错误,触发数据窗口控件的DBError事件。 DBEr

69、ror有两个参数:一是SQLDBCode,该参数返回DBMS的错误代号;二是SQLErrText,该参数返回DBMS的出错消息文本。 6.2.5 数据窗口报表打印 数据窗口除了用来显示和编辑数据之外,还可用作报表。利用数据窗口可以创建标准的商业报表。要创建一个报表,须经过以下几个步骤:决定报表的类型。创建一个数据窗口对象,用来显示报表的数据。把创建好的数据窗口对象放置在窗口的数据窗口控件中。编写相应的代码,把数据装入数据窗口。 设计报表实际上是建立一个数据窗口对象。6.3数据窗口的表现风格 数据窗口的表现风格就是数据以何种交互形式呈现在用户面前。PowerBuilder提供了11种表现风格,如

70、下:“Tabular”表现风格“Freeform”表示风格“Grid”表现风格“Label”表现风格“N-up”表现风格“Group”表现风格“Composite”表现风格“Graph”表现风格“Crosstab”表现风格“OLE2.0” 表现风格“RichText”表现风格6.4数据窗口对象的数据源 PowerBuilder提供了5种数据源:“Quick Select”、“SQL Select”、“Query”、“External”、“Stored Procedure”。 如果数据窗口中的数据是来源于数据库,可以选择“Quick Select”、“SQL Select”、“Query”以及“

71、Stored Procedure”数据源。 如果数据窗口中的数据不是来源于数据库,可以选择External数据源。 它主要包括以下几种情况:数据窗口的数据是从脚本中动态生成的。数据窗口的数据是来自于一个动态数据交换(DDE)。数据窗口的数据来自于外部文件。6.4.1 “Quick select”数据源 “Quick Select” 允许从一个表或多个通过外键连接的表中选择字段,在选择了字段之后,还可以设置数据的检索条件以及排序方式。 设置“Quick Select”数据源的步骤如下:在选择了表现风格后,在随后出现的“Choose Data Source”对话框中选择“Quick Select”

72、。在Tables列表框中选择一个表,所选择的表的列会在Columns列表框中显示出来。根据需要选择其它的表。在Columns列表框中选择需要显示的列。在对话框下方的表格中设定列的顺序、排序方式以及检索条件。单击OK按钮。6.4.2 “SQL Select”数据源 “SQL Select” 数据源支持“Select”的所有子句,可以选择多个表、定义复杂检索和排序条件、对数据进行分组、增加计算列、设置检索参数等。 设置“SQL Select”数据源选择表和视图计算列表达式选择多个表,把他们连接起来定义检索参数设定选择条件定义排序条件定义分组条件 【例6.9】 数据窗口的简单统计程序。6.4.3 “

73、Query”数据源 “Query“(查询)数据源与“SQL Select”数据源的作用其实是相同的,只不过“Query”数据源使用的是预先定义的“SQL Select”语句。 “Query”是在画板中生成并储存在文件中的一组SQL语句,它可以被多个数据窗口作为数据源使用。建立“Query”对象的步骤如下:单击“Power”工具栏的“New”按钮,在打开的“New”对话框中选择“DataBase”标签页。选择“Query”图标,打开“Select Tables”对话框。选择所需的表或视图。定义完毕,单击画板工具栏上的“Save”按钮。 设置“Query”数据源步骤如下:在数据窗口向导的“Choo

74、se Data Source”对话框中选择“Query”,然后单击“Next”按钮。输入“Query”对象的名称,然后单击“Next按钮”,继续操作。6.4.4 “External”数据源 如果数据窗口的数据并非来自于数据库,那么可以选择使用“External”数据源。设置“External”数据源的步骤如下:在数据窗口向导的“Choose Data Source dialog”对话框中选择“External” 。在对话框的“Name”列中输入列名。根据需要单击“Add”按钮添加其它列。单击“Next”按钮继续向导的下一个步骤。6.4.5 “SP”数据源 “Stored Procedure”(

75、存储过程)是一组经过预编译和预优化的SQL语句。设置“Stored Procedure”数据源的步骤如下:在数据窗口向导的“Choose Data Source”对话框中选择“Stored Procedure” 。选择一个存储过程。如果想让PowerBuilder执行选择的存储过程并且自动生成结果集,那么应该清除“Manual Result Set”复选框。6.5 数据窗口对象的复杂属性 数据窗口对象可以设置内部控件、设置内部检索参数、设置数据更新性能和设置计算列等,极大地丰富了数据处理的手段。6.5.1数据窗口内部控件 可以为数据窗口内的每一个元素设置属性。设置各个控件属性的方法是:选中该控

76、件,然后在属性视图中设置属性;设置带的属性的方法是:把鼠标指针置于带的栏上,右击鼠标,从弹出的快捷菜单中选择“Properties”菜单项,在属性视图中设置属性。命名控件添加控件添加静态文本添加绘图对象添加组框添加图片文件。 改变鼠标指针 改变“Tab”顺序设置边框6.5.2 6.5.2 数据窗口动态属性数据窗口动态属性 可以为数据窗口的某些列设定默认值,这样在新增数据时,该列的数据会以默认值显示。 定义属性表达式的方法如下:选择需要在程序运行期间动态修改属性的对象或控件。单击要设置的属性旁边的按钮。单击“Function”列表框的垂直滚动条,直至看见IF 函数,然后选择它。输入表达式。输入条

77、件为真时的属性值。输入条件为假时的属性值。单击Verify按钮测试表达式。单击OK按钮。 【例6.10】 数据窗口检索联动。 【例6.11】下拉列表切换数据窗口6.5.3 数据窗口检索 在数据窗口对象中,还可以设置检索数据的方式。检索数据的方式有两种,分别是“Rows As Needed”和“Rows To Disk”。下面分别介绍这两种检索方式的含义。“Rows As Needed” :如果数据窗口对象要检索的数据量很大,可能会使检索时间很长,用户需要经过长时间的等待才能得到控制权。“Rows To Disk”: PowerBuilder也是只从数据库中把一部分的数据检索到数据窗口对象之中,

78、而把其余的数据行缓存到磁盘的临时文件区。设置检索条件修改“SQL SELECT”语句修改结果集检索数据预览时不检索数据6.5.4 数据窗口的更新属性 数据窗口的数据一般来自于数据库,当用户对数据窗口中的数据进行了添加、修改、删除等操作以后,必须要把这些操作提交到数据库。 设置数据窗口对象更新属性的步骤如下:在数据窗口画板下,选择“Rows/Update Properties“菜单项。要禁止数据窗口被更新。单击OK按钮。 为了提供不同级别的完整性保护,PowerBuilder提供了三种不同的方法:Key ColumnsKey UpdateableKey and Modified Columns6

79、.5.5 数据窗口的计算域 计算域(Compute Filed)是一种特殊的控件,计算随着检索出的数据值变化而变化的数据。 计算列和计算域:计算列是在选择数据源时定义的,只能在数据源画板(Select画板)中定义或修改;而计算域是在数据窗口画板中定义的。添加计算域添加按钮:在数据窗口对象中添加按钮,可以不用编写代码而实现命令按钮的功能。添加其它元素6.5.6数据窗口滑动属性 通过设置列或其他控件的滑动属性,可以使窗口在程序运行期间自动消除一些屏幕上的空白或空格。设置控件的滑动属性的方法如下:选中要设置滑动属性的控件,在属性视图中选择“Position”标签页。在“Slide Up”下拉列表框中

80、选择向上滑动选项。选中或清除“Slide Left复选框”。6.6数据窗口的数据编辑 在数据窗口画板上,可以在预览视图内,进行添加、修改和删除数据,并且可以把对数据的操作更新到数据库。6.6.1 数据导出、导入和输出 (1)导入外部数据。导入外部数据的步骤如下:选择“Row/Import”菜单项,打开“Select Import File”对话框选择要导入数据的文件类型和文件名。单击“打开”按钮。 (2)保存数据到外部文件。保存数据窗口对象中的数据到外部文件的步骤如下:选择“File/Save Rows As”菜单项。在“保存类型”下拉列表框中选择保存文件的类型。在“文件名”单行编辑框中输入保

81、存的文件名。单击“保存”按钮。(3)Grid预览编辑(4)打印预览(5)打印6.6.2数据窗口显示格式 使用显示格式,可以依照设定的某种特别的格式来显示数据。使用编辑风格,可以设定某一列的数据以何种形式来展现。显示格式数据库显示格式显示颜色数值显示格式字符串显示格式日期显示格式时间显示格式6.6.3数据窗口的编辑风格 除了显示格式外,也可以为某一列设置编辑风格。显示格式和编辑风格都是格式化显示数据的途径。PowerBuilder提供了以下5种编辑风格,分别是:编辑框(Edit box)(默认)下拉列表框(DropDownListBox)复选框(CheckBox)单选按钮(RadioButton

82、)下拉数据窗口(DropDownDataWindow)数据库中的编辑风格:一般情况下,应该在数据库画板中定义编辑风格,并把某种编辑风格应用于表的某一列,因为编辑风格是数据自身的属性,在生成数据窗口或把某一列添加到数据窗口对象时,PowerBuilder自动使用该编辑风格。在数据窗口中使用编辑风格:在数据窗口对象中,每一列都有自己默认的编辑风格,它们来源于在数据库画板中为每一列指定的编辑风格。在数据窗口画板中,可以为各列重新定义编辑风格,新的编辑风格将覆盖默认的定义。 6.6.4 下拉数据窗口 下拉数据窗口和下拉列表框从本质上说是一致的。不同的是下拉列表框中的数据是静态的,而下拉数据窗口的数据是

83、动态的。 使用“下拉数据窗口”编辑风格的步骤如下:建立给“下拉数据窗口”使用的数据窗口对象。在“DataWindow”编辑框中输入该数据窗口对象的名称。在“Display Column”下拉列表框中指定作为显示数据的列。在“Data Column”下拉列表框中指定存储到数据库的数据的列。6.7数据窗口的有效性检验 有效性规则提供了对数据进行合法性检验的有效手段,当输入的数据不符合要求时,可以显示一个提示信息并且拒绝接受数据。 有效性规则通常在数据库画板中定义,然后在数据库画板或数据窗口画板把它应用到某一列中。 一条有效性规则实际上是一个判断为真还是为假的表达式。6.7.1 数据库中建立的有效性

84、规则 在数据库画板中建立一个有效性规则的步骤如下:打开数据库画板。选择“Object/Insert/Validation Rule”菜单项,打开“Validation Rule”视图。在“Validation Name”单行编辑框中输入有效性规则的名字。选择“Definition”标签页,定义有效性规则的表达式。单击 “Save”按钮。 为某一列指定有效性规则的步骤如下:打开某个表的列列表。双击列名,打开“Column”视图,然后选择“Validatioan”标签页。在“Validation Rule”下拉列表框中选择一个有效性规则。单击 “Save”按钮 。6.7.2 在数据窗口画板中使用有

85、效性规则 为某一列设定有效性规则的步骤如下:在数据窗口画板中,单击画板底部的“Column Specification”标签页。建立或修改有效性规则。 【例6.12】假设产品的价格“Price”和销售量“xnumber”之间有如下关系:如果销售量大于等于1000,折扣为9折;如果销售量小于1000,则没有折扣。6.8 数据过滤、排序和分组 在设计数据窗口对象时,可以设定过滤条件,也可以设定排序准则,还可以在数据窗口对象中创建分组。数据过滤数据排序屏蔽重复值数据分组设定分组所依据的列添加统计信息 【例6.13】数据备份与数据恢复6.9 本章小结 详细介绍了PowerBuilder的数据窗口对象和

86、数据窗口控件。PowerBuilder数据窗口的功能非常强大,主要知识点是DataWindow可以控制数据编辑。可以进行数据检索、编辑、更新等,操作十分便捷。在数据窗口对象中,对数据进行过滤、分组、生成统计表和统计图,通过生成Web数据窗口组件,能产生XML Web页等。 第7章 PowerBuilder菜单设计 菜单是应用软件的重要组成部分,PowerBuilder提供了专门的菜单画板来设计菜单。利用菜单画板,开发人员可以轻易地设计出符合要求的菜单,通常情况下,用户通过选择菜单中的菜单项或者单击工具栏按钮来执行应用程序。7.1 菜单基础知识 在PowerBuilder中,菜单中的每个选项定义

87、为一个菜单项(Item)。菜单项显示在菜单栏、下拉菜单或级联菜单中。在PowerBuilder中设计的菜单,有以下两种使用方式:作为窗口的菜单作为弹出式菜单 【例7.1】创建菜单。 【例7.2】添加菜单栏上的菜单项 。7.2 菜单项命名 当添加一个菜单时, PowerBuilder都给它赋予一个默认的名字,并显示在属性视图的“Name”输入框内。菜单项的默认名字由两部分组成:第一部分是在“Options”属性窗口中定义的默认前缀,后半部分是菜单项的合法PowerBuilder字符或符号。 添加一个菜单项时,如果系统指定的名字在菜单中已经存在, PowerBuilder会显示一个对话框,建议重新

88、命名一个唯一的菜单项名。7.3 菜单项的属性设置 定义了菜单中的各个菜单项以后,还可以设置菜单项的其他属性,例如指定微帮助信息,设置工具栏按钮及文字提示等。 设定菜单项的一般属性的方法是:在菜单项的属性视图中,选择“General”标签页,可以设定菜单项的一般属性。 所有的菜单项都应该有一个加速键,常用的菜单项应该有快捷键。 设置快捷键的方法如下:选择要设置快捷键的菜单项在属性视图中选择“General”标签页在“Shortcut Key”下拉列表框中选择一个按键根据需要选中“Shortcut Alt、Shortcut Ctrl”或“Shortcut Shift”复选框 设定一个菜单项与一个工

89、具栏按钮和图片的关联步骤如下:选择一个菜单项,在属性视图中选择“Toolbar”标签页设定工具栏按钮的有关属性 保存菜单的步骤如下:选择“File/Save”菜单项,或者单击画板工具栏上的“Save”按钮 在“Menus”文本框中输入菜单的名字在“Comments”文本框中输入对该菜单的注释指定保存该菜单的库,然后单击“OK”按钮7.4 菜单项脚本 建立菜单项以及设定工具栏按钮只是菜单设计工作的一部分,要实现菜单与用户的交互功能,必须为菜单编写脚本。 为菜单项编写脚本的步骤是:双击菜单项;或者选择菜单项后,击鼠标右键,在弹出的快捷菜单中选择“Script”命令。脚本视图显示该菜单项的默认事件(

90、Clicked)的编辑窗口,可以在此视图中选择菜单项及事件,并为事件编写脚本 7.4.1 菜单事件 菜单常用事件包括“Clicked”、“Help”以及“Selected”三个预定义事件。“Clicked”事件:是菜单项最常用的事件,可以被鼠标或者是键盘触发“Help”事件 :当用户指向菜单项时按F1键,或者单击帮助按钮,该事件被触发“Selected”事件 :“Selected”事件在用户选中该菜单项(加亮显示)时触发 除了上述3个事件外,也可以为菜单项定义自定义事件。7.4.2 函数和变量 在为菜单项编写脚本时,可以使用函数和变量。使用函数:PowerBuilder提供了作用于菜单项的内部

91、函数,也可以定义自己的菜单级函数。使用变量 :菜单项的脚本可以访问全局变量,也可以定义局部变量,但局部变量只能在定义它的脚本中使用。使用结构体 :如果需要使用一个彼此关联的变量集合,可以定义菜单级的结构体。 7.4.3 菜单项引用对象 可以在菜单项的脚本中引用应用程序的任何对象,但必须遵循如下所述的规则来完全限定引用的是哪个对象。引用窗口 :当引用窗口时,只需简单地使用窗口的名字。引用窗口中的控件和用户对象 :引用窗口中的控件和用户对象时,必须始终使用窗口的名字限定控件或用户对象 。引用菜单项 :要引用一个菜单项,可使用绝对引用和相对引用 。7.4.4 启用菜单对象 菜单的使用方式有两种:一是

92、作为窗口的菜单使用;二是作为弹出式菜单使用。1. 为窗口添加菜单 双击系统树窗格中的窗口对象,打开要添加菜单的窗口 在窗口的属性视图的“General”标签页中,在“MenuName”编辑框中输入菜单名 保存窗口对象 l在窗口脚本中引用菜单项 :在窗口及其控件的脚本中,使用如下语法来引用菜单项:menu.menuitem3.在运行期间改变窗口的菜单:要在程序运行期间改变与窗口关联的菜单,可以在脚本中使用ChangeMenu()函数。 4.显示弹出式菜单 :要在窗口中显示弹出式菜单,必须使用PopMenu()函数来指明菜单及其显示位置。 7.5 应用程序模板 利用模板来创建应用对象程序的过程稍显

93、繁琐,不过可以在创建应用对象的同时,将一些相关的对象如窗口、菜单等一并创建,还可以定义数据库连接、数据库引导名和工作任务列表等。 利用模板来创建应用对象的具体步骤:单击Power工具栏中的New图标 。单击“Next”按钮,弹出“What you will do”对话框。 单击“Next”按钮,弹出“Specify New Application and Library”对话框 。设定应用对象名、库文件名及目标文件名后,单击“Next”按钮,弹出“Specify Template Type”对话框 。这里选择多文档界面类型,然后单击“Next”按钮,弹出“Adjust Application

94、Library Search Path”对话框 。如果没有使用其它库文件,这里直接单击“Next”按钮,弹出“Name MDI Frame and Menu”对话框。 指定“MDI Frame”和菜单的名称后,单击“Next”按钮,弹出“Name MDI Base Sheet”,“Menu and Service”对话框 。设定完成后,单击“Next”按钮,弹出“Name Individual Sheets”对话框 。指定工作表的名称后,单击“Next”按钮,弹出“Assign Display Names to Sheets”对话框。 设定完工作表标题,单击“Next”按钮,弹出“Name A

95、bout Box and Toolbar Window”对话框。 单击“Next”按钮,弹出“Specify Connectivity”对话框。 单击“Next”,弹出“Create Project”对话框 。选择以后创建项目“No,create project later”,单击“Next”按钮,弹出“Ready to Create Application”对话框 。 本章主要介绍菜单的基础知识、菜单的创建和保存、菜单的属性、菜单的继承和使用等知识。描述在大多数的应用软件中,菜单是应用软件和重要组成部分。介绍在进行菜单设计时,注意合理安排菜单项,对系统功能进行分类等。 最后,对PowerBu

96、ilder工具栏的制作、属性设置和脚本控制进行讲解,并给出详细示例。7.6 本章小节第八章 PowerBuilder 数据管道 为了实现开发过程中或应用程序运行中的数据传输和复制功能,PowerBuilder提供了一个专门的对象数据管道。使用数据管道,可以方便、快速地在一个数据库内,或者在不同的数据库,甚至是不同的数据库管理系统之间传递数据。数据管道(Data Pipeline)实现了数据复制或迁移功能。8.1数据管道的作用 数据管道提供了在同一数据库内或不同的数据库之间,或不同的数据库管理系统(DBMS)之间快速复制数据的途径。数据管道提供了在修改表结构的同时保留表中数据的另一种手段。 数据

97、管道有两种运行方式:(1)在数据管道画板中建立数据管道后直接运行; (2)在应用程序中通过编写脚本来使用数据管道。8.2建立数据管道 数据管道的建立和修改均在数据管道画板内进行,当建立数据管道时,需要定义以下选项:源数据库目的数据库要复制的数据源表管道操作目的数据库表 当定义了上述选项以后,数据管道就建立起来了。 【例 8.1】建立数据管道8.2.1 修改数据管道 在数据管道画板中,可以根据需要修改管道的定义,包括多种管道操作,包括是否灌入扩展属性的复选框,以及源数据项、目的数据项等。8.2.2 管道中止 管道运行中止通常是由于下述原因引起的:单击了“Cancel”按钮。 在管道运行期间,画板

98、工具栏上的“Execution”按钮变为“Cancel”按钮,单击“Cancel” 按钮可以中止管道的运行;错误数达到了规定的限制:如果某些数据行由于某些原因无法灌入到目的表,当错误数达到了规定的限制以后,PowerBuilder会中止管道的运行,并把出错的记录显示出来。8.2.3灌入Blob类型 Blob类型的数据是指二进制大对象(Binary Large Object)数据。数据管道可以灌入包含Blob数据的列。在数据管道定义中添加Blob列的步骤如下:选择“Design/Database Blob”菜单项,打开 “Database Binary/Text Large Object”对话框

99、。在“Table”下拉列表框中,选择一个包含“Blob”类型的列的源表。在“Destination Column”编辑框中改变目的列的名字。 单击“OK”按钮。8.2.4 保存管道对象 把数据管道保存起来以便今后使用,可以单击画板工具栏的“Save” 按钮,单击“OK”按钮即可。 打开一个已存在的管道对象,步骤如下:单击Power工具栏的“Open”按钮,或者选择“File/Open”菜单项,打开“Open”对话框。在对话框的“Objects of Type”下拉列表框中选择“Pipelines”选项。选择要打开的管道对象名称。单击“OK”按钮。8.3使用数据管道 数据管道既可以在开发环境下使

100、用,也可以在程序中通过编程实现数据管道的功能。 【例8.2】把数据库Project中的人员表(personnel)的数据传输到另一个数据库(Project_bak)之中。8.4本章小结 介绍了数据管道的建立和定义,实现异种数据库数据的传输和复制的示例,对数据管道进行数据传递的重要作用进行了描述,并依托“数据管道”功能在同一数据库内或不同的数据库之间,介绍了多数据库联合应用和不同的数据管理系统(DBMS)之间快速复制数据的技术途径。 最后,描述“数据管道”来完成一些使用其他方法难以完成的特殊任务。第九章第九章 调试、编译与发行调试、编译与发行 PowerBuilder提供了调试器,它是查找、定位

101、、排除程序错误的有效工具。当应用软件系统设计编写完成,经过测试符合要求之后,还需要把它编译成可执行文件,并制作成安装程序,最后才交付给用户安装使用。9.1 PowerBuilder脚本调试 应用程序的调试对于程序员来说,是一项非常重要和艰巨的工作,因为程序中存在错误是多种多样的,通过调试能发现许多错误。PowerBuilder内置了调试器(Debugger)画板,是帮助开发人员查找、定位错误的好工具。 (1)代码调试画板 调试窗口由以下几个视图窗格组成:Source(源代码)视图窗格Source Browser(代码浏览)视图窗格Source History(历史断点)视图窗格Variable

102、s(变量)视图窗格Objects in Memory(内存对象)视图窗格Call Stack(调用序列)视图窗格Breakpoints(断点)视图窗格Watch(观察)视图窗格(2)调试运行 断点设置完毕后,单击画板工具栏上的“Start Project”图标,就可以开始程序代码调试,此时程序的执行到设定断点行时,就会暂停运行,光标固定在调试画面,此时,画板工具栏的工具图标可以被使用。 在调试状态下,程序的脚本是不能修改的,如果发现了错误,则需要退出调试状态进行修改。9.2 创建可执行文件 PowerBuilder应用程序编制完成后,应当定义专用程序图标,编译Exe文件,打包生成“安装包”文件

103、,以便用户进行应用系统安装使用。 在PowerBuilder中,通过工程画板(Project Painter)创建可执行文件。应用程序应当具备自己的程序图标。9.2.1 程序编译 在编译的过程中,可能由于种种原因导致编译失败,破坏PBL库文件中的某些对象,使其损坏,所以,应当进行系统备份。 PowerBuilder程序编译之前,必须创建新工程文件,创建新工程文件的步骤如下:选择“File/New”菜单,在弹出的“New”对话框中选择“Project”标签页。选择“Application”项。单击“Next”按钮,弹出“Generate Machine Code”对话框。单击“Next”按钮,弹

104、出“Specify Destination Library”对话框单击“Next”按钮,弹出“Specify Project Object”对话框。单击“Next”按钮,弹出“Specify Executable and Resourced Files”对话框。单击Next按钮,弹出“Specify Build Options”对话框。单击“Next”按钮,弹出“Specify Dynamic Library Options”对话框。单击“Next”按钮,弹出 “Specify Version Information”对话框。单击“Next”按钮,弹出“Ready to Create Appl

105、ication”对话框。单击“Finish”按钮,进入工程画板。9.2.2 定义资源文件 在应用程序中,资源文件经常被使用,例如:BMP位图文件,这些文件不是PowerBuilder的对象,在生成可执行文件时,它们不会被包含在可执行文件中。 有两种办法可以使应用程序找到运行时所需的外部资源:一种方法是将这些资源文件与可执行文件放在同一目录下;另一种方法是将资源文件列在一个文本文件中,并以.PBR为后缀命名保存。9.3 PowerBuilder运行库文件 在PowerBuilder开发环境中,包括一组脱离开发环境运行PowerBuilder应用程序所需要的运行库,叫做PBDK(PowerBuil

106、der Deployment Kit),这是一组动态链接库。 PowerBuilder运行库文件一般在“SybaseSharedPowerBuilder”目录下。9.4安装制作包 PowerBuilder应用程序编译完成后,应当制作成安装盘发放给用户,这是软件开发过程中的最后的一步。 利用“Setup Factory”生成安装包的过程如下:启动“Setup Factory” 。选中“Create a New Project”,打开“Welcome”对话框。单击“下一步”按钮,系统弹出“General Information”对话框。单击“下一步”按钮,弹出“Source Directory”对

107、话框。单击“下一步”按钮,弹出“Options”对话框。进入“Setup Factory”工作主画面。增加或删除文件。设置文件属性。保存工程文件。9.4.1 Setup Factory安装参数设置 在“Setup Factory“上,左边的“General Design”一般用于设定用于设置产品信息、主窗口、系统配置要求等安装选项。设置如下:常规设置界面设置动作设置卸载设定 生成安装包生成安装包 9.4.2制作安装包制作安装包示例示例 通过制作示例程序“管理信息系统”的安装程序,进一步理解安装程序制作的原理,以熟悉“Setup Factory”的使用方法,步骤如下:准备制作安装程序所需文件。

108、启动Setup Factory,出现欢迎对话框。选择“Create a New Project”项,并不选中“Use the Project Wizard”工程向导复选框,来直接创建新工程。进入“Setup Factory”主界面后,单击菜单工具中的增加按钮来新增安装程序所需要的文件。依次用增加按钮和删除按钮来增加其他文件或删除不必要的文件。设置文件属性进行常规设置界面设置动作设置生成安装文件自动配置ODBC。9.5 帮助文件制作 一般情况下,每个Windows应用都有帮助文档,对于简单的应用,可以只编写一个“Readme.txt”文本文件并在程序中调用,这也是一种帮助文件形式。 下面介绍如何利用“HTML Help Workshop”产生在线帮助文件:制作HTML文件 使用“HTML Help Workshop ”创建“Html Help”文件。在PowerBuilder9.0应用程序中调用帮助文件9.6本章小结 介绍了Power Script程序调试方法和“可执行文件”和动态库的创建方法,详细描述了安装包的作用及如何制作安装盘的技术,通过示例解释打包工具软件的使用方法以及自动配置ODBC的技术方法,最后,对制作HTML帮助文件进行了描述,并进行了示例,操作简便。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号