Jasper report 使用json数据源创建多个table的报表

时间:2024-03-19 13:59:09

报表中含有多个表格,每个表格不同的数据源,高度不固定,记录下模板创建过程。

首先,为了避免表格内容重叠,我们用分组的方式将每一个表格单独放在一个栏位。

同一个栏位放多个表格会出现下图内容重叠的情况:

Jasper report 使用json数据源创建多个table的报表

1、分析需求,设计报表布局

根据报表需求,共有5个表格,所以我们创建2个组,将5个表格分别放在:

Group1 Group Header1、Group2 Group Header1、Detail 1、Group1 Group Footer1、Group2 Group Footer1

如下图所示:

Jasper report 使用json数据源创建多个table的报表

2、创建table

拖动table组件到对应栏位,按照下图一步步操作:

Jasper report 使用json数据源创建多个table的报表

Jasper report 使用json数据源创建多个table的报表

选择一个json数据源:

Jasper report 使用json数据源创建多个table的报表

Jasper report 使用json数据源创建多个table的报表

Jasper report 使用json数据源创建多个table的报表

Use a JRDatasource expression:

((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("test1")

Jasper report 使用json数据源创建多个table的报表

Jasper report 使用json数据源创建多个table的报表

设置table样式,只保留 Add Column Header,finish表格创建完成了。

增加序号列,调整表格的宽度,内容显示高度。

双击进入表格编辑区:

右键Column Header,创建一列,使用Data set 中的Variables的COLUMN_COUNT函数作为序号列。

Jasper report 使用json数据源创建多个table的报表

Jasper report 使用json数据源创建多个table的报表

设置字体大小,表格内容Text Field属性,Text Adjust : StretchHeight

Jasper report 使用json数据源创建多个table的报表

设置表格的宽度,整体报表的内容宽度:550px

Jasper report 使用json数据源创建多个table的报表

列宽充满表格元素:

Jasper report 使用json数据源创建多个table的报表

再选择单列调整宽度:

Jasper report 使用json数据源创建多个table的报表

预览效果:

Jasper report 使用json数据源创建多个table的报表

其他表格同样方式创建。