如何根据同一波段子报表的返回值为详细信息带表达?

时间:2016-02-09 13:45:52

标签: jasper-reports

我正在使用iReports 4.7.1

我的主报告中有2个子报告,它们处于单独的乐队中。如果子报告没有返回任何行,我需要隐藏波段。我能够在主报告中获得子报告值。但是如果我将该变量用作同一频段中的表达式,则该变量的值变为空,如果我在其他细节带中使用相同的变量,则它不会变为空。

我有两个问题要问,

  1. 如果我在同一个频段使用,为什么该值变为空?
  2. 他们以隐藏子报告的任何其他方式不返回任何行吗?
  3. 我按照this步骤创建变量并从子报表返回值到主报表。

    我还尝试了新布尔值($ V {SUB_REPORT_ROW_CNT} .intValue()!= 0) $ V {SUB_REPORT_ROW_CNT}!= null 表达式当表达乐队时。

1 个答案:

答案 0 :(得分:0)

如果我在相同的频段使用,为什么该值变为空?

我需要查看jrxml,但可能您在textField上没有正确的EvaluationTime,请尝试在textField上设置BandReport示例evaluationTime="Report"

他们以隐藏子报告的任何其他方式都不返回任何行吗?

删除空子报表的常规方法是在子报表的isRemoveLineWhenBlank="true"上设置reportElement

通过在{上设置whenNoDataType="NoPages"(或自此默认设置后删除此属性),确保您的子报告在没有数据时返回无页面(空) {1}}代码

这将删除子报告,但是请注意,如果您想要移动它下面的文字,则需要设置jasperReport,否则它们将保持原样,因为默认值为positionType="Float"