Jasper reports jasper报告检测当前页面中是否存在数据段或子报告

Jasper reports jasper报告检测当前页面中是否存在数据段或子报告,jasper-reports,Jasper Reports,我正在和贾斯珀写一份报告 主报告有多个子报告 这些子报表中只有一个具有固定文本和注释编号,类似于这样 my text<sup>(2)</sup> 我的文本(2) 在主要报告中,我必须打印脚注,但只能打印带有注释的文本所在的所有页面 更好地解释的图像: 是否存在允许检测当前页面中是否存在子报表的内容 或者允许检测当前页面中是否存在详细标注栏的内容 或者可以检测当前页面中是否会打印特定文本的内容 或者其他策略来处理这种特殊情况 。在主报表“subReportCount

我正在和贾斯珀写一份报告

主报告有多个子报告

这些子报表中只有一个具有固定文本和注释编号,类似于这样

my text<sup>(2)</sup>
我的文本(2)
在主要报告中,我必须打印脚注,但只能打印带有注释的文本所在的所有页面

更好地解释的图像:

  • 是否存在允许检测当前页面中是否存在子报表的内容
  • 或者允许检测当前页面中是否存在详细标注栏的内容
  • 或者可以检测当前页面中是否会打印特定文本的内容
  • 或者其他策略来处理这种特殊情况

。在主报表“subReportCount”中创建变量 类型=整数,默认值为0 重置类型='Page'

。将此变量(隐藏)放置在子报表之后的某个位置

。在子报表中创建变量“SubVar”,表达式==$V{REPORT\u COUNT}

。在main中,转到子报表属性->编辑返回值-> 从变量=SubVar设置为变量=subReportCount,计算类型=Sum

。表达式=$V{subReportCount}>0时打印页脚


若要尝试在页面中至少打印一次子报表,则此操作可能有效。

无论是否在报表中放置子报表变量。 我试过我的本地产品,它也适用于类似的情况

主报告中的变量

<variable name="subReportCount" class="java.lang.Integer" resetType="Page" incrementType="Page" calculation="Sum">
    <variableExpression><![CDATA[$V{subReportCount}.equals( null ) ? 0 : $V{subReportCount}]]></variableExpression>
    <initialValueExpression><![CDATA[0]]></initialValueExpression>
</variable>
<returnValue subreportVariable="SubVar" toVariable="subReportCount"/>

子报表的返回值

<variable name="subReportCount" class="java.lang.Integer" resetType="Page" incrementType="Page" calculation="Sum">
    <variableExpression><![CDATA[$V{subReportCount}.equals( null ) ? 0 : $V{subReportCount}]]></variableExpression>
    <initialValueExpression><![CDATA[0]]></initialValueExpression>
</variable>
<returnValue subreportVariable="SubVar" toVariable="subReportCount"/>

打印页脚元素的表达式时,在我的示例中,我显示的是页码

<printWhenExpression><![CDATA[$V{subReportCount} > 0]]></printWhenExpression>
0]>
如果不这样做,这应该有效,如果不可以,请共享JXML和示例数据。
祝你好运

只是一个想法:也许你可以用变量做一些小把戏。从子报表返回记录数,如果脚注大于0,则打印脚注,然后以某种方式重置变量。这似乎是一个很好的策略,从子报表中找到返回值,这是为了理解变量管理。如果可行,我会尝试发布解决方案…嗨,朋友们,我删除了我的解决方案,因为它不能正常工作,我正在尝试你的解决方案,但我仍然只有最后一页的脚注,而不是每一页的子报告。我做了所有描述的事情,我想。。。我将subReportCount变量放在subreport后面(相同的详细信息栏),并在打印时将其设置为false。有什么建议吗?thx在advanceHi Falco中添加了带有xml示例的答案,这应该可以工作