隨筆 - 12  文章 - 0  trackbacks - 0
          <2007年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          我參與的團隊

          隨筆檔案

          搜索

          •  

          最新評論

           

          一.用Cell插件實現Java界面的打印簡介

          (1) 在HTML頁面上嵌入華表的Cell插件;

          為了在Applet界面中調用華表的Cell插件,我們首先在HTML頁面上隱藏了一個Cell插件:

          &ltOBJECT id=c style="LEFT: 0px; WIDTH: 828px; TOP: 0px; HEIGHT: 509px"

          classid="clsid:3F166327-8030-4881-8BD2-EA25350E574A" VIEWASTEXT>

          &ltPARAM NAME="_Version" VALUE="65536">

          &ltPARAM NAME="_ExtentX" VALUE="17526">

          &ltPARAM NAME="_ExtentY" VALUE="10774">

          &ltPARAM 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)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 临沭县| 蚌埠市| 岐山县| 苗栗县| 泾阳县| 长海县| 明光市| 北碚区| 安顺市| 玛曲县| 永丰县| 涡阳县| 越西县| 镇远县| 玉溪市| 石渠县| 四会市| 浙江省| 徐汇区| 乳源| 长武县| 临武县| 睢宁县| 沿河| 百色市| 延寿县| 阿图什市| 岑溪市| 浦东新区| 平昌县| 东城区| 博爱县| 维西| 新巴尔虎左旗| 龙泉市| 农安县| 乐安县| 郴州市| 全州县| 安多县| 叶城县|