王超
(辽宁建筑职业学院,辽宁辽阳 111000)
基于PowerBuilder应用程序的开发
王超
(辽宁建筑职业学院,辽宁辽阳 111000)
在进行任何开发和设计PowerBuiler应用程序之前,必须去制定一个计划。这个应用程序看上去应该是什么样、它是如何工作的、把各个部分组合到一块的组成结构是什么、采取什么样的数据库、组织它的最好的方式是什么,以及如何使它在大小、速度和易用性方面达到最优,这些问题都需要我们在开发之前仔细地研究。本文通过一个开发实例阐述了PowerBuilder应用程序的开发过程。
PowerBuilder 应用程序 开发
在进行任何开发和设计PowerBuiler应用程序之前,必须去制定一个计划。这个应用程序看上去应该是什么样、它是如何工作的、把各个部分组合到一块的组成结构是什么、采取什么样的数据库、组织它的最好的方式是什么,以及如何使它在大小、速度和易用性方面达到最优,这些问题都需要我们在开发之前仔细地研究。PowerBuilder应用程序的开发过程包括分析、设计、开发、调试、生成可执行文件这几个部分。
这个阶段也常常被称为编码阶段,在这里说成开发是因为,在PowerBuilder中创建应用程序更多的是定义和设置属性,而不是编写大量的代码,用户可能会认为如果不编写代码,就是在浪费时间,但是用户应该摒弃这种想法因为它就是全部的开发过程。在这里将讲述开发过程的所有关键问题。用户可以用任何适合于用户项目的方法,以任何顺序完成下列三个任务,但是在用户进行调试和测试之前,必须将它们全部完成。(1)创建数据库。数据库的设计是在设计阶段完成的,现在要真正地实现它并创建各种表和索引。这个过程可以借助于一些数据库设计的工具,它们可以将设计中产生的图表直接转换成创建所有表、索引和事件触发器的SQL脚本程序,在这个过程中将使用Database画板。(2)创建应用程序。创建应用程序对象。设置应用程序级的属性并编写应用程序脚本,尽管这些在以后都是可以改变的,但最好还是事先想好需求什么。后面将详细讲述有关应用程序对象和Application画板。(3)创建开发数据库、基础类库、用户对象和父窗口。创建开发数据库是为了保存本项目的对象,和开发数据库同时建立的还有一个子目录结构,另外,用于版本控制和项目管理的对象检查标准也应被建立。
图1 数据库画板
图2 数据表定义窗口
基于前一阶段的设计结果,我们讨论一下以下问题:有加快开发速度的公共函数和用户对象吗?有什么标准窗口吗?能通过创建父窗口来提高开发速度和增加其标准化程度吗?现在开发一些只有战略性的对象可以在后面的开发过程中节省许多时间。
下列步骤也可以按任意顺序来做。实际上,把它们看成是一个完整的反复过程可能会更好。因为在创建应用程序的过程中,不可避免地要在Window画板、Datawindow画板和其他画板之间转来转去。(1)创建窗口对象。应用程序的窗口把所有Datawindow、控件和用户对象结合在一起,形成完整的用户界面。有关如何在Window画板中创建窗口的所有内容将在后面讲述。(2)创建菜单对象。一般在应用程序的主窗口中都有一个下拉菜单,这个菜单是在Menu画板中创建的。在Menu画板中,可以定义显示在菜单中的菜单项和子菜单,以及当菜单项被选中时执行什么代码。(3)创建Datawindow对象。可以说,任何一个PowerBuilder应用程序的核心都是数据库和用户与数据库的交互,因此数据窗口就是PowerBuilder应用程序开发的重点。它们定义要使用的数据以及用户怎样来查看和编辑这些数据,它们能自动实现对这些接口的编码。(4)编码。在许多画板中都可以进行编码工作,可以在窗口和菜单项中为按钮保存代码。大部分代码用来连接不同的控件以及实现它们之间的联系,另有一些代码用于直接访问和更新数据。后面将详细讲述Powerscript语言以及嵌入式SQL语句。
PowerBuilder中有一个功能强大的集成调试器,可以跟踪程序执行和验证变量的值,它与其他环境中使用的调试器差不多。但是,编写的代码并不是唯一需要调试的东西,有时还需要跟踪发送到数据库的命令以及从数据库返回的数据。
测试需要在多个不同的层次上进行。必须保证该程序符合规格定义,不出现任何不希望出现的事情。用户的交互必须是可以预料的,并且即使涉及到太多的记录时,程序也不应该死掉,这些都应该在测试阶段好好把握。
图4 菜单栏中的菜单项
在我们学习PowerBuilder的开始阶段时,一般可以通过简单的选择菜单命令完成生成可执行文件的工作,但是事情并不是那么简单的,随着应用程序大小和复杂性的增长,就会碰到有关可执行文件大小和EXE中没有包含的、动态分配对象的问题,用户就需要在这个阶段,利用PowerBuilder动态库和它的资源文件来解决这些问题来创建高效的、专业化的Windows程序。
要求:展现使用PowerBuilder编程的完整过程。
技术要点:建立应用对象、建立数据库、窗口对象、菜单对象、编译成exe和dll文件。
操作步骤:
(1)在e:student下建立工作区newapp.pbw。(2)创建应用对象newapp。(3)创建数据库,运行PowerBuilder 8.0,在工具栏中单击Database图标,进入数据库画板,打开ODB ODBC列表项,再打开其下面的Utilities列表项,如图1所示。(4)创建数据表,右击数据库newdata中的Tables项,在弹出菜单中选择“New Tables…”或单击工具栏上的新建表按钮,出现如图2所示的列定义子窗口。可用Tab键在六个输入框间切换输入内容:如在Column Name(列名称)中输入xh;Data Type(数据类型)中输入char指定该列的数据类型;在Width(宽度)中输入9;Dec(小数点位数)不输入;在Null(该列是否允许为空)中选择No(主键不能为空);Default(默认值)来定义新插入一列时该列的默认值。(5)创建数据窗口对象。单击工具栏上的New按钮,然后在弹出的New对话框中选择DataWindow标签页,选择Grid(网格)显示风格后,单击OK按钮,将会弹出选择数据源对话框,选中Quick Select数据源,单击Next按钮,在Tables列表中单击newtable,然后单击Add All按钮,单击OK按钮,弹出Select Color and Border Settings对话框后,单击Next按钮,会弹出列出了数据窗口的基本属性的对话框,点击Finish按钮,进入数据窗口画板。单击工具栏上的按钮或选择菜单File︱Save As,键入数据窗口对象名:d_newtable,再单击OK按钮存盘。(6)创建窗口对象w_newtable,按如图3所示添加控件、设置属性、编码。(7)创建菜单对象。单击工具栏中上的图标,或选择File/New菜单项,选择PB Object选项卡,选中图标后单击OK按钮,打开菜单画板。在菜单栏上插入第一个菜单项(菜单标题)。选择Insert/Submenu Item菜单项,或单击鼠标右键,在弹出式菜单中选择Insert Submenu Item菜单项, PowerBuilder显示一个空的文本输入框,在文本框内输入菜单标题:插入,然后按Enter键,选中刚输入的【插入】菜单项,右击选择Insert Menu Item At End菜单项,在新的文本编辑框内输入删除,按回车键。仿此过程再加入菜单项【存盘】、【退出】,这样菜单栏中所有的菜单项建立完毕如图4所示。单击画板工具栏上的save按钮,或在系统菜单中选择File Save选项,弹出Save Menu对话框,输入菜单文件名m_main,同时在菜单对象窗口的标题栏显示m_main。
双击窗口对象w_newtable,通过在MenuName属性中输入m_main菜单名或单击右边的Browse的按钮来选择需要关联的菜单。单击工具栏中的按钮或按快捷键,调试、测试程序。最后将程序编译成为可执行文件,创建步骤一般如下:准备工作、创建新工程或打开已保存工程、设置编译选项、生成可执行文件。
[1]张斌,陈越.Powerbuilder应用开发注记[J].计算机系统应用,1997(08).
[2]木尼拉·塔里甫.灵活运用PowerBuilder中事务管理的方法[J].中国科技信息, 2007(06).
[3]卢守东.PowerBuilder应用程序的数据库连接技术[J].科技情报开发与经济,2007(27).