• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Cell插件在J2EE系統中的應用

    發布: 2007-6-06 17:13 | 作者: 網絡轉載 | 來源: 網絡 | 查看: 67次 | 進入軟件測試論壇討論

    領測軟件測試網 MILY: 宋體; mso-bidi-font-size: 10.0pt; mso-hansi-font-family: Times New Roman; mso-ascii-font-family: Times New Roman">在基于J2EE平臺的信息系統中,具有豐富表現能力的Java Applet是界面層的一種重要形式。但Java API對打印的支持比較弱,打印輸出復雜的單據和報表需要大量工作。本文介紹的系統通過引入一個ActiveX控件--Cell插件--來解決這個問題。該系統中,由Java Applet完成界面表現,由Cell插件完成打印輸出,兩者之間通過Sun公司的一套接口API互相通信。

    一、Java AppletOcx控件的交互

    1.1Java Applet訪問Java Script方法和Ocx控件

    Sun公司在JDK中提供了一套從Java Applet訪問Java ScriptAPI,由此可以實現Java Applet訪問HTML頁面中的DOM對象的機制。該API以一個Jar文件的形式提供:%JAVA_HOME%\jre\lib\jaws.jar,其中%JAVA_HOME%是你安裝JDK的目錄。將該jar文件加入到環境變量classpath中,就可以用它實現從Java AppletJava 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.2JavaScript訪問Java Applet

    當使用Java Plugin1.4.x運行Java Applet時,只需把Java Applet中的方法視為Java Plugin這個控件的方法,直接在Java Script中進行調用即可。下面用一個簡單的例子進行說明:

    (1) 在載入Java PluginObject標簽中,用參數ID指定一個名字:

    <OBJECT ID="MyPlunin" WIDTH=500 HEIGHT=120
    
    
    CLASSID="CLSID:8AD9C840-044E-11d1-B3E9-00805F499D93">
    
    
    <PARAM NAME="code" value="MyApplet.class">
    
    
    ...
    
    
    </OBJECT>
    
    

    (2) HTML頁面上增加一個按鈕,點擊它時從Java Script調用Java Applet中的方法:

    <input type="button" name="Button1" value="Start"
    
    
    onClick="calculate" language="JavaScript">
    
    

    (3) 假定你的Java AppletMyApplet.java,它有一個public方法method1(),那么就可以用如下的Java Script代碼直接調用該方法:

    <SCRIPT language="JavaScript">
    
    
           function calculate() {
    
    
                           document.. MyPlunin.method1()
    
    
           }
    
    
    </SCRIPT>
    
    

    二、Cell插件簡介

    華表的Cell插件是一個功能非常類似于Excel的、用于Web開發ActiveX控件。它可以在Windows的瀏覽器中顯示、編輯、打印表格。

    三、系統實現

    1.1 系統架構

     

    圖一是系統的配置示意圖。由圖可見,這是一個典型的三層應用系統。在本系統中,Java AppletCell插件部署在Web Server上,在運行時,它們被下載到客戶端,運行在瀏覽器中。

    圖二是系統的運行示意圖。由圖可見,運行在客戶機上的Java Applet通過Web Server上的Servlet訪問應用服務器上的EJB,與后臺交互。Java Applet作為表示層,在客戶機上顯示界面。

    當需要打印輸出時,Java Applet將數據和顯示格式設置到華表插件中,并調用華表插件的打印與覽和打印方法,完成打印功能。

    1.2 Cell插件實現Java界面的打印

    1.2.1HTML頁面上嵌入華表的Cell插件

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

    <OBJECT classid=clsid:3F166327-8030-4881-8BD2-EA25350E574A

    id=DCellWeb1   style="HEIGHT: 0px; WIDTH: 0px">

    <PARAM NAME="_Version" VALUE="65536">

    <PARAM NAME="_ExtentX" VALUE="14902">

    <PARAM NAME="_ExtentY" VALUE="6075">

    <PARAM NAME="_StockProps" VALUE="0">

    </OBJECT>

    通過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”});

    其中SetCellStringCell插件提供的接口方法。這樣就實現了從Java Applet到華表的Cell插件的調用。

    五、結論

    在這個應用系統中,我們只利用Cell插件的打印預覽和打印兩項功能,不用它做屏幕顯示。所有打印格式和數據都在Java Applet中準備好,按單元格向Cell插件設置格式和數據,由Cell插件完成分頁和打印功能。

    這是一種表現與數據分離的方式:Java Applet中只組織打印數據,所有打印的表現工作交給Cell插件完成,因此能夠大大降低工作量。

    Cell插件除打印功能外,還具有輸入、顯示、編輯、圖表等非常強大的功能,可以制作出非常復雜的報表。利用Cell插件,還可以將數據導出為ExcelPDF等格式的文件。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: cell j2ee 插件 系統 應用 中的


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>