使用IReport打印带有重复记录的标签(Jasper Report)

时间:2010-08-01 03:30:41

标签: java jasper-reports ireport

用例:

想使用IReport标记我店里出售的商品。带标签的东西是每个产品可能有多个需要贴标签的物品。因此,假设产品CarToy在数据库中是1条记录(字段名称,描述,价格)。

问题:

要在我的商店中标记CarToy项目,我必须在贴纸上打印包含3字段的报告。

以正常方式执行此操作将导致包含1个贴纸的报告。

如果我的商店有5件商品。然后我想在报告中打印5个贴纸。

基本上我想将包含记录(数据行)的查询结果传递给IReport,并告诉它打印/显示每个记录/行的时间。假设我可以从我的程序中传递所需的参数(例如重复X时间)。

知道如何做到这一点?

不需要的解决方案

可能这可以在软件数据层解决。例如,我可以传递一个结果集,其中包含已经重复/重复X次的每一行。示例:查询CarToy(结果为1条记录)。手动创建包含5个CarToy记录的结果集,并将其传递给Jasper Report。

但是,我想以JasperReport报告xml的形式为最终用户提供一个可以自定义的解决方案。所以上面不是我正在寻找的解决方案。

更好的是,如果我可以使用IReport做任何事情而不需要修改软件。要做到这一点,也许有一些脚本功能,或者我可以在IReport中创建一个接受(重复X时间)参数的简单GUI。

TIA 哈里斯

1 个答案:

答案 0 :(得分:1)

一个想法可能是在SQL中多次选择同一行,然后在报表中显示该行。

您可以将您希望打印贴纸的次数作为参数发送给您的选择语句作为jasper报告中的参数。

请查看此stackoverflow question,了解多次选择同一行。

iReport还允许您在报告中设置所需的数字列,因此如果您想要保存一些纸张,请将它们打印为3乘3或最适合。

您可以在“列”部分下的主报告的属性窗口中进行设置。