背景
當(dāng)前一個(gè)web橫行的時(shí)代,無(wú)論辦公還是個(gè)人事務(wù)處理,無(wú)處不有Web的滲透。對(duì)于企業(yè)級(jí)的信息平臺(tái)也早已被web霸占。對(duì)于MES系統(tǒng)等大型的企業(yè)信息平臺(tái),生產(chǎn)數(shù)據(jù)部分是必不可少的。
如何在MES等信息系統(tǒng)中集成生產(chǎn)數(shù)據(jù)管理,全部重新開發(fā)?包括流程圖繪制、實(shí)時(shí)\歷史報(bào)表、報(bào)警處理、趨勢(shì)分析、統(tǒng)計(jì)數(shù)據(jù)等,對(duì)于任何一種開發(fā)平臺(tái)來(lái)說(shuō),即使有現(xiàn)成的組件,工作量也是巨大的。有沒有一種更合理的解決方案,做到既節(jié)省工作量、又使功能模塊更加合理,下面提供這樣一種方案。
實(shí)現(xiàn)思路
生產(chǎn)數(shù)據(jù)管理是實(shí)時(shí)數(shù)據(jù)庫(kù)的優(yōu)勢(shì),各種功能組件都已集成,并且針對(duì)于生產(chǎn)。
紫金橋?qū)崟r(shí)數(shù)據(jù)庫(kù)提供“瘦客戶端”,可以在web頁(yè)面中嵌入具有授權(quán)簽名的ActiveX,實(shí)現(xiàn)在IE瀏覽器中瀏覽服務(wù)器中的畫面信息和數(shù)據(jù)信息。瀏覽靈活,并且與實(shí)際服務(wù)器中所有的內(nèi)容一致。
既然如此,何不將生產(chǎn)數(shù)據(jù)部分交給實(shí)時(shí)數(shù)據(jù)庫(kù)?
如何將兩個(gè)系統(tǒng)集成一體?
有三種方式可供參考:
1.直接通過(guò)鏈接方式,打開指定的紫金橋?qū)崟r(shí)數(shù)據(jù)庫(kù)web頁(yè)面。
2.通過(guò)Frame框架方式,做到紫金橋?qū)崟r(shí)數(shù)據(jù)庫(kù)web頁(yè)面嵌入到網(wǎng)頁(yè)中。
3.通過(guò)iFrame框架方式,能過(guò)在網(wǎng)頁(yè)的任意表格內(nèi)顯示實(shí)時(shí)數(shù)據(jù)庫(kù)web頁(yè)面。
具體實(shí)現(xiàn)
1.直接鏈接
紫金橋?qū)崟r(shí)數(shù)據(jù)庫(kù)發(fā)布的頁(yè)面可以實(shí)現(xiàn)每個(gè)畫面對(duì)應(yīng)一個(gè)web瀏覽的URL。只需將工程目錄下的default.htm(或者index.htm)文件復(fù)制一份,命名,比如report.htm。修改如下網(wǎng)頁(yè)源代碼:
<param name="ViewName" value="DRAW1">
將其中的DRAW1改為需要瀏覽的窗口名。比如:
<param name="ViewName" value="報(bào)表">
這樣就可以通過(guò)打開http://服務(wù)器IP地址/虛擬目錄/report.htm直接瀏覽報(bào)表窗口。
這里要求服務(wù)器IP地址必須使用自指定方式。以防止多個(gè)實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)瀏覽時(shí)出現(xiàn)沖突。
網(wǎng)頁(yè)中直接調(diào)用該URL就可以,比如:
<a href="http://服務(wù)器IP地址/虛擬目錄/report".htm >生產(chǎn)報(bào)表</a>
2.利用Frame
Frame是一種網(wǎng)頁(yè)切分技術(shù),能夠?qū)崿F(xiàn)在一個(gè)頁(yè)面框架中,同時(shí)打開多個(gè)子頁(yè)面。
下面是一個(gè)簡(jiǎn)單的使用Frame框架的示例。
<html>
<frameset rows="10%,50%">
<frame src="/example/html/frame_a.html">
<frameset cols="20%,75%">
<frame src="/example/html/frame_b.html">
<frame src="http://192.168.1.16/ RealforIE //realReport.htm " name="showframe">
</frameset>
</frameset>
</html>
每個(gè)Frame框架內(nèi)都可以調(diào)用單獨(dú)的網(wǎng)頁(yè),同一個(gè)主框架內(nèi)的頁(yè)面可以操作其他子框架內(nèi)打開的網(wǎng)頁(yè),比如上例中frame_b.html的源碼如下:
<html>
<body>
<a target ="showframe">報(bào)表</a><br />
<a href =" http://192.168.1.16/RealforIE/curve.htm" target ="showframe">趨勢(shì)</a>
<a target ="showframe">報(bào)警</a>
</body>
</html>
這樣就能夠?qū)崿F(xiàn)在frame_b.html點(diǎn)擊【報(bào)表】、【趨勢(shì)】、【報(bào)警】三個(gè)鏈接,控制在Showframe子框架內(nèi)調(diào)用對(duì)應(yīng)的紫金橋?qū)崟r(shí)數(shù)據(jù)庫(kù)web頁(yè)面。
效果如下:

3.利用iFrame
iFrame是一種內(nèi)聯(lián)框架(即行內(nèi)框架)。相比Frame框架,iFrame要更靈活些,可以在網(wǎng)頁(yè)內(nèi)的任意表格內(nèi)嵌入。
a.網(wǎng)頁(yè)中建立內(nèi)嵌的iFrame,比如:
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="650" height="552" align="left" valign="top"><iframe src="show.htm" name="showframe"
style="height: 91%; width: 99%" id="I1"></iframe></td>
</tr>
</table>
這樣就在網(wǎng)頁(yè)中嵌入了名為“showframe”的iFrame。
b.控制iFrame中顯示的網(wǎng)頁(yè),比如:
直接打開:修改上述代碼中的src="show.htm",改為:
src=" http://192.168.1.16/RealforIE/lct.htm "
這樣就可以在頁(yè)面打開時(shí),直接加載。
通過(guò)鏈接控制:
<a target ="showframe">流程畫面</a>



其中左下角的直方圖和餅圖部分也是iFrame調(diào)用,頁(yè)面打開時(shí)直接加載。右側(cè)部分的訪問(wèn)內(nèi)容,可以通過(guò)導(dǎo)航來(lái)切換。
iFrame方式雖然靈活,但對(duì)于一些老的瀏覽器,并不能支持iFrame框架,這個(gè)在使用時(shí)需要注意。
總結(jié)
上述三種調(diào)用方式實(shí)現(xiàn)的根本是紫金橋?qū)崟r(shí)數(shù)據(jù)庫(kù)web發(fā)布可以實(shí)現(xiàn)每個(gè)畫面的單獨(dú)瀏覽,每個(gè)畫面提供對(duì)應(yīng)的URL,其他系統(tǒng)調(diào)用時(shí)非常簡(jiǎn)單,并且不區(qū)分系統(tǒng)開發(fā)的平臺(tái),.Net開發(fā)或者Java等,實(shí)現(xiàn)方式都是一樣。
生產(chǎn)數(shù)據(jù)部分有紫金橋?qū)崟r(shí)數(shù)據(jù)庫(kù)實(shí)現(xiàn),發(fā)揮了實(shí)時(shí)數(shù)據(jù)庫(kù)平臺(tái)的優(yōu)勢(shì),降低了開發(fā)難度和成本。整個(gè)信息化系統(tǒng)內(nèi)部劃分清晰明確,易于維護(hù);整體集成度高,功能豐富全面,既有管理,又有生產(chǎn),是實(shí)現(xiàn)兩化融合、系統(tǒng)集成的優(yōu)質(zhì)解決方案。