在JasperReports中显示静态文本而不是空组

时间:2009-07-09 18:07:15

标签: jasper-reports

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

您可能需要创建变量而不是直接使用$F{total_credits} - 我不确定JasperReports如何处理访问组页脚中的字段。您还可以在组标题中找到正确的total_credits,而在组页脚中却没有。

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

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

,初始值表达式为new Integer(0)

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