我需要创建一个报告,其中列数根据传递给iReport的数据而变化,就像子报表一样。有没有办法做到这一点?
答案 0 :(得分:3)
我同意Ischin的回答,但我会详细说明。
交叉表报告将允许您拥有动态列,因为它允许您透视数据。您可以选择一个或多个要分组的字段来创建列。组的值成为列的标签,然后必须使用聚合函数作为名为Measures(例如,sum或count)的报告中的值。如果选择多个字段,则会有多个级别的列。在设计报表时,您可以选择列的大小 - 它们必须具有相同的大小。
JasperReports是一款专为创建能够在纸张上打印的内容而设计的产品,如PDF。 iReport至少版本为5.1.0,没有任何其他方式可以真正动态创建列。您可以编写逻辑来根据参数显示或隐藏列,但这将非常繁琐,并且不适合JasperReports的设计目的。例如,允许运行报告的用户选择允许用户控制报告中的哪些列以及列的位置的参数将是非常困难的。