走进编程之PowerBuilder篇 柯建勋 1999年 第31期 12版 #1 PowerBuilder之我见 飞马 我是1997年接触PowerBuilder(以下简称PB)的,对它可谓“一见钟情”。从刚开始接触PB,我就觉得它是数据库方面最优秀的开发工具之一。无论是它面向对象的特性,还是它特有的PowerScript语言和“数据窗口”,都让我感到心动。 我的感受:回想起最初学习PB的时候,给我留下印象最深的是,我发现自己常常会不由自主地转入到原先学习FoxPro或Visual FoxPro的思路中去,拿FoxPro或Visual FoxPro下编程的思维方式来考虑PB的问题,这使得我在很长的一段时间内无法理顺整个开发环境中各种画笔(PB中特有的概念)、部件、控件、事件的相互关系以及它们是如何相互配合,使我觉得太难了。我感觉到这样下去是肯定不行的,应该及时作出调整,重新寻找一个学习的切入点。 我仔细考虑了很久,决定从PB的程序示例Example Application入手。因为这个示例是PowerSoft公司自己的开发人员所编制的应用示例,其中从窗口设计到菜单设计、从控件脚本到应用脚本、从数据窗口到后台数据库的动态管理都非常直观地展现在我面前。在这个思路下,我很快就了解了用PB开发管理系统的流程,掌握了PB的PowerScript语言、各种对象、各种控件、数据窗口的基本应用,进而掌握了各种系统函数,最后终于熟练地运用它们完成了我第一个PB软件的开发。这个时候才感觉自己好像眼前迷雾忽然散去,一片清晰,真是“柳暗花明又一村”! 上手指南:要真正掌握PB,就一定要用心学好“数据窗口”控件,它是PB中特有的控件,是PB的精髓所在。对数据库进行的各种操作绝大多数情况下它都能够非常完美地完成。只有真正学会和掌握“数据窗口”控件的各种应用,你才算得上一名PB高手! 当然,在学习的过程中,参考有关PB的好书是少不了的,按照书上的章节一步一步、稳扎稳打地学习,这样往往能使你事半功倍。 学习提示:对于初学者而言,在学习PB的过程中,一定要寻找一个自己的最佳切入点,要用心学习“数据窗口”这个控件,要学会充分利用PB自带的帮助文件,遇到难题时,不要被它所吓住,要多问,多看看在线帮助文件或者到网上去寻找你所需要的各种信息和帮助。衷心祝愿各位学习PB的朋友能够“早成正果”,使自己达到一个更高的境界! #1 知识放送 #1 一、基本概念 1.Power Builder(以下简称PB)开发环境的组成 PB Painters(画板):画板是给开发者提供完成窗口结构(如窗口、菜单、数据窗口)设计的工具。 PB Libraries(库):PB开发的应用系统中,所有应用对象(包括应用、窗口、菜单、数据窗口、自定义函数等)均放在应用库(.pbl)中。 PB Database(数据库) Toolbars(工具条):每个画板上的图像按钮。 PB Deployment Kit(应用工具箱) Online Help(在线帮助) 2.PowerScript语言 PowerScript是PB使用的程序设计语言,有点类似于VB与C的混合物,非常简洁高效。它提供了一套完整的嵌入式SQL语句并提供了丰富的数据类型和众多的函数。 3.事件 事件是PB应用系统开发平台中一个非常重要的概念。在PB环境中,应用系统的运行是由事件来驱动的,例如你单击一个命令按钮,这个按钮的某个事件中的PowerScript脚本就会被执行。PB编程就是编写事件脚本。 #1 二、基本要素 1.应用 PB把一个解决实际问题的应用程序叫做Application,即应用。应用对象是进入到应用库中其它对象的入口点,通过在Application级编写代码,可以展开一个程序框架。 2.窗口 窗口(Window)是PB中主要的用户界面,它构成了PB与用户间交互式的信息传递。窗口由事件、各种控件和它本身的属性组成。窗口中常用控件有:CommandButton(命令按钮)、DataWindow(数据窗口控件)、DropDownListBox(下拉列表框)、EditMask(编辑掩码控件)、Graph(统计图控件)、GroupBox(组框)、ListBox(列表框)、Tab(标签)、MultiLineEdit(多行编辑框)、OLEControl(OLE控件)、Picture(图片框)、SingleLineEdit(单行编辑框)、StaticText(静态文本框)、TreeView(树型视图)等。 3.数据窗口 数据窗口(DataWindow)是PB为解决用户数据同数据库中数据之间的转换问题而提供的一种比较完善的解决方案,是PB最强大的功能之一。对于不太熟悉SQL的开发人员来说,DataWindow可自动生成SQL语句,不需开发人员编程就可操纵数据。它可以直接管理数据库操作,而最终用户通过已建好的DataWindow即可获得所需的信息。 4.菜单 PB有很强的菜单功能,提供了下拉链连式菜单、按钮式菜单、图标按钮式菜单及结合式菜单。 5.用户对象 用户对象是拓展PB功能的最灵活对象之一。利用用户对象,我们既可以扩展系统原有对象的功能,增加新的使用方法,又能够创建出可重用的自定义部件,在一个或多个应用程序中反复使用,缩减开发和维护的时间,进一步提高应用程序的开发效率。同时,对速度敏感的部分可以用C++开发,然后将其嵌入到PB应用程序中。 #1 三、重要的技术点 1.PB与数据库的连接 PB支持各种常见的数据库,PB与数据库的连接建立在驱动程序之上。对于Sybase、Oracle、Informix这样的大型数据库管理系统,PB提供了旨在提高数据库访问效率的专用数据库接口。对小型数据库(如Xbase、Access、Excel)和支持ODBC接口的数据库(如IBM DB2),PB提供了ODBC接口。 2.数据窗口 PB的成功在很大程度上归功于它拥有专利技术的数据窗口。学习过程中要注意数据窗口控件与数据窗口对象的区别。在数据窗口对象设计的中,有两个基本概念,一是数据源,指数据是选自哪个数据库的哪个(些)表中。PB提供了5种数据源:Quick Select、SQL Select、Query、External、Stored Procedure。二是数据的表现方式,即数据以何种方式呈现在用户前,有如下几大类:Freeform、Tabular、Grid、Label、Group、Graph、N-Up、Cross Tab、OLE2.0、RichText、Composite。 数据窗口控件也有一组属性、事件和函数,不过它们的数量比较庞大。 应用程序中运用数据窗口的一般方法都是相似的,基本步骤为: a. 使用数据窗口画笔创建数据窗口对象; b. 在窗口上放置数据窗口控件; c. 通过属性设置或编码将数据窗口控件与数据窗口对象相关联; d. 针对具体应用,编写数据窗口控件事件的事件处理程序,如显示数据、响应用户操作。 #1 精彩网站 1.Sybase中国 http://www.sybase.com.cn Sybase中国的官方网站,也就是PB的老家了。提供PB补丁程序、直连驱动程序下载、PB讨论区(BBS),有什么问题尽管在这里问吧,还提供BBS资料的下载,PB编程常见的问题在这都能找到答案。 2.PowerBuilder精品编程站点 http://pb7.nethome.com.cn 非常优秀的一个PB个人主页,有高质量的PB编程文章和程序范例,不愧叫PB精品编程站点。精彩栏目如下: 自给自足:站长回答的问题,以及制作的一些方便编程的工具,都给出了具体的例子且提供下载。 编程天地:绝对经典的栏目,此站的点睛之笔!提供大量实用PB例程、OCX控 件、PB资料的下载,使你的PB应用程序更加专业,Cool! PB论坛:PB的问题及解答,人气很旺,有问题、没问题的都去看看吧,相信会有收获的。 DataWindow:关于DataWindow的一些使用技巧。 数据库:数据库相关技巧和常见问题。 3.PowerBuilder程序员资源站点 http://www.pbdr.com 国外一家非常好的PB站点,PB技术文章、资源,包括数据窗口、数据库、API调用、PowerScript语言等等,内容丰富且提供下载。 #1 好书推荐 #1 入门级 《PowerBuilder 6.0开发人员指南》 《PowerBuilder 6.0用户参考手册》 出版:北京希望电脑公司 作者:张长富、李匀、严苏娅 关于PB的两本好工具书,其中《开发人员指南》内容详细,编排合理,每一章均配有实例练习。《用户参考手册》采用按对象介绍其属性、事件、函数的方法,编排清晰,并有大量示例,同时在书尾给出了全部函数的索引,方便读者查阅,适用于各级读者。 #1 中级 《PowerBuilder6.0应用与开发》 出版:清华大学出版社 作者:吴洁明 一本相当不错的PB工具书,全面系统地介绍了PB6.0的应用与开发技巧。全书分章节讲述了对数据库的操作、窗口对象中各控件的使用方法、数据窗口的应用、用户对象和用户事件以及OLE的技术和应用。此书另一大特色就是有一章专门介绍了PB开发Internet应用和分布式应用的原理和方法。 《PowerBuilder6.0开发指南》 出版:电子工业出版社 以一个精心设计的完整实例贯穿全书,具体而清晰的介绍了PB6.0的应用开发方法,详尽描述了PB6.0的各种工具及其使用方法,并且深入介绍了PB6.0的高级开发应用技术。 #1 高级 《PowerBuilder 6.0/6.5开发与参考手册》 出版:晓通数据库 一套关于PB应用开发的骨灰级工具书。全套共9本,包括:《PowerBuilder 6.0/6.5用户指南》(卷1、卷2)、《PowerBuilder 6.0/6.5函数、事件和属性精解》(卷1、卷2)、《PowerBuilder 6.0/6.5实用开发技巧》、《PowerBuilder 6.0/6.5开发范例》、《PowerBuilder 6.0/6.5 Internet/Intranet解决方案》、《PowerScript程序设计指南》、《PowerBuilder开发中的数据库设计》。 可以说这套书涉及PB编程的方方面面,包括PB应用开发中的重点、难点、开发技巧等等。其中,关于如何使用PowerDesign 6.0设计数据库书,是市面上少有的关于此软件的中文书籍,还有PB的Internet/Intranet解决方案,使熟悉PB的程序员可以快速地转到当前热点的Web应用开发上来。