国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Cell插件在J2EE系統中的應用

2019-11-17 05:56:18
字體:
來源:轉載
供稿:網友
[摘要] 在基于J2EE平臺的信息系統中,具有豐富表現能力的java Applet是界面層的一種重要形式。但Java API對打印的支持比較弱,打印輸出復雜的單據和報表需要大量工作。本文介紹的系統通過引入一個ActiveX控件--Cell插件--來解決這個問題。該系統中,由Java Applet完成界面表現,由Cell插件完成打印輸出,兩者之間通過Sun公司的一套接口API互相通信。
  
  一、Java Applet與Ocx控件的交互
  
  1.1從Java Applet訪問Java Script方法和Ocx控件
  
  Sun公司在JDK中提供了一套從Java Applet訪問Java Script的API,由此可以實現Java Applet訪問Html頁面中的DOM對象的機制。該API以一個Jar文件的形式提供:%JAVA_HOME%/jre/lib/jaws.jar,其中%JAVA_HOME%是你安裝JDK的目錄。將該jar文件加入到環境變量classpath中,就可以用它實現從Java Applet到Java Script的調用了。下面是一段調用Java Script中的方法的代碼實例:
  
  import netscape.Javascript.*;
  import java.applet.*;
  import java.awt.*;
  class MyApplet extends Applet {
   public void init() {
     JSObject win = JSObject.getWindow(this);
     JSObject doc = (JSObject) win.getMember("document");
     win.call("f", null);
   }
  }
  在上面的代碼中,win.call(“f”, null)調用了JavaScript中的方法f()。
  
  1.2從JavaScript訪問Java Applet
  
  當使用Java Plugin1.4.x運行Java Applet時,只需把Java Applet中的方法視為Java Plugin這個控件的方法,直接在Java Script中進行調用即可。下面用一個簡單的例子進行說明:
  
  (1) 在載入Java Plugin的Object標簽中,用參數ID指定一個名字:
  
  
  (2) 在HTML頁面上增加一個按鈕,點擊它時從Java Script調用Java Applet中的方法:
  
    onClick="calculate" language="JavaScript">
  (3) 假定你的Java Applet是MyApplet.java,它有一個public方法method1(),那么就可以用如下的Java Script代碼直接調用該方法:
  
  
  二、Cell插件簡介
  
  華表的Cell插件是一個功能非常類似于Excel的、用于Web開發的ActiveX控件。它可以在Windows的瀏覽器中顯示、編輯、打印表格。
  
  三、系統實現
  
  1.1 系統架構
   Cell插件在J2EE系統中的應用(圖一)
  圖一是系統的配置示意圖。由圖可見,這是一個典型的三層應用系統。在本系統中,Java Applet和Cell插件部署在Web Server上,在運行時,它們被下載到客戶端,運行在瀏覽器中。
  
  圖二是系統的運行示意圖。由圖可見,運行在客戶機上的Java Applet通過Web Server上的Servlet訪問應用服務器上的EJB,與后臺交互。Java Applet作為表示層,在客戶機上顯示界面。
  
  當需要打印輸出時,Java Applet將數據和顯示格式設置到華表插件中,并調用華表插件的打印與覽和打印方法,完成打印功能。
  Cell插件在J2EE系統中的應用(圖二)
  1.2 用Cell插件實現Java界面的打印
  
  1.2.1在HTML頁面上嵌入華表的Cell插件
  
  為了在Applet界面中調用華表的Cell插件,我們首先在HTML頁面上隱藏了一個Cell插件:
  
  

  
  通過style="HEIGHT: 0px; WIDTH: 0px"指定Cell插件的高度和寬度都為0,從而達到隱藏Cell插件的目的。
  
  1.2.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插件的打印預覽和打印兩項功能,不用它做屏幕顯示。所有打印格式和數據都在Java Applet中預備好,按單元格向Cell插件設置格式和數據,由Cell插件完成分頁和打印功能。
  
  這是一種表現與數據分離的方式:Java Applet中只組織打印數據,所有打印的表現工作交給Cell插件完成,因此能夠大大降低工作量。
  
  Cell插件除打印功能外,還具有輸入、顯示、編輯、圖表等非常強大的功能,可以制作出非常復雜的報表。利用Cell插件,還可以將數據導出為Excel或PDF等格式的文件。
  
  六、參考文獻
  
  1.    Cell插件文檔:http://www.cellsoft.cc
  
  2.    Java Plugin 文檔:http://java.sun.com/j2se/1.4.1/docs/guide/plugin/

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 延寿县| 清水河县| 石阡县| 澄城县| 福泉市| 东方市| 蒲城县| 沾化县| 乾安县| 石首市| 兰坪| 陆良县| 武冈市| 常熟市| 海兴县| 三都| 江口县| 抚州市| 广元市| 海伦市| 同德县| 东城区| 黄石市| 永嘉县| 宜昌市| 天水市| 新密市| 平昌县| 芦山县| 瑞金市| 南乐县| 金华市| 通化市| 绥滨县| 甘谷县| 逊克县| 额济纳旗| 弋阳县| 双流县| 拉萨市| 常宁市|