如何隐藏/显示最后一页上的图像或textField?

时间:2019-01-04 13:19:03

标签: jasper-reports

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

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

1 个答案:

答案 0 :(得分:0)

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

来自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}被评估为总页数。