用Java报表工具FineReport制作多源报表
作者:finereport
浏览:7,294
发布时间:2023.7.31
上图报表中的数据来自多张报表,通过简易的数据过滤设置将其放置在了一张报表中显示。
下面我们来看一下使用java报表工具实现上述报表的过程:
1.连接数据库FRDemo
2.设计报表
2.1新建报表
2.2表样设计
按照下图设计好报表的基本框架。
2.3新建一数据集
数据集customer
SQL语句:select CustomerID,CustomerName,BankID from customer
数据集carMsg
SQL语句:select CustomerID,Amount from car
数据集houseMsg
SQL语句:select CustomerID,Amount from house
数据集groundMsg
SQL语句:select CustomerID,Amount from ground
数据集otherMsg
SQL语句:select CustomerID,Amount from other
2.4绑定数据列
在B列之前添加一列:
按照下列表格将数据集的字段拖入对应报表单元格内,并作相应的设置。
单元格 | 内容 | 基本属性设置 |
B6 | customer.CustomerID | 从上到下扩展,其余默认 |
C6 | customer.CustomerName | 从上到下扩展,居中,其余默认 |
E6 | carMsg.Amount | 数据设置:汇总—求和,居中,其余默认 |
F6 | houseMsg.Amount | 数据设置:汇总—求和,居中,其余默认 |
G6 | groundMsg.Amount | 数据设置:汇总—求和,居中,其余默认 |
H6 | otherMsg.Amount | 数据设置:汇总—求和,居中,其余默认 |
2.5设置过滤
通过过滤设置将5张表中的内容联系起来。双击E6单元格,进入数据列属性设置对话框,点击过滤标签,如图:
数据列选择CustomerID,操作符选择等于,点击最右边的箭头,选择单元格,设置等于B6单元格,即customerID的值,点击增加,如图:
对F5,G5,H5做同样的设置,这样汽车、房屋、土地、其他四张表中的数据就能放置到同一张表中来了。
2.6设置参数
设置参数,选择支行。
2.6.1新建一个参数bankID
报表|报表参数,打开报表参数设置对话框,如图
点击左上角的添加按钮添加一个参数,命名为bankID,显示名字为支行代码,参数类型选择文本,其余默认,如图
2.6.2参数过滤
双击B6单元格,进入数据列属性设置对话框,点击过滤标签,可选列选择bankID,操作符选择等于,值选择参数|$bankID,点击增加,如图
2.6.3显示参数
在D3单元格中填入=$bankID
2.7完成报表
将客户ID隐藏,选中B列,右击|列宽,设置为0,则预览时该列就不会显示出来了。
3.保存预览
报表工具产品更多介绍:www.finereport.com