引:开发Internet/Intranet的应用程序大约有三种不同的形式。实现B/S模式下的复杂程序,可通过选用Delphi 6,通过实现以ActiveX技术为主的Internet/Intranet应用程序来完成。
企业中使用的管理信息系统(简称MIS)系统平台模式主要有以下4种。
* 主机终端模式;
* 文件服务器模式;
* 客户机/服务器模式(Client/Server,简称C/S);
* Web浏览器/服务器模式(Browser/Server,简称B/S)。
主机终端模式由于硬件选择有限,硬件投资得不到保证,已被逐步淘汰。而文件服务器模式只适用小规模的局域网,对于用户多、数据量大的情况就会产生网络瓶颈,特别是在互联网上不能满足用户要求。由于C/S模式开发软件的最大缺点是需要专门的客户端安装程序,分布功能弱。而B/S模式开发的软件无须安装,使此技术得到越来越广泛的应用。
选择B/S模式下复杂程序的实现技术
开发Internet/Intranet的应用程序大约有三种不同的形式:
以HTML为主的应用程序、以Java/JavaScript为主的Internet/Intranet应用程序和以Microsoft的ActiveX技术为主的Internet/Intranet应用程序。
Delphi 6对于以HTML和ActiveX技术为主的应用程序都有着非常强劲的支持。因此我们推荐选用Delphi 6,实现以ActiveX技术为主的Internet/Intranet应用程序,来完成B/S模式下IE中的复杂程序。
建立使用在IE之中的ActiveForm组件
使用Delphi ActiveForm的功能开发一个可以在浏览器中执行的Delphi应用程序。由于ActiveForm可以包含任何Delphi中的VCL组件,所以程序员可以建立一个拥有数据感知能力的ActiveForm组件,具有处理数据的能力,当它使用于IE时,就可以让IE变成能够处理数据的应用系统。
使用Delphi ActiveForm的功能开发一个可以在浏览器中执行的Delphi应用程序时,与通常的Delphi开发应用程序并不相同。Delphi开发在C/S模式下运行的应用程序,通常选择菜单项“File”—〉“New”—〉“Application”,从而建立一个新的project来完成。
开发在B/S模式下运行的应用程序,首先在Delphi 6中关闭所有的项目,接着选择“File”—〉“New”,在New Items对话框中选择建立Active Form。
编程实例
现在我们以实现一个油藏工程方法“产量构成曲线”的ActiveForm为例,实现访问服务器端数据库,并根据数据库中有关数据生成产量构成曲线的功能。在Delphi产生了一个空白的ActiveForm之后,设计这个ActiveForm如下图所示:
此ActiveForm中可根据用户需要加入各种类型的控件。其中,TsocketConnection和TclientDataSet类型的控件提供了连接服务器端程序访问数据库的功能;TpaintBox类型的控件提供了程序画图的容器。设计完ActiveForm后,需要不断调试程序,使之编译通过。
一、分发ActiveForm组件
程序编译通过后,下一步需要做的是把这个ActiveForm分发到Web Server指定的位置。ActiveX组件通常是以 .OCX为后缀的文件,还有以 .INF为后缀的安装信息文件。
在Delphi 6中有一个Web Deploy的功能,它可以帮助程序员把制作完成的ActiveX拷贝到程序员设定的Web Server正确的目录中。具体步骤如下:
1.在Delphi中选择“Project”—〉“Web Deployment Options…”,先设定一些基本的信息。“Target dir”是指ActiveForm要分发的目的地位置。“Target URL”指的是此ActiveX组件于HTML首页中codebase tag的位置。“HTML dir”指的是存这个HTML的首页文件的位置。
2.在程序员正确地输入了上述的信息之后,就可以选择“Project”—〉“Web Deploy”,开始分发ActiveForm组件到Web Server之中,如图2所示。
二、编写 .asp文件调用ActiveX组件
在组件分发的Web Server目录下编写.asp文件,通过.asp文件调用ActiveX组件。在本例中,ycgcrjb_clgc.asp文件中,codebase指出了安装信息文件YCGCRJBP.inf 。
ycgcrjb_clgc.asp文件程序清单如下:
<%@ Language=VBScript %>
<!--#include file="verify.inc"-->
<HTML>
<body><center>
<OBJECT
classid="clsid:D85F42AA-02C2-434B-A8DF-5B7D4B2B9D69"
codebase="./YCGCRJBP.inf"
width=358
height=187
align=center
hspace=0
vspace=0
VIEWASTEXT id=YCGCRJB1>
<param NAME="ip" VALUE="<%=session("rdsip")%>">
</OBJECT>
</BODY>
</HTML>
安装信息文件YCGCRJBP.inf中的YCGCRJBP.ocx就是本例中的ActiveX组件文件。
YCGCRJBP.inf文件程序清单如下:;Delphi-generated INF file for YCGCRJBP.ocx
[Add.Code]
YCGCRJBP.ocx=YCGCRJBP.ocx
midas.dll=midas.dll
[YCGCRJBP.ocx]
file=./YCGCRJBP.cab
clsid={D85F42AA-02C2-434B-A8DF-5B7D4B2B9D69}
RegisterServer=yes
FileVersion=1,0,71,0
[midas.dll]
file=./midas.cab
FileVersion=7,0,4,453
三、在IE中进行测试
现在我们就可以在IE中测试这个ActiveForm是否可以正常工作。当用户使用IE浏览某一内含ActiveX组件的页面时,IE首先会检查客户端的机器之中是否已经注册了这个ActiveX组件,如果没有,那么IE会从Web Server上下载此ActiveX组件,注册并执行它。在本例中,用户只需要在IE的URL处输入.asp文件的地址如下:
10.188.52.36/divs/ycgcrjb_clgc.asp">http://10.188.52.36/divs/ycgcrjb_clgc.asp
则显示“产量构成曲线”程序运行窗口,用户可以反复交互使用。程序运行后显示图3所示界面。
