我在使用 JasperReports Studio/DynamicJasper 打印以下结构时遇到问题:
Date (1.1.2015)
-action1 (text)
-action2
.
.
.
-actionN
-image1 (image-file)
-image1 text (text)
-image2
-image2 text
.
.
.
-imageN
-imageN text
Date (2.1.2015)
-action1 (text)
-action2
.
.
.
-actionN
-image1 (image-file)
-image1 text (text)
-image2
-image2 text
.
.
.
-imageN
-imageN text
因此,最初的想法是打印某一天附加的所有操作和图像,然后在第二天执行相同的操作,直到数据库中没有任何日期为止。基本上,所有这些数据都应打印为一份报告,所有描述的内容日复一日地进入详细信息带。
基本上可以有任意数量的天,然后可以有任意数量的与每一天相关的操作和图像。最好将所有这些内容打印得像只有一列一样:首先是操作列表,然后是操作列表正下方的图像列表。
起初,我试图实现这个 Jasper Studio,因为这是我迄今为止创建的所有其他报告所使用的工具。
很快我意识到,这种结构似乎不可能用 Studio 创建,至少在我看来是这样。
问题基本上是,似乎无法将动态数量的表添加到使用 Studio 创建的报告中。
这就是我开始研究 DynamicJasper 的原因。
如果我错了,请随时纠正我,但是这种结构可以通过使用 DynamicJasper 的子报告功能来实现吗?
如果我希望数据显示得像 #being 只打印在一列上,那么我肯定需要至少两个子报表定义。
这是因为这些列上会打印两种完全不同的数据类型:操作是文本,图像是图像文件。
所以基本上在我的 DynamicJasper 代码中,我只会迭代来自数据库的所有日期并为每天创建 2 个子报告,这样我最终会创建 2*(天数)子报告并将所有这些连接到我的报告构建器。 这听起来可行吗?
确切地说,我想我会在图像旁边的相邻列上打印图像的描述文本,只是为了让事情变得更容易......
最佳答案
一般来说,解决方案是这样的:“为了在一个报表中循环打印报表元素任意次数,请将元素放置到报表的详细信息区域,jasper 将自动打印这组元素,次数与作为主数据源/数据适配器传递给报表的集合中的 Bean 相同。”
关于java - 使用 Jasper 报表在一份报表上打印动态元素数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33654953/