引:開發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文件的地址如下:
http://10.188.52.36/divs/ycgcrjb_clgc.asp
則顯示“產量構成曲線”程序運行窗口,用戶可以反復交互使用。程序運行後顯示圖3所示界面。