power builder是什么软件?作用是?

power builder是什么软件?作用是?,第1张

PowerBuilder是一个图形化的应用程序开发环境。使用PowerBuilder可以很容易地开发和数据库打交道的商业化应用软件。PowerBuilder开发的应用软件由窗口构成,窗口中不仅可以包含按钮、下拉列表框及单选按钮等标准的Windows控件,还可以有PowerBuilder提供的特殊的控件。这些特殊控件可以使应用软件更容易使用,使应用软件的开发效率更高。例如,数据窗口就是PowerBuilder提供的一个集成度很高的控件,使用该控件可以很方便地从数据库中提取数据。

商业化的软件开发要求有很好的移植性。PowerBuilder既可以跨平台开发,也可以发行跨平台软件。例如,在Windows 95下开发的程序,可以不修改源程序而形成UNIX下的执行文件或Macintosh下的执行文件。在开发小组中,不同成员可以使用不同的开发环境,但由于PowerBuilder的支持,在不同的开发环境下看到的共享PowerBuilder对象是相同的,所以仍可以同时开发同一个应用程序。

随着Internet的普及,开发Internet应用的需求激增。PowerBuilder 8.0及时地强化了Web开发功能,并提供了一些配套的开发工具,使PowerBuilder程序员不用再学习其他的开发工具就能开发基于Web的应用。

1.2.1 画笔

PowerBuilder开发环境由一系列的画笔(Painter)组成。画笔就是完成一定功能的工具,比如窗口画笔定义窗口对象,用户对象画笔定义用户对象,数据窗口画笔定义数据窗口对象以及库画笔完成应用库的增加、删除和修改等。开发人员可以通过打开、新建相关对象进入到相关的画笔中,这点和PowerBuilder 6.5版本以前的有所不同。在画笔中通过简单的鼠标 *** 作就能设计、建立和测试相关的PowerBuilder对象。画笔中包含很多画笔工具,用来完成该画笔的功能。这些功能都是和具体的画笔相关的。

如图1-1所示是各个画笔构成的主 *** 作环境中的工具条,相关术语称为PowerBar,它是由很多图形化的小图标构成的,每个小图标代表一种或者一类功能。将鼠标在该小图标上停留片刻后,鼠标旁边会显示图标的名称,窗口底部的信息提示栏(MicroHelp)中显示该图标功能的详细描述。

1.2.2 事件和脚本

PowerBuilder应用程序是事件驱动的。字符环境下的程序一经运行,用户就不能控制程序的执行流程了。其中也有一些有限的提问,但程序的执行流程是确定的。而PowerBuilder应用程序的执行流程是根据运行时事件的发生情况来决定的。用户可以单击按钮,选择菜单,也可以在数据窗口中输入数据,这时都会触发相应的事件。事件什么时候触发取决于事件的定义。PowerBuilder为很多控件(control)预先定义了大量事件,这些事件的触发时机已经定义好了。开发人员需要掌握这些事件的触发时机,才能决定自定义事件的触发时机,才能知道在哪些控件的哪些事件中编写脚本。

每个事件的发生都得满足一定的条件,除了掌握事件的触发时机外,还要清楚事件是在哪个(或哪些)控件上发生的。触发条件通常是用户的动作,当有什么动作时什么事件才发生。有些脚本也可以触发其他事件,例如,在一个按钮的Clicked事件中打开另外一个窗口时会触发另外一个窗口的Open事件。事件是属于特定控件的。例如,按钮可以单击,触发Clicked事件;而窗口上的线控件(line)的单击就没有什么意义,所以线就没有Clicked事件。

脚本(Script)是由PowerScript的命令、函数、语句及SQL语言等组成的命令集合,用来响应事件,做相应的处理工作。例如,可以在窗口的打开事件中编写脚本,在检索数据窗口中显示数据;在编辑框中可以编写脚本来校验用户的输入数据是否符合特定的要求,比如是否是数字等。脚本和事件的关系是,脚本的执行最终依赖于事件,没有不通过事件的触发就可以执行的脚本。

1.2.3 函数

PowerBuilder提供了大约600个内置函数,这些函数是构成脚本的基本元素。函数一般都是针对特定的对象 *** 作的,例如,GetitemString是用来从数据窗口中读取string类型的字段的取值的,它不能用来 *** 作其他的对象;函数FindItem是从列表框、下拉列表框、图形列表框及图形下拉列表框等对象中查找字符串的,不能用来从数据窗口中查找。PowerBuilder是面向对象的,因此具有多态性,很多函数都有多种格式。例如,经常用来显示信息的函数messagebox有4种格式,系统会自动识别使用哪种。

程序员可以自己定义函数,不仅逻辑结构清楚,方便重复调用,而且有利于程序的封装。可以定义多个同名但不同参数的函数。自定义函数和内置函数的使用一样,在函数的作用域中的任意脚本里都可以调用自定义函数。自定义函数还可以调用本身,以编写递归程序。

1.2.4 库文件

PowerBuilder对象,如菜单、窗口、数据窗口和用户对象等都保存在库文件中。库文件的后缀是PBL。使用普通的编辑器无法查看其中的内容,使用PowerBuilder的library画笔可以打开它。在开发环境中,PowerBuilder从库文件中检索所需要的对象。

一个应用中可以有多个库文件,这时应该设置应用的搜索路径。可以根据对象的使用频率或者功能的不同将对象放在不同的库中。例如,将报表的相关对象放在report.pbl库中,将查询相关的对象放在query.pbl中。这些不同库文件的组织策略应根据个人开发方便和系统的执行性能来确定。

1.2.5 创建执行文件

应用程序开发完毕后,可以使用PowerBuilder提供的工具创建执行文件,交付给用户安装盘。PowerBuilder提供打包应用程序的简单方法,方便快捷地创建商业化的安装盘。安装界面是用户接触应用程序的第一步,第一印象的好坏很重要,反映出开发人员对自己的客户重视程度。无论如何,提供给用户一个漂亮的安装界面,这肯定是没错的。

   在开始学习PowerBuilder之前 首先要弄清楚的问题是什么是PowerBuilder 它是用来干什么的 它的特点又是什么 只有知道了 PowerBuilder的功能和特点所在 我们才能知道什么时候应该选用PowerBuilder作为我们的应用程序开发工具

     什么是PowerBuilder

    我们知道 数据库应用是当前计算机应用的一个非常重要的方面 而在目前的数据库应用技术中普遍采用的就是客户机/服务器体系结构 在这种体系结构中 所有的数据和数据库管理系统都在服务器上 客户机通过采用标准的SQL语句等方式来访问服务器上数据库中的数据 由于这种体系结构把数据和对数据的管理都统一放在了服务器上 就保证了数据的安全性和完整性 同时也可以充分利用服务器高性能的特点 正因为客户机/服务器体系结构的这些优点 因而得到了非常广泛的应用

    PowerBuilder是著名的数据库应用开发工具生产厂商 PowerSoft公司推出的产品(PowerSoft现已被数据库厂商Sybase所收购) 它完全按照客户机/服务器体系结构研制设计 在客户机/服务器结构中 它使用在客户机中 作为数据库应用程序的开发工具而存在 由于PowerBuilder采用了面向对象和可视化技术 提供可视化的应用开发环境 使得我们利用PowerBuilder 可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序

    在当前 网络技术迅速发展 随之发展的还有OLE OCX 跨平台等技术 而在PowerBuilder的最新版PowerBuilder 中提供了对这些技术的全面支持 总之在数据库开发工具领域 PowerBuilder是其中非常优秀的一个 利用它我们可以开发出功能强大的数据库应用程序

     PowerBuilder的特点

    PowerBuilder 提供了对目前流行的大多数关系数据库管理系统的支持 由于在PowerBuilder的应用程序中对数据库访问的部分一般采用国际化标准数据库查询语言 SQL 使得用PowerBuilder开发的应用程序可以不做修改或者只做少量的修改就可以在不同的后台数据库管理系统上使用 也就是说用 PowerBuilder开发的应用程序是独立于服务器上的数据库管理系统的

    和大多数的WINDOWS应用程序一样 PowerBuilder也是事件驱动工作方式 在这种工作方式中 程序的运行没有固定的流程 程序中的代码也是为各种可能发生的事件编写的 当程序开始运行之后 它就可以接受来自系统 用户或者其它应用程序触发的事件 然后执行相应的事件代码 事件驱动的工作方式与面向对象技术是紧密相关的 在PowerBuilder应用程序中 接受发生的事件的往往就是程序界面中的各种可视化对象

    PowerBuilder 是一种面向对象的开发工具 各种WINDOWS应用程序中常见的窗口 菜单 控件等在PowerBuilder中都是一个个的对象 在 PowerBuilder中我们还可以创建自己的用户对象 特别要指出的是PowerBuilder提供了对面向对象方法中的各种技术的全面支持 我们可以利用面向对象方法中的对象的封装性 继承性 多态性等特点使得我们开发的应用程序具有极大的可重用性和可扩展性 而这一点正是软件工程中对应用程序所提出的重要目标

    在当前 由于网络技术的发展 许多种不同的 *** 作系统平台在 INTERNET网上同时被使用 这对开发的应用程序的跨平台性提出了更高的要求 而PowerBuilder就提供了良好的跨平台性 比如在 PowerBuilder中 利用WINDOWS平台开发的各种对象可以方便地应用到UNIX平台中 因为PowerBuilder支持对象的跨平台性 这样使得把应用程序从一个平台移到另一个平台变得并不复杂

    为了给用户提供各个方面的支持 PowerBuilder具有自己的编程语言POWERSCRIPT 这个语言除了提供基本的流程控制语句 还提供了几百个函数来 *** 纵各种对象和提供诸如DDE OLE等方面的支持 此外我们还可以定义自己的函数 处理特定的事件 学习PowerBuilder时相当一部分的时间就是用来了解和熟悉PowerBuilder提供的各种函数

    PowerBuilder 一个很大的特点就是提出了数据窗口对象的概念 数据窗口对象也是PowerBuilder中的一种对象类型 与其它对象不同的是数据窗口对象是专门为了访问后台的数据库服务的 在数据窗口对象中我们定义了数据的来源和数据的显示风格 这样在应用程序中我们就可以把精力完全放在程序的运行流程控制上 而不用关心具体数据的来源 因为我们在数据窗口对象中已经定义好了数据的来源 如果需要使用数据库中不同的数据也只要对数据窗口对象进行修改就可以了 特别要指出的是PowerBuilder在数据窗口对象中提供了丰富的数据显示方式 可以满足各种不同的需要 在PowerBuilder较新的版本中提供了基础类库PFC 它为应用程序的开发提供了许多可重用的预定义类和对象 利用基本类库PFC可以快速开发出高质量重用性好的应用程序 真正发挥面向对象编程的巨大威力

    最后要指出的是PowerBuilder有三个不同的版本 分别为DESKTOP型 PROFESSIONAL型 和ENTERPRISE型 DESKTOP型是为个人使用的桌面型应用程序 在这里可以利用PowerBuilder内置的数据库管理系统SYBASE SQL ANYWHERE来创建和使用本地数据库 为个人的应用服务 PROFESSIONAL型的PowerBuilder最重要的一点就是提供了对 MICROSOFT ODBC(数据库标准连接接口)的支持 在PROFESSIONAL版本中我们就可以使用PowerBuilder的继承 多态等绝大多数特性 在 ENTERPRISE版本中最重要的一点就是提供了对开发大型的数据库应用程序的全面的支持 提供了开发大型应用程序的许多辅助的工具 比如C++ CLASS BUILDER等

     PowerBuilder与数据库的连接

    数据库前端开发工具与后台数据库管理系统的连接方式是一个很重要的课题 PowerBuilder提供了两种访问后台数据库的方式 一种是通过ODBC标准接口的方式 第二种是通过专用的接口与后台的数据库相连 ODBC的中文名字是开放式数据库连接 它是微软公司提出的数据库连接标准 使用ODBC方式连接数据库的第一步是创建数据源 比如我们可以利用WINDOWS下控制面板中的 BIT ODBC 选项来创建驱动某种数据库的数据源 创建好数据源之后 我们就可以在本地计算机中利用定义好的数据源存取后台数据库中的数据了

lishixinzhi/Article/program/SQL/201311/16426

我从 年的开始使用PowerBuilder 那时还没有PFC 实际上 class library(类库) 的概念那时还是一个新名词 我们不得不使用PowerBuilder本身来从头开始创建每一个对象 特别的是 DataWindow使RAD(快速应用开发)变得真正的高效起来 下面让我们 从一些简单有用的例子开始吧

将Tabular DataWindow转换为Grid DataWindow

也许这是一个最有用的小窍门了 它可以将tabular DataWindow转换为grid DataWindow 反之亦然 在PowerBuilder x版本里 您可以右键单击一个对象来编辑源文件(edit source) 这比先前必须将教本导出再导入要简单的多 要将一个tabular DataWindow转换为grid DataWindow 只需要在library painter中右键单击DataWindow对象 在d出菜单中选择Edit Source 打开script editor 变量 processing 控制着DataWindow的显示类型 将值改为 DataWindow会变成grid 改为 DataWindow就会变成tabular

将DataWindow数据源从Select语句改变为Stored Procedure(存储过程)

这也是一个非常有用的技巧 它涉及一些基本的技术 首选 创建或者确定一个合适的Stored Procedure 然后用这个Stored Procedure作数据源创建一个新的DataWindow 在library painter里 右键单击这个DataWindow 在d出菜单中选择Edit Source 打开script editor 定位到以 Procedure 开头的行

确保整行都被选中 将该行拷贝到剪贴板 然后找到您希望将数据源更改成存储过程的DataWindow 同样使用Edit Source打开script editor 定位到以 Retrueve 开头的行

仍须选中整个行(它也许不止一行) 现在将整个Retrieve语句替换为剪贴板中的Procedure语句 关闭script editor 您现在就拥有了一个基于Stored Procedure的DataWindow

为什么说这个技巧非常有用呢?这个技巧使您既可以保留DataWindow的设计又可以利用stored procedures 尤其是在您有许多基于SQL语句的DataWindow在数据库不断增长直到面临性能问题的时候 这项技术不仅节省了开发人员的大量时间 还能够保留原有的DataWindow界面 而用户丝毫不会察觉

用stored procedure来更新DataWindow

当DataWindow的数据源变成stored procedure Datawindow的更新能力就丢失了 这让很多开发人员不愿用stored procedure作为DataWindow的数据源 很多年以来 我一直避免使用stored procedure也是出于这个原因 无论如何 Stored Procedure Update 功能是奇妙的 首先 确定或者创建一个用于更新 插入 删除记录的stored procedures 打开DataWindow对象 从菜单栏上选择Rows >Stored Procedure Update

在Tab页面上分别为insert delete update选择选择用于对应的存储过程 PowerBuilder会逐行列出stored procedure的参数 您可以为每个参数配置对应的DataWindow Column

在stored procedure update配置完成后(可能需要保存并退出DataWindow Painter 然后重新打开) 选择菜单 Rows>update properties 您会发现 Stored Procedure 如同一个正常的表名一样出现在 Table to Update 下拉列表中

如果您希望更新多张表 stored procedure update是一个很好的选择 任何一个利用过重置update标记等方法来完成多表更新的开发人员无疑会发现这种方法的非常的有价值

在Powerscript中从stored procedure接收数据

随着stored procedures的频繁使用 您肯定也希望能够直接在Powerscript中直接通过stored procedures来获取数据 典型的 在Powerscript中 我们使用datastore来完成这个任务 使用stored procedures的最终结果就是可以减少一些DataWindow对象的存在 而且它允许更多的代码复用 相同的procedure既可以在后端完成一个 Get 的请求 也可以用于前端的数据展示 如需在Powerscript中利用stored procedure接收数据 请参照以下脚本

OpenUserObjectWithParm

许多年前我曾在PowerSoft担任技术顾问 有一次在参加PowerSoft咨询会议的时候 无意中听到一个客户希望能够得到一些有关使用OpenUserObjectWithParm函数的一些建议 那个技术顾问从未听说过这个函数 我永远难忘那次会谈 它使我确信OpenUserObjectWithParm这个函数在很大程度上被大家忽略了 其实这个函数非常的有用 它允许你向一个user object传递参数 告诉它在Window上的什么位置来自行创建 它被存储在userobjects数组中的位置(可在runtime进行 *** 作 window control[]) 还有开发人员能够想到的任何其它的参数 举个简单的例子 我们打开一个DataWindow 并允许用户从一个calendar对象中选择日期

下面这行代码位于Window的Open事件中 它将创建一个类型为uo_drop_down_calendar的userobject x y座标分别为 并且标题显示为 Begin Date

OpenUserObjectWithParm(iuo_begin Begin Date )

这个技巧还有很多其他的用处

SQL Tool

有很多次 在作PowerBuilder应用的技术支持时 我们需要检测和定位一些关于数据的问题 但我们并不总可以连接到产品的数据库上 这种情况下 在前端的PowerBuilder应用中以系统管理员的身份执行SQL语句的方法就派上用场了 我为此编写了一个很有用的工具软件

您可以从dropdown DataWindow中任意选择数据库表和字段名 轻松的构建需要的SQL语句而不用担心记不住那些字段的名字 还可以将SQL语句保存起来以备日后使用 例如 您的用户需要找出数据库中所有的可用的address类型 它很简单 您可以通过创建SQL语句来演示给他或她看

用户将一条SQL语句输入到DataWindow中 然后点击 Execute(执行) 检索结果就会出现在下面的区域 用户还可以将数据结果另存为Excel等等

如果用户需要更详细的SQL语句 您可以写下来然后e mail给他 用户只需要拷贝粘贴到窗体里就可以执行了 这种方法可以用于清理数据库问题 创建或执行stored procedures 创建特别的报告 甚至授权 您可以在enterprise manager作几乎任何事情 这个工具软件非常的有用 无论如何 要小心的使用 以免用户创建笛卡儿积或者恶意的更新数据

保存动态创建的DataWindow

让我们再深入讨论这个工具(SQL Tool) 倘若您的客户急需一个定制的报表 您可能想先飞速的的完成报表 等回来以后再重新规划集成到应用菜单中 于是 在您的手提电脑上写一个stored procedure e mail给您的系统管理员 您的系统管理员在SQL Tool窗口打开脚本

用户通过执行这段脚本来创建stored procedure 您再告诉他们应该如何配置参数 然后执行存储过程 结果被输出到result set(结果集)窗口 现在看看如何能把这个结果保存成一个DataWindow

打开DataWindow页面 然后点击 Create DataWindow

现在点击 Retrieve DataWindow 刚才的结果集出现在DataWindow中 如果您希望保存这个DataWindow以便以后使用 点击 Save DataWindow 就可以了 您可以适当的修改格式并将它封装为一个报表

结语

作为PowerBuilder的开发人员 我们总是被要求完成惊人数量的工作 用户或是项目经理可能会要求极其苛刻 对一个开发人员来说 储备一个 军械库 的可依赖的技术和例子是非常重要的 PowerBuilder的队伍已经不像从前那么壮大了 在与那些大公司以及 *** 机构的IT经理们的接触过程里 我经常被迫去反驳那些所谓的PowerBuilder早已是 骨灰 (原文用了legacy 遗产) 过时货 废弃的 甚至 年代的技术 的断言 事实上 PowerBuilder仍旧是目前最棒的RAD开发工具 它可以让开发人员只需大约数小时的功夫就完成设计原型和产品级的代码 而非数天乃至数周 这也显示出开发环境是否以团队为导向的区别

作为PowerBuilder的开发人员 我们拥有一个优于我们的其他IT同行最强大的工具 我真的希望以上这些技巧能够帮助初学者以及那些中级的开发人员 更加的信赖PowerBuilder

      编辑推荐

       ASP NET开发培训视频教程

lishixinzhi/Article/program/PB/201311/24591


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8058977.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存