【问题标题】:How to hide/show and image or textField on last page?如何在最后一页隐藏/显示和图像或文本字段?
【发布时间】:2019-01-05 05:37:54
【问题描述】:

在 Jasper 工作室中,我如何禁用/显示报告中单个页面的背景。

我想禁用我在最后一页背景中设置的水印图像。

【问题讨论】:

    标签: jasper-reports


    【解决方案1】:

    当您需要将当前页面与总页面数进行比较时,我知道的最简单的方法是在元素上使用“自动”评估类型。

    来自EvaluationTimeEnum

    变量将在与其重置类型相对应的时间进行评估。

    解决方案改编自 lucianc 在https://community.jaspersoft.com/questions/514622/print-when-last-page的回答

    创建一个包含当前页面的变量,该页面具有重置类型的页面(因此它在自动作为当前页码时进行评估)

     <variable name="currentPageInAutoEval" class="java.lang.Integer" resetType="Page">
        <variableExpression>$V{PAGE_NUMBER}</variableExpression>
     </variable
    

    在您的元素(文本字段、图像等)上将评估时间设置为“自动”,并在表达式中使用 ternary operator

    在你的情况下,最后一页上没有图片

    <image evaluationTime="Auto">
        <imageExpression>$V{currentPageInAutoEval}.equals($V{PAGE_NUMBER}) ? null : yourImage</imageExpression>
    </image>
    

    因此,evalutationTime="Auto" $V{currentPageInAutoEval} 将被评估为 resetType (Page) 到当前页码,$V{PAGE_NUMBER} 被评估为总页数。

    【讨论】:

    • 不能将该评估移到 printWhen 字段中吗?
    • @metters 不,这是不可能的,因为“print when”表达式没有延迟评估。您需要在 imageExpression 中使用三元表达式。
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 2016-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 2021-06-27
    相关资源
    最近更新 更多