java桌面程序集成报表功能一例

阅读更多
时至今日,java技术不仅被广泛应用在服务器端、手机、pda,而且,越来越多的桌面应用也开始采用java技术来构建。但如何使java桌面程序具备报表设计、预览、打印、导出功能,可供选择的方案不多,本文以纯java报表工具---杰表( www.jatools.com)为例介绍这方面的内容,供广大网友参考。

一、问题的提出
就客户的需求而言,java桌面程序可以以两种模式来使用报表: 单机模式与C/S模式。如下图所示:


单机模式不需要配置一台报表服务器,报表的生成,预览,打印,导出完全由客户端程序完成。这种模式适用于小的应用,优点是安装方便(如果配合hsqldb这种java数据库,一般解压就可以),报表生成效率极高(不需要页面信息流的传输)。缺点是不能兼顾web客户。

c/s模式,需要配置一台报表服务器,用于生成报表,并向客户端发送页面信息。Java桌面程序只负责显示,打印,导出等工作。这种模式优点是有利于报表模板的集中管理,有利于兼顾web方式浏览报表的需求。缺点是安装配置的工作量大。

实际上,在单机模式下,客户端程序本身就携带了报表生成引擎,只不过在c/s模式下,这个报表引擎被抽取出来,置于一台j2ee应用服务器上。
 
二、问题的解决
针对上述两种模式,杰表sdk提供了两个报表预览面板类:ZReportPreviewer(单机)、ZReportBrowser(c/s模式) ,这两个类都是从面板类(java.swing.JPanel)继承,所以您可以将其置于对话框对象(JDialog)的任何位置。

这两个面板,从外观上看是没有区别的, 面板可以有工具栏,用于打印、导出、页面导航、缩放等,如图所示:


单机模式下使用报表面板(ZReportPreviewer)
... ...
// 初始化预览面板
ZReportPreviewer previewer = new ZReportPreviewer();
// previewer.showToolbar(true);// 显示工具栏
ZReportDocument doc = ZReportDocument.load(“d:/test.xml”);// 取得一个报表模板对象
previewer.setDocument(doc); // 显示该报表模板
JDialog d= new JDialog();
d.getContentPane().add(previewer,BorderLayout.CENTER);
d.show();
... ...

C/S模式下使用报表面板(ZReportBrowser)
... ...
// 初始化预览面板
ZReportBrowser browser = new ZReportBrowser();
// browser.showToolbar(false);// 不显示工具栏
// 向j2ee应用服务器请求报表
browser.browse(“http://localhost:8080/jrs/server?file=test.xml”);
JDialog d= new JDialog();
d.getContentPane().add(browser,BorderLayout.CENTER);
d.show();
... ...


点击此处下载 杰表sdk

你可能感兴趣的:(Java,设计模式,应用服务器,C#,C++)