之前发的一个非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浏览器下测试,目前可支持大部分市面主流浏览器
火狐测试效果:
详细解决方案
BS系统自定义表格插件
热度:201 发布时间:2016-05-05 07:50:30.0
以下是本人联系方式,欢迎大家多多交流
qq:1172494835
email:[email protected]
相关解决方案