iReport使用不同标签的同一报告的多个副本

时间:2012-06-06 10:49:07

标签: jasper-reports ireport

我正在使用 iReport 4.1.3 。我已经创建了发票报告,我希望有3份相同的发票报告。第一张发票的标签应为“ORIGINAL”,第二张发票应为“DUPLICATE”,第三张发票的标签应为“TRIPLICATE”。

谢谢。

1 个答案:

答案 0 :(得分:3)

如果您希望每次打开报告时都显示所有三份副本,这里有一个创意,如果不是优雅的解决方案。

将交叉联接添加到查询的FROM子句,返回三个不同的副本。在MySQL中它看起来像这样:

CROSS JOIN
(
Select 'ORIGINAL' as copy, 1 as sequence
UNION
SELECT 'DUPLICATE' as copy, 2 as sequence
UNION
SELECT 'TRIPLICATE' as copy, 3 as sequence
) x

然后将“copy”字段添加到select语句中。这将导致您的查询为之前返回的每条记录返回3条记录。复制字段中带有“ORIGINAL”的一条记录,一条带有“DUPLICATE”,另一条带有“TRIPLICATE”。将“序列”添加到ORDER BY子句中。

然后在报告中,按“复制”字段分组。为每个组强制新页面,您应该全部设置。您在报告级别总计的任何变量都需要更改为组级别(“复制”组)。如果“摘要”部分中有任何控件,请将它们移动到新的组页脚部分。还要创建一个文本字段,以在页面或组标题中显示“复制”字段。

它不一定漂亮,但它应该有用。