BS系统自定义报表插件

xhanhan 2012-09-08 01:45:54
之前发的一个非ie内核浏览器支持activex的文章里提到了自定义报表插件,现在我将自定义报表发出来与大家分享下。
原文章地址http://blog.csdn.net/xhanhan/article/details/7936528

之前做桌面应用开发时,一直使用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调用的例子供大家参考。

下载地址:http://download.csdn.net/detail/xhanhan/4551305

下面一步步的带着大家对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
...全文
520 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
A小树A 2014-05-14
  • 打赏
  • 举报
回复
nwjzz 2012-12-19
  • 打赏
  • 举报
回复
你好,请问如何分页呀

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧