【问题标题】:How to print the grand total only in the last page of a very long report?如何仅在很长的报告的最后一页打印总计?
【发布时间】:2011-08-19 16:09:39
【问题描述】:

如何使总参数仅出现在包含大量概念的报告的最后一页。

报告会重复 istelf,直到概念列表显示在两页或更多页中。因为参数(以 $PTotal 形式接收)位于页面的页脚,所以总计出现在所有这些中。

我需要它只显示在最后一页的页脚中。如果我把那个空间留空也没关系,我只需要在最后一页显示参数。

这不是由多个页面组成的报告,它会生成多个页面,直到列表适合为止。只是为了澄清。

如何使用 printWhenExpression 标签修复该参数标签?

【问题讨论】:

    标签: jasper-reports ireport


    【解决方案1】:

    如果您只是为此目的使用摘要带?

      .......
      <summary>
        <band height="146" splitType="Stretch">
          <reportElement .../>
           <textElement ...>
             <font .../>
           </textElement>
           <textFieldExpression class="java.lang.String"><![CDATA[$P{total}]]>           </textFieldExpression>
        </band>
      </summary>
    </jasperReport>
    

    【讨论】:

      【解决方案2】:

      复制您的页脚区域并将其重命名为 lastPageFooter 区域。保持原始页脚不变,但从中删除 $P{total} 的 textField。 lastPageFooter 带,包括您的总数,只会打印在报告的最后一页。

      【讨论】:

      • 这是我用的,它看起来很脏,但它可以工作:P。谢谢!
      • 当然很脏,因为打印输出在页脚,如果详细信息页面没有关闭,则会留下很多空白,有时它会打印在摘要带上,这与预期不符。
      【解决方案3】:

      尝试使用 PrintWhenExpression 的

      $V{PAGE_NUMBER} == $V{PAGE_COUNT}
      

      【讨论】:

      • 我已经在使用 标签了,我应该把它放在哪里?或者我可以在文本字段标签中使用脚本块吗?
      • 除非我有什么误解,否则这种方法是行不通的:根据文档 (jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/…),PAGE_COUNT 是“内置变量,包含在生成当前数据时处理的记录数page" -- 不是报告中的总页数。
      • 获取总页数,可以在这里查看:ask.osify.com/qa/11177 但它无法在打印表达式中使用,因为计算似乎逐页进行,使得打印表达式无法执行,但可以在设计视图中使用。
      【解决方案4】:

      您可以尝试使用“最后一页页脚”带

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-20
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多