【问题标题】:iReports page number calculationiReports 页码计算
【发布时间】:2016-06-10 17:42:52
【问题描述】:

我有一个应用程序正在生成报告的多个部分,然后将它们连接在一起以生成 PDF 文档。我们想为每个部分生成适当的页码。我希望将 PAGE_OFFSET 参数传递给每个部分,并使用 PAGE_NUMBER + PAGE_OFFSET 计算新的页码。这可能吗?到目前为止,我尝试过的所有操作都会产生类型转换错误或无效计算。

【问题讨论】:

    标签: jasper-reports ireport


    【解决方案1】:

    如果我理解正确,您希望将此页面偏移量传递给 iReport?

    为您的偏移量创建一个新参数:参数类 java.lang.Integer 的 $P{offset}。然后,创建类 java.lang.Integer 的新变量。设置变量表达式为$V{PAGE_NUMBER}+$P{offset},计算为空,重置类型为Page,增量类型为None。

    【讨论】:

    • 我最初尝试过,但没有成功。我使用的是 3.5.1 版本,所以我不确定这是否是原因。它抱怨“+”号不是一个有效的选项。我能够让它使用以下表达式: new java.lang.Integer($P{PAGE_OFFSET}.intValue() + $V{PAGE_NUMBER}.intValue())
    【解决方案2】:

    尝试以下步骤

    1.) 新建变量mypagenumber;整数类型,重置类型Group,递增类型page,计算类型count;变量表达式$V{mypagenumber},初始值new Integer(0)。

    2.) 在您的报告中添加文本字段类型字符串、评估时间页面、文本字段表达式String.valueOf($V{mypagenumber}) 以提供组内的实际页面或评估时间组,然后选择您的组以提供组内的页面。

    【讨论】:

      【解决方案3】:

      如果您正在搜索“第 1 页,共 3 页”。查看 'evaluationTime' 的值 你必须这样写:

      <textField evaluationTime="Page">
          <reportElement x="328" y="0" width="154" height="20"/>
          <textElement textAlignment="Right" verticalAlignment="Middle">
              <font fontName="Arial" size="9"/>
          </textElement>
          <textFieldExpression class="java.lang.String"><![CDATA["Page"+$V{PAGE_NUMBER}+" of"]]></textFieldExpression>
      </textField>
      <textField evaluationTime="Report">
          <reportElement x="485" y="0" width="63" height="20"/>
          <textElement verticalAlignment="Middle">
              <font fontName="Arial" size="9"/>
          </textElement>
          <textFieldExpression class="java.lang.String"><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression>
      </textField>
      

      【讨论】:

        【解决方案4】:

        我的 Cristina 代码的更正版本(我使用 iReport 3.7.2)是:

        <pageFooter>
            <band height="20">
                <textField evaluationTime="Page">
                    <reportElement x="766" y="0" width="154" height="20"/>
                    <textElement textAlignment="Right" verticalAlignment="Middle">
                        <font fontName="SansSerif" size="9"/>
                    </textElement>
                    <textFieldExpression class="java.lang.String"><![CDATA["Page "+$V{PAGE_NUMBER}.toString() + " of "]]></textFieldExpression>
                </textField>
                <textField evaluationTime="Report">
                    <reportElement x="924" y="0" width="63" height="20"/>
                    <textElement verticalAlignment="Middle">
                        <font fontName="SansSerif" size="9"/>
                    </textElement>
                    <textFieldExpression class="java.lang.String"><![CDATA[$V{PAGE_NUMBER}.toString()]]></textFieldExpression>
                </textField>
            </band>
        </pageFooter>
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-12-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-08
          相关资源
          最近更新 更多