Jasper reports 如何加上「;下一页继续……”;除最后一页外,每页页脚中的文本? 要求:

Jasper reports 如何加上「;下一页继续……”;除最后一页外,每页页脚中的文本? 要求:,jasper-reports,Jasper Reports,在每页页脚添加“下一页继续…”文本,Jasper报告中最后一页除外。因此,基本上我想让用户知道,在报告的下一页还有更多内容要查看。我知道第x页还是第y页,这也让我们知道是否有更多的页面可看,但我想让它更方便用户 到目前为止我所做的一切!! 创建了一个自定义变量,如下所示: <variable name="pNumber" class="java.lang.Integer" resetType="Page"> <variableExpression><![CD

在每页页脚添加“下一页继续…”文本,Jasper报告中最后一页除外。因此,基本上我想让用户知道,在报告的下一页还有更多内容要查看。我知道第x页还是第y页,这也让我们知道是否有更多的页面可看,但我想让它更方便用户

到目前为止我所做的一切!!
  • 创建了一个自定义变量,如下所示:

    <variable name="pNumber" class="java.lang.Integer" resetType="Page">
        <variableExpression><![CDATA[1]]></variableExpression>
        <initialValueExpression><![CDATA[$V{PAGE_NUMBER} + 1]]></initialValueExpression>
    </variable>
    
    <textField evaluationTime="Auto">
            <reportElement mode="Opaque" x="0" y="0" width="555" height="15" backcolor="#D1CBCB" uuid="dd084b9e-66ab-494a-ad7d-0860be1796fb">
                <property name="com.jaspersoft.studio.unit.x" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.y" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.height" value="pixel"/>                  
            </reportElement>
            <textElement textAlignment="Center" verticalAlignment="Middle">
                <font isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA["Continued on next page..." + $V{pNumber} +"!="+ $V{PAGE_NUMBER} + " : "+ new Boolean(($V{pNumber}.equals($V{PAGE_NUMBER})) == false)]]></textFieldExpression>
        </textField>
    
    
    
  • 在页脚中创建文本字段,如下所示:

    <variable name="pNumber" class="java.lang.Integer" resetType="Page">
        <variableExpression><![CDATA[1]]></variableExpression>
        <initialValueExpression><![CDATA[$V{PAGE_NUMBER} + 1]]></initialValueExpression>
    </variable>
    
    <textField evaluationTime="Auto">
            <reportElement mode="Opaque" x="0" y="0" width="555" height="15" backcolor="#D1CBCB" uuid="dd084b9e-66ab-494a-ad7d-0860be1796fb">
                <property name="com.jaspersoft.studio.unit.x" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.y" value="pixel"/>
                <property name="com.jaspersoft.studio.unit.height" value="pixel"/>                  
            </reportElement>
            <textElement textAlignment="Center" verticalAlignment="Middle">
                <font isBold="true"/>
            </textElement>
            <textFieldExpression><![CDATA["Continued on next page..." + $V{pNumber} +"!="+ $V{PAGE_NUMBER} + " : "+ new Boolean(($V{pNumber}.equals($V{PAGE_NUMBER})) == false)]]></textFieldExpression>
        </textField>
    
    
    
  • 现在,当我运行总共有3页的报告时,TextField内容在每个页面中显示以下文本,如前所述:

    第一页:继续下一页…1=3:对

    第二页:继续下一页…2=3:对

    第三页:继续下一页…3=3:错

    此表达式在文本字段表达式中工作得非常好。现在,我想在文本字段的Print When表达式中使用相同的条件,如果返回true,则允许我显示“Continue…text”,如果返回false,则不显示任何内容

    但是,如果我在打印同一文本字段的表达式时使用此条件,则文本字段在两种情况下都不会显示(真/假)。表达式如下所述:
    
    

    我在这个问题上搜索了很多,但没有找到任何直接的解决方案。顺便说一句,我正在使用TIBCO Jaspersoft®Studio 6.1.1-Visual Designer-JasperReports社区版

    在打印时使用它的问题是它的
    计算时间
    ,您无法更改,因此需要像


    然而,这个问题的真正解决方案是使用
    带,添加它是为了能够在最后一页页脚中有不同的内容,因此不需要有黑客攻击的表达式,只需将其保留在没有
    文本字段的情况下,就可以复制&Hi@AlexK,谢谢您的评论。我检查了提到的链接。1.第一个链接使用Textfield表达式仅根据条件更改文本。这种情况在我的情况下也已经起作用了。但是我想在打印时使用它,而不是表达式,如果元素不应该显示在页面上,它将完全隐藏元素本身。所以,我认为这不适合我。2.我想米希尔给出的解决方案是不完整的。没有解释。我还尝试在summay中添加他的表达式,但随后摘要本身消失了:(您是否尝试过Boolean.FALSE或Boolean.TRUE而不是FALSE或TRUE?或者从表达式中删除您的==FALSE“新的布尔($V{pNumber}.equals($V{PAGE_NUMBER}))==FALSE”。非常感谢@Petter Friberg。同时使用您建议的页脚和最后一页页脚解决了我的问题。这是解决我问题的非常简单和直接的方法。再次感谢:)