一.用Cell插件實現Java界面的打印簡介
(1) 在HTML頁面上嵌入華表的Cell插件;
為了在Applet界面中調用華表的Cell插件,我們首先在HTML頁面上隱藏了一個Cell插件:
<OBJECT id=c style="LEFT: 0px; WIDTH: 828px; TOP: 0px; HEIGHT: 509px"
classid="clsid:3F166327-8030-4881-8BD2-EA25350E574A" VIEWASTEXT>
<PARAM NAME="_Version" VALUE="65536">
<PARAM NAME="_ExtentX" VALUE="17526">
<PARAM NAME="_ExtentY" VALUE="10774">
<PARAM NAME="_StockProps" VALUE="0"></OBJECT>
通過style="HEIGHT: 0px; WIDTH: 0px"指定Cell插件的高度和寬度都為0,從而達到隱藏Cell插件的目的。
(2) 在Applet中提供兩個調用接口方法;
下面是一個Applet的代碼實例,其中提供了callCellMethod()和callJavaScriptMethod()兩個接口方法,分別可用來調用Cell插件的方法和JavaScript的方法:
public class MyApplet extends javax.swing.JApplet {
private JSObject win = null;
private JSObject cell = null;
public Object callCellMethod(String name, Object[] params) {
return getCell().call(name, params);}
public Object callJavaScript(String name, Object[] params) {
return getJSwin().call(name, params);}
private JSObject getCell() {
if (cell == null) {
try {
JSObject doc = (JSObject)getJSwin().getMember("document");
JSObject all = (JSObject)doc.getMember("all");
cell = (JSObject)all.call("item", new Object[]{"DCellWeb1"});}
catch (Exception e) {
e.printStackTrace();} }
return cell;}
private netscape.javascript.JSObject getJSwin() {
if (win == null) {
win = netscape.javascript.JSObject.getWindow(this);}
return win;}}
通過getCell()這個方法,可以在Java Applet中直接獲得用JSObject表示的Cell插件,從而可以直接調用它的方法。例如,在Java Applet中向Cell插件的一個單元格寫入數據,可以如下調用:
Integer row = new Integer(1);
Integer column = new Integer(1);
Integer page = new Integer(0);
callCellMethod("SetCellString", new Object[]{column, row, page, “str”});
其中SetCellString是Cell插件提供的接口方法。這樣就實現了從Java Applet到華表的Cell插件的調用。
二.Cell插件如何實現客戶端與服務端的數據交換:
(1) 添加CELL插件至網頁中:
具體方法請參閱一
(2) 從服務器端讀取數據:
A. 打開報表模板:
在這里之所以在請求XML數據前要先有打開報表模板,是因為如果將報表樣式都存放在XML數據中,勢必會增加XML數據量,一方面影響網頁的運行速度;另一方面,一旦更改報表樣式后,就得修改程序代碼,從而增加程序開發和代碼維護的工作量;而在模板中存放報表格式,查詢報表時先打開模板,上傳數據和下傳數 據時只需傳送實際的報表數據,從而大大減少傳送數據量和工作量;模板文件可以通過外部程序(可以使用CELL自帶的報表設計器)設計,模板文件存放至服務器端的某個虛擬目錄下,使用CELL的OpenFile方法打開,文件路徑可以是相對路徑。
B. 服務器端生成XML數據并發送給客戶端:
客戶端打開模板后,根據查詢要求向服務器端發送請求,服務器端接收到請求后,組織XML數據,再發送給客戶端;
B. 客戶端接收XML數據,分析、填充至CELL中:
(3) 保存數據到服務器端:
四:Cell插件如何分發
分發 Cell 插件需要分發2個 OCX 文件,1個 DLL 文件, 可以通過Cab包的形式供客戶端下載安裝。
posted on 2007-05-28 13:21
天問 閱讀(1429)
評論(0) 編輯 收藏