0

我有一个显示账单行项目列表的 Jasper 报告。这些项目按计费周期分组,然后按项目是费用还是贷项进行分组。对于有费用但没有信用的计费期,我想在该期间的信用组中显示一个静态文本字段,说明“无信用”。如何才能做到这一点?

编辑添加:这是假设我对数据源使用 SQL 查询,而不是自定义一个。如果我自定义我的数据源,我可以在获得报告之前在预处理中处理这个问题,但我希望找到一种方法来解决 Jasper 的跳过组的行为,而没有符合组标准的行。

4

1 回答 1

1

如果您能够在您的数据源中计算每个组的总积分数,那么您可以在静态文本上使用“print when expression”属性。例如:

new Boolean ($F{total_credits}.equals(0));

静态文本需要放在组页眉或页脚中,因为它在组详细信息部分不起作用(它会打印多次)。

您可能需要创建一个变量而不是$F{total_credits}直接使用 - 我不确定 JasperReports 如何处理访问组页脚中的字段。您可能还会发现,在组页眉中它选择了正确的 total_credits,而在组页脚中却没有。

另一种方法是使用一个变量来计算组中的总积分数。您需要将变量的“重置类型”设置为“组”,然后设置重置组。变量表达式将类似于:

$V{myvariable} + 
($F{credit_or_debit}.equals("credit") ? new Integer(1) : new Integer(0))

并且初始值表达式将是new Integer(0)

然后在组页脚中,您可以在静态文本上使用“print when expression”来查看变量。

于 2009-07-09T23:45:38.287 回答