报表打印问题整体解决方案 FineReport报表打印
我们平时打印报表中可能遇上很多问题,比如说想通过xml数据源制作模板,而非单独通过数据库sql语句导出数据,又比如说想实现静默打印、预览打印,及批量打印,或者想选择不同的页面,系统可根据自己的选择,在点击打印后选择不同模板进行打印等等这些问题。也许一时半会得不到解决,今天我就来分享一下一些打印报表的问题解决方案。
报表开发需求描述
系统需求
1、已开发好的报表模板:供用户打印及浏览;
2、未开发报表模板:可以让用户自主开发报表模板,并上传保存到服务器,供后续打印及浏览。
具体需求列表
1、用户可以通过xml数据源制作模板,而非单独通过数据库sql语句导出数据;
2、打印系统和报表系统实现单点登录,以便用户在系统切换过程中,无需再次登录便可直接打印;
3、各仓库报表模板存放于不同目录下,方便后续管理;
4、能够实现静默打印、预览打印,及批量打印等;
5、用户选择不同的页面,系统可根据用户的选择,在点击打印后选择不同模板进行打印;
6、模板权限控制,用户只能预览及打印权限内的模板,对于其他模板,则没有权限进行预览及打印操作。
工具
报表开发工具:FineReport
FineReport是一款集数据展示(报表)和数据录入(表单)功能于一身,用于快速构建企业信息系统的Java报表开发工具。
报表开发方案概述
报表开发流程设计
1、业务人员利用空数据的xml数据源制作报表;
2、将报表上传至服务器;
3、用户选择打印模块箭头;
4、通过动态生成xml,打印出有数据的模板。
业务人员制作报表
1、通过加载空数据的xml数据源,获取数据字段;
2、拖拽数据,制作模板;
3、将制作好的模板,通过开发的上传页面,将模板分类保存到不同目录下(finereport无法直接完成、需自主编写上传)。
业务人员打印
1、业务人员在已开发好的页面,选择要打印的模块;
2、选择要打印的报表;
3、后台生成有数据的xml,推送给报表模板(有接受参数接口);
4、直接打印(静默打印)、或打印预览(有打印接口)。
xml格式要求
生成的xml,须为二维表结构数据
Xml数据源转换
用户在制作报表时,用的是空数据的xml,但打印时,需实时连接有数据的xml。通过xml文件名,用参数形式实现动态转换。
批量打印接口调用
直接通过Get或Post方式批量调用模板打印功能即可,如下function