Jasper reports 如何根据同一波段的子报表返回值给出详细波段的表达式?

Jasper reports 如何根据同一波段的子报表返回值给出详细波段的表达式?,jasper-reports,Jasper Reports,我正在使用iReports 4.7.1 我的主报告中有两个子报告,它们位于saperate波段。如果子报表不返回任何行,我需要隐藏带。我可以在主报表中获取子报表值。但是,如果我在同一个波段中使用该变量作为表达式,该变量的值将变为null,如果我在其他详细信息波段中使用该变量,它不会变为null 我有两个问题要问 如果在同一频带中使用,为什么该值会变为null 他们是否有其他隐藏子报表不返回行的方法 我按照步骤创建变量并将值从子报表返回到主报表 我还尝试了这个新布尔值($V{SUB_REPORT_

我正在使用iReports 4.7.1

我的主报告中有两个子报告,它们位于saperate波段。如果子报表不返回任何行,我需要隐藏带。我可以在主报表中获取子报表值。但是,如果我在同一个波段中使用该变量作为表达式,该变量的值将变为null,如果我在其他详细信息波段中使用该变量,它不会变为null

我有两个问题要问

  • 如果在同一频带中使用,为什么该值会变为null
  • 他们是否有其他隐藏子报表不返回行的方法
  • 我按照步骤创建变量并将值从子报表返回到主报表

    我还尝试了这个新布尔值($V{SUB_REPORT_ROW_CNT}.intValue()!=0)$V{SUB_REPORT_ROW_CNT}=空值在打印时为带区使用表达式。

    如果在同一带区中使用,为什么值会变为空值

    我需要查看jrxml,但您可能没有正确的文本字段,请尝试在文本字段上设置
    Band
    Report
    example
    evaluationTime=“Report”

    他们是否有其他隐藏子报表不返回行的方法

    删除空子报表的正常方法是在子报表的
    reportElement
    上设置
    isRemoveLineWhenBlank=“true”

    通过在
    jasperReport
    标记上设置
    whenNoDataType=“nopage”
    (或从默认情况下删除此属性),确保您的子报表在没有数据时返回无页面(空)


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

    您好,非常感谢您的回复。对于第一个问题,您正在谈论哪个文本字段。实际上,在我的子报表中,我正在显示图像(图像将来自db),而在主报表中,我没有显示变量值。那么我需要给哪个文本字段评估时间呢?我也尝试了你为我的第二个问题所回答的步骤,但结果还是失败了。我想象在第一个问题中,你把$V{SUB_REPORT_ROW_CNT}放在一个文本字段中查看它。。。(在此文本字段中,您需要设置它)。@user3778890编辑问题时,包括调用子报告的jrxml,包括当前输出的一些屏幕截图,创建一个。建议的方法有效,我可以通过屏幕截图(但与你的问题无关,所以在回答时似乎没有什么意义)