快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

葡京娱乐场7098app:Cell插件在J2EE系统中的应用



Cell插件在J2EE系统中的利用(用友公司.赵继江)

bruce 收拾 (介入分:55808,专家分:990)颁发:2003-2-10 下昼1:25版本:1.0涉猎:222次

[择要] 在基于J2EE平台的信息系统中,具有富厚体现能力的Java Applet是界面层的一种紧张形式。但Java API对打印的支持对照弱,打印输出繁杂的单据和报表必要大年夜量事情。本文先容的系统经由过程引入一个ActiveX控葡京娱乐场7098app件--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%jrelibjaws.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 从JavaSc葡京娱乐场7098appript造访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中的措施:

(3) 假定你的Java Applet是MyApplet.java,它有一个public措施method1(),那么就可以用如下的Java Script代码直接调用该措施:

function calculate() {

document.. MyPlunin.method1()

}

二、Cell插件简介

华表的Cell插件是一个功能异常类似于Excel的、用于Web开拓的ActiveX控件。它可以在Windows的浏览器中显示、编辑、打印表格。

三、系统实现

1.1 系统架构

上图是系统的设置设置设备摆设摆设示意图。由图可见,这是一个范例的三层利用系统。在本系统中,Java Applet和Cell插件支配在Web Server上,在运行时,它们被下载到客户端,运行在浏览器中。

下图是系统的运行示意图。由图可见,运行在客户机上的Java Applet经由过程Web Server上的Servlet造访利用办事器上的EJB,与后台交互。Java Applet作为表示层,在客户机上显示界面。

当必要打印输出时,Java Applet将数据和显示款式设置到华表插件中,并调用华表插件的打印与览和打印措施,完成打印功能。

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 葡京娱乐场7098appJSObject win = null;private JSObject cell = null;public葡京娱乐场7098app 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插件文档:h葡京娱乐场7098appttp://www.cellsoft.cc

2.Java Plugin 文档:http://java.sun.com/j2se/1.4.1/docs/guide/plugin/

赵继江

2003年1月

北京用友华表软件技巧有限公司

Cell Software Inc.

地址:北京海淀区上地五街16号华胜大年夜厦(100085)

电话:86-10-62969038/39/40/41/42/43/44-113

传真:86-10-62981666

Mobile:13693299262

Web: http://www.cellsoft.cc

您可能还会对下面的文章感兴趣: