java - 使用 Jasper 报表在一份报表上打印动态元素数量

标签 java jasper-reports dynamic-jasper

我在使用 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/

相关文章:

java - RMI 性能太慢

dictionary - 如何将 HashMap<String,Integer> 参数转换为 Map<String,Object)

reporting - 寻找 JasperReports 的替代品

php - iReport 在 Linux 终端中运行,但无法使用 PHP exec 命令

java - 在 DynamicJasper 图表中使用 CustomExpression

jasper-reports - 无法在动态碧 Jade 报告中设置横向

Java-freepascal通信

java - 如何在 Jsoup 中发送复选框数据

java - DynamicJasper 将列添加到具有不支持的数据类型的 fastreportbuilder

java - 单一生产者单一消费者现在我需要多个消费者