?? cell.html
字號:
<!-- saved from url=(0022)http://internet.e-mail -->
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft FrontPage 4.0">
<TITLE>關于CellWeb插件中文件打開、上傳、以及導入數據庫中的問題</TITLE>
<style>
<!--
p { font-size: 16px }
-->
</style>
</HEAD>
<BODY leftmargin=0 topmargin=0>
<div style="background-color: #99CCFF; border-bottom: 1 solid #C0C0C0;">
<p align=left>Cell 組件/插件</p>
<p align=left style="margin:0"><b>關于CellWeb插件中文件打開、上傳、以及導入數據庫中的問題</b></p>
</div>
<h4>關鍵字: </h4>
<P
align=left>Request,BinaryRead,CreateObject,ADODB.Connection,ADODB.Recordset,ADODB.Stream,SaveToFile,AppendChunk,CellWeb,OpenFile,Uploadfile </P>
<h4>引言:</h4>
<P
align=left>用友華表CellWeb插件在提供強大的報表功能的同時,在數據于服務器與客戶端之間的傳送上也具有很強的功能,為開發(fā)者提供有效便利的操作平臺。下面實例實現了打開服務器端或本地文件,自動上傳cell文件并保存于服務器端的Access數據庫中或者指定目錄中,可以在WEB環(huán)境下實現類似單機環(huán)境下操作文件的效果。
</P>
<h4>正文:(本文以ASP ,VbScript,Access數據庫為例)</h4>
<P align=left>用友華表CellWeb插件提供了兩個方法:</P>
<menu>
<li><b>
OpenFile</b></li>
<li><b>UploadFile</b></li>
</menu>
<P align=left>客戶端利用插件的 OpenFile
方法可以打開本地的或服務器端的華表文件。</P>
<P align=left>客戶端利用插件的 UploadFile
方法可以把客戶端編輯好的華表文件上傳到服務器端,服務器端讀取上傳的華表文件的二進制流,可以把它保存到數據庫的二進制字段中,也可以保存到服務器端指定的目錄下。這樣就可以實現客戶端與服務器的交互了。</P>
<P align=left> </P>
<h5>客戶端示例代碼:</h5>
<P align=left>通過插件的 OpenFile , UploadFile方法實現文件操作 </P>
<blockquote>
<P><code><font color="#000080"><SCRIPT LANGUAGE=vbscript><br>
<!--<br>
</font><font color="#008000">'打開文件對話框,選擇文件</font><font color="#000080"><br>
Sub button1_onclick<br>
CellWeb1.OpenFile "","" <br>
End Sub<br>
<br>
</font><font color="#008000">'把文件上傳給服務器,服務器端HBUpload.asp進行處理</font><font color="#000080"><br>
Sub button2_onclick<br>
CellWeb1.UploadFile "HBUpload.asp"<br>
End Sub<br>
<br>
</font><font color="#008000">'打開服務器端虛擬根目錄下*.cll文件</font><font color="#000080"><br>
Sub button3_onclick<br>
CellWeb1.OpenFile "HBUpload.cll", ""<br>
End Sub<br>
--><br>
</SCRIPT></font></code> </P>
</blockquote>
<h5>服務器端代碼: </h5>
<P align=left>下面是服務器端的 HBUpload.asp 的實現代碼: </P>
<blockquote>
<P align=left><code><font color="#000080"><span style="background-color: #FFFF00"><% </span><br>
<br>
Const adTypeBinary = 1<br>
const adSaveCreateOverWrite = 2<br>
<br>
</font><font color="#008000"> '當緩沖頁輸出時,只有當前頁的所有服務器腳本處理完畢或者調用了End方法后,服務器才將響應發(fā)送給客戶端 <br>
</font><font color="#000080"> Response.Buffer = true <br>
<br>
'接收客戶發(fā)來的文件流<br>
UpFile=Request.BinaryRead(Request.TotalBytes)<br>
<br>
</font><font color="#008000"> '***************************************************************************<br>
' 保存到數據庫中<br>
'***************************************************************************<br>
'建立與access數據庫的連接 <br>
</font><font color="#000080"> Set objConn = Server.CreateObject("ADODB.Connection")<br>
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("HBUpload.MDB")<br>
<br>
objConn.Open ConnStr<br>
<br>
</font><font color="#008000"> '打開OLE字段,將數據寫入數據庫 <br>
</font><font color="#000080"> Set objRs = Server.CreateObject("ADODB.Recordset")<br>
strSQL = "SELECT * FROM HBUpload WHERE(CELLFILE is null)"<br>
objRs.Open strSQL, objConn, 1, 3<br>
objRs.AddNew<br>
objRs("CELLFILE").AppendChunk(UpFile)<br>
objRs.Update<br>
objRs.Close<br>
objConn.Close<br>
Set objRs = Nothing<br>
Set objConn = Nothing<br>
<br>
</font><font color="#008000"> '********************************************<br>
'保存到磁盤文件,通過流將數據保存成文件<br>
'********************************************<br>
</font><font color="#000080"> Set objStream=Server.CreateObject("ADODB.Stream")<br>
objStream.Open<br>
objStream.Type=adTypeBinary<br>
objStream.Write UpFile<br>
objStream.SaveToFile Server.MapPath("HBUpload.cll"), adSaveCreateOverWrite<br>
objStream.Close<br>
Set objStream = Nothing<br>
<br>
<span style="background-color: #FFFF00">%></span></font></code> </P>
</blockquote>
<p>以上服務器端代碼并未考慮是否第一次保存,如果是的話,那么在數據庫中新建一個記錄保存上傳的文件,如果不是第一次保存,那么應該是修改以前保存的記錄。<br>
</p>
<h4>總結:</h4>
<P align=left>本文簡單的介紹了用友華表CellWeb插件的 OpenFile
與 UploadFile 方法實現文件在客戶與服務器之間操作,通過二進制流實現與數據庫間的存取,希望對你的工作有所幫助。<STRONG>
</STRONG>
<h4 align=left><strong>系統(tǒng)要求</strong><strong>:</strong></h4>
<ul>
<li>
<p align="left">CellWeb 插件:5.1.4.510及以上的版本。</li>
<li>
<p align="left">ADO:2.5及以上的版本。</li>
</ul>
<h4 align="left">示例代碼:</h4>
<p align="left">為了更生動地說明以上方法的效果,這里給出一個范例源代碼。范例源碼可從<a href="http://www.cellsoft.cc/ufhbsite/demo/HBUpload.zip">這里</a>下載。<p align="left">最新版Cell控件試用版從<a href="http://www.cellsoft.cc/ufhbsite/demo/cell50_cn.exe"><font color="#0000ff"><u>這里</u></font></a>下載。<br>
<p align="left">
<div>
<hr>
<p><a href="mailto:bhbsupport@ufsoft.com.cn">將文檔反饋發(fā)送給 北京用友華表軟件技術有限公司</a></p>
<!--Copyright-->
<p>© 2004 北京用友華表軟件技術有限公司。保留所有權利。</p>
</div>
<!--結束頁腳-->
</BODY>
</HTML>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -