2016 - 2024

感恩一路有你

使用Jaspersoft iReport制作包含子报表的报表

浏览量:3476 时间:2024-07-02 15:43:17 作者:采采

在使用Jaspersoft iReport创建复杂报表时,我们常常需要将子报表的内容展示到父报表中。本文将介绍如何使用iReport制作一个简单的包含子报表的报表。

1. 连接到示例数据库

首先,我们需要将iReport连接到一个示例数据库。具体的连接方法可以参考经验“Jaspersoft iReport怎样连接oracle数据库”。在数据库中,我们设置了两个表:颜色组表和子颜色表。颜色组表中存储着多种颜色,而每个颜色组又有多个子颜色保存在子颜色表中。

2. 新建父报表

接下来,我们需要新建一张父报表,并命名为"Test"。

3. 编辑父报表的SQL查询语句

在父报表中,我们需要编辑SQL查询语句以提取数据。例如,我们可以使用以下语句提取所有数据项:select * from 。将需要在父报表中展示的数据项拖动到Detail栏中。

4. 预览父报表

通过预览功能,我们可以查看父报表是否能够正常显示颜色组数据。

5. 新建子报表

现在,我们需要新建一张子报表,并命名为"Test_sub"。在子报表中,将除Detail栏外的其他栏的高度都设为0,因为子报表只需要在父报表的Detail栏中展示子颜色数据。

6. 编辑子报表的SQL查询语句

在子报表中,我们需要编辑SQL查询语句以提取数据。例如,我们可以使用以下语句提取所有数据项:select * from _DTL。将需要在子报表中展示的数据项拖动到Detail栏中。

7. 关联父报表和子报表

现在,我们需要将父报表的数据与子报表的数据进行关联。当父报表展示某个颜色组时,子报表应该展示该颜色组的子颜色。为了实现这个关联,我们需要在子报表中增加一个参数(STKATTR1_ID),并且由父报表传递给子报表。

8. 修改子报表的SQL查询语句

为了根据传递的参数提取数据,我们需要修改子报表的SQL查询语句。将上面刚刚增加的参数(STKATTR1_ID)拖动到SQL查询语句中,并设置条件,例如:select * from _DTL where STKATTR1_ID $P{STKATTR1_ID}。

9. 添加子报表到父报表

在父报表中添加子报表组件,从组件面板中拖动子报表组件到父报表中。在弹出的向导中选择“只添加子报表组件”。

10. 设置子报表组件的参数

选择父报表中的子报表组件,设置其Parameters属性,使得父报表能够向子报表传递STKATTR1_ID数据项。

11. 设置子报表组件的Subreport Expression属性

选择父报表中的子报表组件,设置其Subreport Expression属性,将子报表的文件名设置为"Test_sub.jasper"。

12. 设置子报表组件的Connection属性

选择父报表中的子报表组件,设置其Connection type属性为"Use a connection expression",并将Connection Expression设置为"REPORT_CONNECTION"。

13. 预览含子报表的报表

至此,一个含子报表的报表已经完成。通过预览功能,我们可以查看父报表中数据展示的效果,包括子报表中的子颜色数据。

这篇文章介绍了如何使用Jaspersoft iReport制作一个包含子报表的报表。通过对父报表和子报表的设置,我们能够实现在父报表中展示子报表的内容,从而创建更加复杂和丰富的报表。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。