天天看点

Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现) 生成XML文件(支持json,bean,map list数据源):(一)数据表设计

Jasper Report 6.8 根据后台数据生成动态报表(一) :摸索历程*

早年做通用项目时,特别注重公共模块的开发,在使用java spring boot开发web版本时,就想如何实现通用报表模块。

网上收费报表很多,本人想自己实现,最终比对,决定采用jasper Report,这个报表思想类同于水晶报表,fastreport. quickreport。

由于API缺失, 中间摸索很长时间,走了一些弯路。

使用JR 有三个途径

  1. 根据JR提供的类动态生成。以下部分代码提供思路(忽略一些参数取值,表结构后期上传)
asperDesign rptDesign = new JasperDesign();
		rptDesign.setName(jrInitModel.getRptFileName()); // 报表名称入代码片` 
		// 报表标题
		rptDesign.setPageWidth(dftRptMaster.getPageWidth());// 纸宽度
		rptDesign.setPageHeight(dftRptMaster.getPageHeight());// 纸高
		rptDesign.setColumnSpacing(dftViewMaster.getColSpace()); // 列间距
		rptDesign.setLeftMargin(dftRptMaster.getPageLeft()); // 边距
		rptDesign.setRightMargin(dftRptMaster.getPageRight());
		rptDesign.setTopMargin(dftRptMaster.getPageTop());
		rptDesign.setBottomMargin(dftRptMaster.getPageBottom());
		rptDesign.setTitleNewPage(dftRptMaster.getBePrintTitlePerPage() == 1); // 每页都打印标题否
		if (dftRptMaster.getBePageVcenter() == 1) { // 竖向打印页
			rptDesign.setOrientation(OrientationEnum.PORTRAIT);
		} // 竖向
		else {
			rptDesign.setOrientation(OrientationEnum.LANDSCAPE); // 横向
		}
   后面代码不外乎根据对象来创建对像,根据报表表数据置来设置对象的属性,最终生成JRXML文件,并且编译成jaxper文件然后输出``

           
  1. 使用第3方包装jasper类(DynamicReport),提供更简单生成的方式,大家网上可看有人做过。
  2. 在使用JR, IDE手工做报表模板的过程中,了解JR的原理就是生成一个XML文件,使用类也是如此,干脆用domj4来生成xml文件,并且用jr提供的方法编译就不OK了?反页更简单,就是繁琐一点,容易出错。

本人已采用第3种方法使用动态生成报表并且导成HTML文件 ,或在IDE 中打开预览,后期我将完善成一个独立模块,集成到项目中。此几篇文章提供思路借鉴(本文件记录时只做了第1步)

1)采用简单方法(不使用table,list等JR组件)来生成清单式,分组式报表 (大部分项目这种报表最多)

2)生成主从式(子报表,采用list, table等)报表,这个报表复杂一些

3)独立图表或列表+图片方式的报表

4)结合前端VUE来设计格式化报表,应用于套打

以下为记录过程

第一:数据表结构设计(本结构是结合考虑前端表格显示数据的设计)

  1. 报表表头参数

     

    Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现) 生成XML文件(支持json,bean,map list数据源):(一)数据表设计
    Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现) 生成XML文件(支持json,bean,map list数据源):(一)数据表设计
    Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现) 生成XML文件(支持json,bean,map list数据源):(一)数据表设计
  2. 表格栏位内容设计
    Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现) 生成XML文件(支持json,bean,map list数据源):(一)数据表设计
    Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现) 生成XML文件(支持json,bean,map list数据源):(一)数据表设计
  3. 报表栏位结构
    Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现) 生成XML文件(支持json,bean,map list数据源):(一)数据表设计
    Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现) 生成XML文件(支持json,bean,map list数据源):(一)数据表设计
    Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现) 生成XML文件(支持json,bean,map list数据源):(一)数据表设计
    以上表结构参考,目前部分设置字段好象无法实现或无必要实现

后一篇 :Jasper Report 6.8 根据后台数据生成动态报表(JRXML文件实现)(二)生成XML文件(支持json,bean,map list数据源)