用PowerBuilder创建Internet应用

Sybase 软件(北京)有限公司 霍军

Internet和World Wide Web(WWW)已经风靡全球,在WWW上有上百万的商业机会。通过WWW,可以立即给用户提供信息,提高用户的满意程度。还可以提供更好的通讯和信息访问,提高企业内部的生产率。
要充分发挥这些优势,企业必须改变它们在Web节点上的"市场小册子",并且提供动态的、数据驱动内容的节点。它们需要开发工具开发这些新的Internet应用。
新的Internet开发工具不断涌现,PowerBuilder 5.0就是其中之一。它包含了很多新的Internet特性,使得开发者可以构造动态的Web节点,比如:
·支持"ActiveX控件";
·数据窗口可以将任何数据库中表的数据存储为HTML格式文件;
·数据窗口的Plug-in功能,可以让浏览器在Internet上查看报表;
·窗口的Plug-in功能可以在WWW浏览器上运行PowerBuilder应用;
·Web.PB用于创建动态的、基于Web的应用服务器。
PowerBuilder是一个较优秀的RAD(快速应用开发)工具,非常适应Internet的开发需求,其表现如右表所示:
下面我们详细讨论PowerBuilder 5.0的Internet特性。

支持ActiveX

PowerBuilder提供对Mcrosoft ActiveX Internet控件的广泛支持。使用从第三方厂家提供的ActiveX控件,可以为PowerBuilder应用增加各种Internet功能,例如:
·WWW HTML浏览器功能;
·FTP控件用于传输和共享文件;
·NNTP控件访问新的群件;
·POP控件用于Internet电子邮件服务。
表1
例如,如果希望PowerBuilder应用的最终用户可以在PowerBuilder应用的窗口中浏览WWW。通过使用Visual Components的WebViewerActiveX,在窗口中嵌入一个HTML Web浏览器并且可以通过编程控制它。
开发者可以使用WebViewer内置的函数并且允许用户输入URL(Uniform Resourse Locator),以及在Web节点间向前和向后移动。这个控件同时还提供很多属性和方法允许开发者通过编程控制它的功能。例如,开发者可以使用PageURL属性和PowerScript语言设置URL地址。开发者还可以通过截断到其它Web节点的连接请求来限制PowerBuilder应用的用户只访问公司的主页。
使用ActiveX的优点表现在以下几个方面:
·扩展PowerBuilder客户/服务器应用;
·开发者可以完全通过编程控制这些控件并且可以定制应用的Internet功能;
·市场上有上百个可供选择的ActiveX组件;
·不必重复工作——使用预制的、测试过的Internet组件。

数据窗口生成HMNL文件

数据窗口技术是PowerBuilder访问数据库和进行数据表现的重要技术。数据窗口提供了鼠标点击方式的SQL语句生成,并且可以将数据以各种形式展现给用户,包括图形方式、交叉表格形式、列表形式和RichText格式。数据窗口可以将其中的数据存储为各种文件格式,例如dBASE、dif、SQL、Excel、WKS、Wndows mctafile和Powersoft Report(PSR)。PowerBulder 5.0现在支持一种新的存储格式HTML,可以将数据窗口中的数据存储为HTML文件格式。
使用数据窗口生成HTML文件的优点如下:
·无需HTML编程,就可以在Internet或Intranet上发布PowerBuilder或InfoMaker的静态数据和报表;
·将数据窗口生成的HTML合并到其它任何HTML页中,可以增强数据表现;
·最终用户可以不需要PowerBuilder就能在他们的PC机上查看相关的信息——只需要一个浏览器。

数据窗口Plug-in

数据窗口的Plug-in功能可以在Web页上显示Powersoft Report(PSR)文件,这必须在Netscape Navigator或Microsoft Internet Explorer 3.0上查看。用PowerBuilder DataWindow或者InfoMaker Report创建的报表,可以存储为PSR文件格式,这样就可以通过浏览器来访问。这种报表保存了数据窗口中所有高级的格式,例如阴影、彩色文本和编辑风格等。
例如:要显示数据窗口文件compensation-report.psr,必须将下面的嵌入标记插入HTML页上:
〈embed src=compensation_report.psr width=650 height=350〉
一旦该HTML被装入,compensation_report.psr会自动从Web服务器上卸下。使用数据窗口的Plug-in功能用户可以使用滚动条浏览数据,打印数据窗口报表,还可以将报表存储成其它文件格式。
数据窗口Plug-in的优点表现在以下几个方面:
·在WWW上发布复杂的Data Window/InfoMaker报表,加快向WWW用户的发布;
·克服HTML的限制,提供复杂的图形报表,包括列表形式、交叉表格形式和图形方式。
·节省拷贝报表的时间和资金;
·可以在一个中央位置更新报表。

窗口Plug-in

PowerBuilder窗口的Plug-in功能是一个将客户/服务器应用扩展到Web上的技术。窗口的Plug-in功能允许在 支持Plug-in的浏览器(如:Netscape Navigator、MicrosoftsInternet Explorer 3.0)上运行PowerBuilder应用。这种Plug-in 功能允许打开一个包含所有PowerBuilder标准控件的子窗口,例如tab控件、treeh和list view以及OLE对象。也可以 使用数据窗口技术,通过PowerBuilder的直接接口和ODBC接口访问各种数据源。另外,PowerBuilder窗口Plug-in应 用可具有和分布式PowerBuilder应用的接口,这些应用可以运行在其它平台上,如UNIX或Windows NT。
PowerBuilder窗口包含在PowerBuilder动态库(pbd)中,放在Web服务器上。例如:要装入某PowerBuilder窗口, 在HTML页上嵌入如下标记:
〈embed src=windows_plugin.pbd width=370 height=320 window=w_product〉
这里,windows_plugin.pbd是PowerBuilder库的名称,w_product是由浏览器打开的子窗口的名称。width和height 定义了在浏览器中窗口的尺寸。可以同样用这个嵌入标记来指定其它需要的对象的PowerBuilder库,并且可以 用commandparm属性向窗口传递一个字符串参数。最终用户的PC机上必须安装有PowerBuilder运行时所需的动 态链接库,以便在WWW浏览器中运行窗口。
窗口Plug-in功能的优点表现在以下几个方面:
·PowerBuilder窗口可以运行在WWW浏览器中,避免了编写大量的HTML和CGI程序;
·只做很小的修改就可以让现有的应用具有运行在Web上的能力;
·PowerBuilder支持的高级用户界面功能克服了HTML的不足;
·可以使用数据窗口的读/写 /更新和删除功能。
使用Web.PB进行基于服务器的开发
Web.Pb是一种新的技术,可以让PowerBuilder建立基于服务器的Internet应用,允许WWW浏览器访问分布式 PowerBuilder应用的服务。这些分布式的应用可以使用PowerBuilder所有的功能,例如数据窗口、PowerScript、面 向对象等,来建立基于服务器的应用。并且,PowerBuilder服务器可以动态生成HTML页"飞到"或将HTML发送到 Web浏览器。这允许用户支持真正的"瘦客户机"体系结构,也就是在客户机上只需要一个WWW浏览器。
Web.PB2体系结构如下:
如上图所示,Web.PB的体系结构非常简单,并且建立在分布式PowerBuilder的基础上。Web.PB实际上代替 了传统的PowerBuilder客户端应用的位置,允许用户通过WWW浏览器访问分布式的PB应用。在浏览器中,用户 可以访问在分布式PowerBuilder应用中的任何不可视对象的属性和方法。用户还可以向方法传递参数。Web服 务器与Web.PB通讯将这些信息发送给分布式PowerBuilder应用,应用会执行方法并且将结果以动态HTML的形 式返回给浏览器。
例如,下面的代码放在一个分布式PowerBuilder应用中的"of_get_data"函数中。这个函数在SQL Anywhere数 据库中搜索姓名的第一个字母与用户输入的字母相同的雇员,用户输入的字母放在search_letter参数中:
//定义变量 String ls_html String ls_search_arg long ll_rows_retrieved ls_search_arg=search_letter+% //创建数据存储(非可视化数据窗口)并与一个数据窗口相关联 ds_names=create datastore ds_names.dataobjecet="d_names" ds_names.settransobject(sqlca) //检索行 ll_rows_retrieved=ds_names.retrieve(ls_scarch_arg) //用htmltable属性以HTML表格形式存储结果 if ll_rows_retrieved>0 then ls_html=ds_names.object.DataWindow.data.htmltable else ls_html=‘No employees found for this search' end if //返顺包含HTML表格的字符串。 return ls_html 建立了函数后,在HTML页中用下列语法调用它: 〈FORM METHOD="GET"ACTION="/cgi-shl/pbcgi050.exe/of_get_data"〉 请键入搜索字母〈INPUT NAME="search_letter"〉 〈INPUT TYPE="SUBMIT" VALUE="search"〉 </FORM> Action语句指出使用Web.PB的接口,在这个例子中使用pbcgi050.exe。PowerBuilder还
支持Microsoft(ISAPI)和Netscape(NSAPI)Web服务器。被调用函数"of_get_data"参数名称是"search_letter"。一旦这 个需求被提交,分布式PowerBuilder获取数据,将它格式化为HTML表格并且将表格返回给浏览器:
Web.PB的优点表现在以下几个方面:
·用户可以访问动态的、数据驱动的Web节点;
·创建与服务器无关的应用,可以使用Microsoft、Netscape或任何CGI兼容的WWW服务器;
·客户端的PC机只需要WWW浏览器;
·使用数据窗口技术在WWW节点上加入数据库连接能力;
·简单地提交复杂的、基于数据库的事务应用;
·只在服务器上修改,简化应用的维护和支持。
支持的平台
下表是PowerBuilder 5.0 Internet特性支持的平台。