敬业的IT人 >> 编程开发 >> PowerBuilder >> PowerBuilder7.0在Internet中的应用

PowerBuilder7.0在Internet中的应用

敬业的IT人 互联网 佚名 2008-1-4 11:05:48


随着Internet /Intranet的发展和万维网(www)的出现,传统的客户机/服务器方式(c/s)逐渐向浏览器-Web服务器-数据库(bwd)方式过渡。后者与前者相比易学易用,操作性强,可扩充和维护性好。文章主要就Powerbuilder在互联网和企业内部网应用开发中,可采用的几种方式:最简单的Web应用,SybaseEA Studio,WEB.PB ,Plugin 和ActiveX等从基本原理与交互过程,开发方法,主要特点和不足作了较详细的说明。在具体应用中,根据需求和使用环境状况灵活选择。

  作为目前世界上使用最广泛的数据库应用程序综合开发环境以及MIS开发工具之一,Sybase公司的PowerBuilder以其卓越的应用在开发人员当中赢得了经久不衰的盛誉。近来,随着Internet应用日益普及的推动下,对于目前流行的基于Web的浏览器和瘦客户端的应用系统(即浏览器如IE不安装任何插件),PowerBuilder的Sysbase公司提供了一系列的解决方法。

  一.最简单的Web应用,仅仅展示某个数据窗口中的数据。从Powerbuilder5.0以上,支持将数据窗口(Data Window)中的数据保存为table

  else

  return html="没有检索到数据"

  end if

  return returnhtml

  函数的作用是根据用户选择的产品类型来调用数据窗口进行数据查询,并将结果以 HTML形式返回。

  至此我们已完成了服务器应用的开发,下面修改Pbweb.ini文件,添加有关此服务器应用位置信息的节purchase如下:  

  [purchase]

  driver=winsock

  application=12560

  location=136.158.188.12

  最后用FRONTPAGE,文本编辑器等来定制web页,在其上加入    <FORM  ACTION="//scripts/pbisa60.dll/purchase/uoproduct/fretrieveproduct">

  <P>请选择产品类型:

  <SELECT NAME="sproducttype">

  <OPTION> 针式打印机

  <OPTION> 喷墨打印机

  <OPTION> 激光打印机</SELECT>

  <P> <INPUT TYPE="submit"><INPUT TYPE="reset"> </FORM>

  至此,全部工作完毕。在实际运行时,启动Web服务器和purchase服务器,用户查询时即可得到所需结果。

  评价:WEB.PB是一种瘦客户机方式,客户机端除浏览器外无须添加其它任何软件,支持Window,Unix,,Macintonish等多种平台,适合于Internet/Intranet开发,但是相对来讲其功能有限,无法发挥Powerbuilder的所有特点,用户界面不太友好,业务逻辑也较简单。如以此进行较为复杂的应用开发必须和Java,Java Applet等结合起来。

  四.PLUG_IN方式

  插入件最早是由网景公司提出的,后来得到了众多浏览器开发厂商的认可,插入件以多种方式扩展浏览器的功能。NPPBA60.DLL和NPPBS60.DLL是Powersoft 公司开发的插入件文件。它分为窗口(Window)和数据窗口(Datawindow)两种,从安全角度还可分为普通模式和安全模式。安全模式的插入件限制了Powerbuilder 应用在客户机上除打印以外的几乎所有活动。在插入件方式下,我们可以使用Powerbuilder里的所有控件,函数和方法,发挥它几乎全部功能。实际上,插入件方式只是传统的客户机/服务器结构的应用在Web上的一种表现形式。

  浏览器访问Web服务器得到嵌有窗口插入件的HTML文档后,浏览器识别出EMBED元素,按它的WIDTH和HEIGHT属性在页面上为插入件预留所需空间,并向Web服务器请求卸载.PBD文件。Web服务器先后向浏览器传递PBD文件的MIME类型(application /vnd. powerbuilder6)和PBD文件。浏览器在其Plugin子目录下,查找并调用NPPBA60.DLL,再由其调用Powerbuilder运行动态库。这样,被插入的子窗口就显示在浏览器规定的位置,并执行其Open事件的处理程序,然后开始响应用户动作,进行事件处理。当用户转到其他Web文档时,PBD文件从内存中被清除。

  用插入件方式开发与普通的Client/Server开发过程大致相同,只是要做一些调整,主要包括:① 嵌入窗口必须是Child 类型,在编程时必须用this,parent等来引用它而不能直接引用它的名字;② 可以使用应用对象内定义的全局变量,但不能使用应用对象的事件;③ 外部文件和所使用的ole控件必须保证在浏览器客户端存在。生成.PBD文件后,挂在Web目录合适的位置。仍以上面例子为例,说明开发过程。首先开发 Powerbuilder应用:

  ① 用application画笔创建一个新应用purchase。

  ② 用window 画笔创建一个child类型窗口wchildpurchase,上面有数据窗口dwproduct用于浏览数据,下拉列表ddlbtype 选择产品类型,按扭cbretrieve来数据检取。

  ③ 数据窗口对象和WEB.PB相同。

  ④ 在wchildpurchase的open 事件中,和应用数据库进行连接。

  Sqlca.database="odbc"

  Sqlca.dbparm="connectstrng='DSN=purchase;UID=dba;PWD=sql"

  Connect using sql;

  ⑤ 在cbretrieve的clicked事件中,进行查询

  parent.dwproduct.retrieve(ddlb1.text)

  完成上述工作后,用project画笔生成purchase..pbd文件,将其移入Web目录中(如..\pbembed目录下),然后编辑HTML文档,嵌入如下代码:

  <P><EMBED SRC=http://www.qqread.com/pb/"../pbembed/purchase.pbd" WIDTH=400 HEIGHT=250

  WINDOW="wchildpurchase"

  APPLICATION="purchase">

  最后,在Web服务器上为插入件设置MIME类型。Web服务器所在的操作系统不同,注册方法也不一样。以WindowsNT为例,启动注册表编辑器(regedt32.exe)并打开HKEYLOCALMACHINE \SYSTEM\CurrentControlSet \Services\InetInfo\Parameters\MimeMa-p,为MIME映射添加值: application/vnd. powerbuilder,5.这样PBD文件就能被正确得传送和下载到浏览器端。

  为了和浏览器环境相协调,最好不要或少从child 子窗口再打开其它窗口。通常在使用中可以多用几个插件(即child 窗口),每个插件完成的功能少一些。对于比较复杂的应用,还可以使用Javascript 来协调插入件之间的同步[3]。

  插入件方式是一种胖客户机方式,客户机端除浏览器外,还必须装有Powerbuilder 动态运行库 ,因此访问受限,对于Internet来说,不太合适。而对于工作环境和要求都已知的Intranet来说较为合适,功能较强,实现起来简便易行,可维护性好。

  五.ActiveX

  Powerbuilder 的ActiveX方式和Plugin方式的原理基本相同,为简便起见,在这里主要说明它们之间的差异。当浏览器从服务器中下载嵌有ActiveX的HTML文档,遇到OBJECT标记时,先预留给定的空间,然后浏览器将查找本地注册的ActiveX控件是否有此注册号,如有就将其直接显示,否则视其安全需要从Web服务器中下载ActiveX控件(在OBJECT 的CODEBASE属性中给出),并在本地机中注册,然后使用。用ActiveX方式进行开发和Plugin 也基本一样,在编辑HTML文档时所用的元素不同(为OBJECT),以上例为例:  

  <P>〈OBJECT ID="purchase" WIDTH=400 HEIGHT=250

  CLASSID="CLSID:CEC58653-C842-11CF-A6FB-0805FA8669E>

  <PARAM NAME="Version",VALUE="65536">

  <PARAM NAME="Extentx",VALUE="9440">

  <PARAM NAME="Extenty" VALUE="7112">

  <PARAM NAME="StockProps" VALUE="0">

  <PARAM NAME="PBWindow" VALUE ="wchildpurchase">

  <PARAM NAME="LibList",VALUE="../pbembed/purchase.pbd>

  <PARAM NAME="PBApplication" VALUE="purchase">

  最后,在Windows 95,Windows NT上使用以下命令注册OCX控件: Regsvr32.exe pbrx60.ocx。

  ActiveX 也是一种胖客户机方式,客户机方除浏览器外还要有PBRX60.OCX和Powerbuilder 动态运行库支持。此外,目前ActiveX仅有Windows 平台的支持,因此ActiveX 目前还不适合用于Internet 开发,而对需求和应用环境已知的Intranet应用比较合适。它与Plugin相比,我们还可以使用pbrx60.ocx的方法TriggerPbevent()和InvokePbfunction()等通过Javascipt和vbscipt和其它ActiveX控件交互,进行更为复杂的控制和开发。在开发中还要注意对浏览器安全选项的设置不能太高,否则无法通过安全检查,另外目前的PBRX60.ocx是针对IE3.0开发的,在IE4.0上使用有跳框现象。

  结束语

  在以上的分析和说明中主要阐述了几种开发方法的原理,开发方法和使用特点,注意事项,在使用时可根据要求和开发环境来进行选择。

进入讨论组讨论。
粤ICP备06119539号
Copyright CiscoSky.Org,Some Rights Reserved.
Email:me1228#tom.com