帝国软件
  设为首页 加入收藏 关于我们
 
解密帝国网站管理系统
栏 目:
 
您的位置:首页 > 技术文档 > JAVA编程
Cell插件在J2EE系统中的应用
作者:佚名 发布时间:2005-04-02 来源:不详
 
  [摘要] 在基于J2EE平
种重要形式。但Java API对
文介绍的系统通过引入一个
Applet完成界面表现,由Ce
信。
台的信息系统中,具有丰富表现
打印的支持比较弱,打印输出复
ActiveX控件--Cell插件--来解
ll插件完成打印输出,两者之间

能力的Java Applet是界面层的一
杂的单据和报表需要大量工作。本
决这个问题。该系统中,由Java
通过Sun公司的一套接口API互相通


  一、Java Applet与Ocx控件的交互                                  

  1.1从Java Applet访问Java Script方法和Ocx控件      

  Sun公司在JDK中提供了
Applet访问HTML页面中的DO
%JAVA_HOME%jrelibjaws
环境变量classpath中,就
调用Java Script中的方法
一套从Java Applet访问Java Sc
M对象的机制。该API以一个Jar
.jar,其中%JAVA_HOME%是你安
可以用它实现从Java Applet到J
的代码实例:
ript的API,由此可以实现Java
文件的形式提供:
装JDK的目录。将该jar文件加入到
ava Script的调用了。下面是一段


  import netscape.javascript.*;                    
  import java.applet.*;                                    
  import java.awt.*;                                          
  class MyApplet extends Applet {                
   public void init() {                            
   JSObject wi
n = JSObject.getWindow(this)
;
   JSObject doc = (JSObjec
t) win.getMember("document");
   win.call("f", null);                    
   }                                                                  
  }                                                                            
  在上面的代码中,win.call(“f”,
null)调用了JavaScript中的方法f()。

  1.2从JavaScript访问Java Applet                        

  当使用Java Plugin1.4
Plugin这个控件的方法,直
明:
.x运行Java Applet时,只需把J
接在Java Script中进行调用即

ava Applet中的方法视为Java
可。下面用一个简单的例子进行说


  (1) 在载入Java Plugin的Object标
签中,用参数ID指定一个名字:

  
  CLASSID="CLSID:8AD9C840-044E-11d1-B3E9-00805F499D93">

  

  ...                                                                        
  

  (2) 在HTML页面上增加
一个按钮,点击它时从Java Scr
ipt调用Java Applet中的方法:

   name="Button1" value="Start
"
  onClick="calculate" language="JavaScript">

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

  

  二、Cell插件简介                                                          

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


  三、系统实现                                                                  

  1.1 系统架构                                                              
  

  图一是系统的配置示意
Java Applet和Cell插件部
器中。
图。由图可见,这是一个典型的
署在Web Server上,在运行时,

三层应用系统。在本系统中,
它们被下载到客户端,运行在浏览


  图二是系统的运行示意图。由图可见
的Servlet访问应用服务器上的EJB,与后
界面。
,运行在客户机上的Java Applet通过Web Server上
台交互。Java Applet作为表示层,在客户机上显示


  当需要打印输出时,Ja
的打印与览和打印方法,完
va Applet将数据和显示格式设
成打印功能。
置到华表插件中,并调用华表插件

  

  1.2 用Cell插件实现Java界面的打印                                  

  1.2.1在HTML页面上嵌入华表的Cell插件                              

  为了在Applet界面中调
用华表的Cell插件,我们首先在
HTML页面上隐藏了一个Cell插件:

  030-4881-8BD2-EA25350E574A

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


  


  


  


  


  


  通过style="HEIGHT: 0
藏Cell插件的目的。
px; WIDTH: 0px"指定Cell插件

的高度和宽度都为0,从而达到隐


  1.2.2 在Applet中提供两个调用接口方法                              

  下面是一个Applet的代码实例,其中
两个接口方法,分别可用来调用Cell插件
提供了callCellMethod()和callJavaScriptMethod()
的方法和JavaScript的方法:

  public class MyApple
t extends javax.swing.JApple
t {

  private JSObject win = null;                      

  private JSObject cell = null;                    

                                                                               

  public Object callCe
llMethod(String name, Object
[] params) {

   return getCell().call(nam
e, params);

  }                                                                            

                                                                               

  public Object callJa
vaScript(String name, Object
[] params) {

   return getJSwin().call(na
me, params);

  }                                                                            

                                                                               

  private JSObject getCell() {                      

   if (cell == null) {                          

   try {                                        

   JSObject do
;
c = (JSObject)getJSwin().getMember("document")


  
JSObject all = (JSObject)do
c.getMember("all");

  
t[]{"DCellWeb1"});
cell = (JSObject)all.call("

item", new Objec


   }                                                

   catch (Exception e) {        

   e.printStac
kTrace();

   }                                                

   }                                                              

   return cell;                                        

  }                                                                            

                                                                               

  private netscape.javascript.JSOb
ject getJSwin() {

   if (win == null) {                            

   win =
netscape.javascript.JSObject
.getWindow(this);

   }                                                              

   return win;                                          

  }                                                                            

  }                                                                            

  通过getCell()这个方
从而可以直接调用它的方法
以如下调用:
法,可以在Java Applet中直接
。例如,在Java Applet中向Cel

获得用JSObject表示的Cell插件,
l插件的一个单元格写入数据,可



   Intege
r row = new Integer(1);


   Intege
r column = new Integer(1);


   Intege
r page = new Integer(0);

   callCellMethod("Se
“str”});
tCellString", new Object[]{column, row, page,


  其中SetCellString是C
Cell插件的调用。
ell插件提供的接口方法。这样

就实现了从Java Applet到华表的


  五、结论                                                                      

  在这个应用系统中,我
。所有打印格式和数据都在
Cell插件完成分页和打印功
们只利用Cell插件的打印预览和
Java Applet中准备好,按单元
能。
打印两项功能,不用它做屏幕显示
格向Cell插件设置格式和数据,由


  这是一种表现与数据分离的方式:Ja
交给Cell插件完成,因此能够大大降低工
va Applet中只组织打印数据,所有打印的表现工作
作量。

  Cell插件除打印功能外
非常复杂的报表。利用Cell
,还具有输入、显示、编辑、图
插件,还可以将数据导出为Exce
表等非常强大的功能,可以制作出
l或PDF等格式的文件。

  六、参考文献                                                                  

  1. Cell插件文档:http://ww
w.cellsoft.cc

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

  
评论】【加入收藏夹】【 】【打印】【关闭
※ 相关链接
 ·Cell插件在J2EE系统中的应用  (2005-03-12)

   栏目导行
  PHP编程
  ASP编程
  ASP.NET编程
  JAVA编程
   站点最新
·致合作伙伴的欢迎信
·媒体报道
·帝国软件合作伙伴计划协议
·DiscuzX2.5会员整合通行证发布
·帝国CMS 7.0版本功能建议收集
·帝国网站管理系统2012年授权购买说
·PHPWind8.7会员整合通行证发布
·[官方插件]帝国CMS-访问统计插件
·[官方插件]帝国CMS-sitemap插件
·[官方插件]帝国CMS内容页评论AJAX分
   类别最新
·谈谈JDBC
·JDBC专题介绍
·JDBC接口技术
·利用weblogic的POOL(连接池)连接
·Jsp中调用Oracle存储过程的小例子
·JSP数据库操作例程
·JSP数据库连接大全
·用连接池提高Servlet访问数据库的效
·一种简单JDBC连接池的实现
·数据库连接池Java实现小结
 
关于帝国 | 广告服务 | 联系我们 | 程序开发 | 网站地图 | 留言板 帝国网站管理系统