我需要在 JasperReports 中开发一个报告,其中包含 ONE子报告,但是对于list参数中的每个值都会重复子报告。例如:< / p>
要传递给 ONE子报告的参数列表:1,2,3,4
MyReport:
然后子报表还将包含另一个“子子报表”,应该为每个值重复X次,例如: 子报告(Crosstable +分页符)表示传递参数的值1:
换句话说,我试图在相同的子报表上循环,但使用不同的数据:
for(i=0; i<list.lenght();i++){
print(subreport(i));
}
我不知道怎么做。我希望我的例子清楚。提前致谢
答案 0 :(得分:1)
您的详细频段将针对每条记录触发。因此,如果您的输入控件是$ P {myCustomers}并且主报表的查询是:
SELECT customer_id
FROM customers
WHERE $X{IN, customer_id, myCustomers}
然后您的主报告将有一个字段$ F {customer_id}。您的子报表需要具有自己的参数,并且它将从主报表中获取值。将子报表插入主报表的详细信息区域。单击主报表中的子报表,然后在主报表的“属性”窗口中,单击“参数”。 “名称”列是子报表中将接受传入值的参数的名称,“表达式”字段是要传递的值。因此,如果您的子报表还有一个客户ID参数,则名称为customer_id,要传递的表达式为$ F {customer_id}。
iReport文档(http://community.jaspersoft.com/documentation/ireport-ultimate-guide)包含有关子报告的信息,第90页。
答案 1 :(得分:0)
尝试使用报告组:该组基于值或表达式,然后您可以将子报告嵌入到组中。