【问题标题】:Would like to display "To be contined" for all pages in report and for last report "End of report" has to be displayed using iReport想要为报告中的所有页面显示“待续”,对于最后一个报告,“报告结束”必须使用 iReport 显示
【发布时间】:2016-04-13 16:24:46
【问题描述】:

我设计了一个 iReport,它应该显示报告中的所有记录。例如,如果报告有 2 页,则无论您使用多少页,第一页都应显示“待续”,第二页应显示“报告结束”。

我在报表的页脚放置了一个标签,并将“表达式时打印”属性更改为

$V{PAGE_NUMBER}.equals($V{PAGE_COUNT}.toString()) ? "End of Report" : "Continue"

并在执行报告时显示错误

Error filling print... java.lang.String cannot be cast to java.lang.Boolean 
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean 

【问题讨论】:

    标签: jasper-reports


    【解决方案1】:

    您应该填写的属性是Text field expresion 并更改为:

    $V{PAGE_NUMBER}.equals($V{PAGE_COUNT}) ? "End of Report" : "Continue"
    

    因为您正在比较整数。

    您在 xml 中的文本字段应该是:

    <textField>
        <reportElement x="xx" y="xx" width="xx" height="xx" uuid="xxxx"/>
        <textElement textAlignment="xxx" verticalAlignment="xxx">
            <font fontName="xx"/>
        </textElement>
        <textFieldExpression><![CDATA[$V{PAGE_NUMBER}.equals($V{PAGE_COUNT}) ? "End of Report" : "Continue"]]></textFieldExpression>
    </textField>
    

    【讨论】:

    • 知道如何指定文本字段表达式
    • @Pallavi 我已将代码添加到 xml,但 ireport 设计的文本字段元素具有该属性。
    • 它在 iReport 中的工作我应该用页面中的批量记录检查它并进行测试。总之谢谢
    • @Jilema 当我将数据显示在相应的报告中并尝试使用您共享的相同表达式时,它的工作方式不同,例如:我有 14 页从第 1 页到第 11 页显示要继续,在第 11 页显示报告的结尾,其余页面显示要继续。它没有按预期工作
    猜你喜欢
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多