论坛首页 Java企业应用论坛

BS系统自定义报表插件

浏览 9521 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-09-06  

之前发的一个非ie内核浏览器支持activex的文章里提到了自定义报表插件,现在我将自定义报表发出来与大家分享下。
原文章地址http://xhanhan.iteye.com/admin/blogs/1670857

之前做桌面应用开发时,一直使用FastReport处理报表打印,FastReport友好灵活的设计界面,动态绑定多数据源等形式,可大大提高开发效率。

于是脑子里冒出了一个想法,如果fastreport可以用在BS项目中,那么处理客户的自定义报表的需求真是非常之方便。萌生了这个想法后,马上着手进行开发。

开发过程中偶然发现FastReport竟然有一套ClientServer控件,它的功能就是客户机读取服务器上的报表文件进行预览和打印,我擦~~~~这么来说我只需客户端封装一个activex控件不就能实现了么,这也太~~~~~~简单了吧。但是后来考虑了下,这样的话服务器端必须运行一个server端程序,就只局限于windows操作系统了。所以果断pass了这个方案。

FastReport的ClientServer控件


最后决定服务器端还是由java来实现,客户端通过activex进行调用。大家都知道FastReport是通过读取fr3报表模板文件来显示和打印报表的。在BS架构程序中,这些报表模板文件肯定是要存放在服务器上。所以我采用了文件流传送模式,客户端发起请求,服务器将模板文件以流的形式发送给客户端activex控件,然后fastreport直接打开流,进行报表编辑,预览和打印等操作。同时客户端如果对报表进行了自定义后也会以流的形式传回服务器,然后服务器会更新相应的报表文件。

现在客户可以编辑报表了,最关键的问题来了,报表里的数据怎么获取呢?我们都知道在delphi中FastReport是以DateSet作为数据源来显示打印数据的。java里没有DateSet啊,这可让老衲如何是好~~~~~

后来上网搜了些资料,发现可以通过xml转换成DateSet。问题解决。

整个插件的流程基本上就是在客户端与服务器之间的数据转换~~~~~

目前插件已经可以自定义报表、预览报表、打印报表等基本功能。同时加上之前我发的非ie内核支持插件配合使用,可以支持市面上绝大多数的浏览器。

本人已经将两个插件打包到了一起。提供给大家下载。同时提供了java调用的例子供大家参考。

下面一步步的带着大家对demo进行部署和测试,我们下载的压缩包解压后一共有三个文件夹。如下图



第一个是demo程序、第二个是exe安装包、第三个是服务端需要引入的jar包

第一步,我们打开myeclipse将rptDemo项目导入进来。选择菜单 file-import,弹出如下窗体


选择“Existing Projects into Workspace”,点击next进入下一个页面

如图点击“browse”找到demo程序路径,选择然后点击确定,之后点击finish完成导入,下图是项目结构

我们只需要修改一下ipConfig.properties文件



如图所示rootName为项目跟目录名称,这里不做修改,ip设置为你部署项目机器的ip,port不用说了,大家都懂的。
设置完成以后大家可以将项目部署运行了(具体部署运行就不细说了,大家应该都了解)

启动tomcat后,打开浏览器输入地址,如下图


点击报表一,会出现提示未安装插件,是否下载。



下载完进行安装





点击完成完成安装。接下来回到页面刷新一下(如果还提示插件未安装,请关闭浏览器再打开即可),会看到四个按钮,你可以分别点击测试。



1、编辑报表
点击设计报表出现报表编辑窗体。可以看到目前报表显示编号和姓名两列,我们可以手动编辑,加入地址列,然后点击保存(或者按键盘ctrl+s),会提示报表保存成功提示。如下图





2、预览
报表保存后点击预览按钮,可以看到刚才新加的列已经显示出来,如下图



您也可以在火狐或者google浏览器下测试,目前可支持大部分市面主流浏览器

火狐测试效果:



以下是本人联系方式,欢迎大家多多交流
qq:1172494835
email:xhanhan@126.com
   发表时间:2012-09-06  
沙发。。
楼主的讲的很细,还有例子
去看看ing
0 请登录后投票
   发表时间:2012-09-06  
没用过WebReportXhp 这个软件
不会建表 - -!
0 请登录后投票
   发表时间:2012-09-07  
如果可以,那就解决大问题了。
0 请登录后投票
   发表时间:2012-09-07  

在“收费”面前,什么都是浮云 - -#

0 请登录后投票
   发表时间:2012-09-07  
现在BS报表商业应用做的比较好的是帆软和润乾
0 请登录后投票
   发表时间:2012-09-07  
刚下下来看了下,果然比较强大,不过那个插件就提示了下,没跳出来安装,我是手动安装了下,其他没什么问题
0 请登录后投票
   发表时间:2012-09-12  
Style Report 的用户自定义报表无需下载插件,其完全支持BS架构,用户修改报表数据。

在修改报表数据过程中,自动生成关联数据,动态生成SQL语句,解决用户设计报表时对数据库表结构不熟悉,无法理解英文的表、字段名,无法理解表间关系、不会写表达式和sql语句等技术障碍。

同时数据的安全机制有效的保障了用户在使用数据时的权限问题。
0 请登录后投票
   发表时间:2013-07-05   最后修改:2013-07-05
有个bug。打印完以后数据集没有处理掉,每开一个页面都会生成一个数据集,而且后面生成的数据集都是空的。如果前面一个页面不关闭,后面一个页面的打印会使用前一个打印的数据集。这样的话打印数据错乱,会出错。特别是对一些使用tabpanel之类的系统,前一个页签不关,后面的打印都错了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics