gpt4 book ai didi

java - 如何在运行时从 jasper 中删除标题标签?

转载 作者:行者123 更新时间:2023-11-30 07:41:30 24 4
gpt4 key购买 nike

我的标题标签有 3 个子项、一张图像和 2 个文本字段。无论如何,如果所有 3 个子项都为空,我想从报告中删除/隐藏完整的标题标签。有没有办法在运行时执行此操作而不更改我的 jrxml 文件。

最佳答案

您可以将 jrxml 加载到 JasperDesign 对象中并设置标题 null

示例

JasperDesign design = JRXmlLoader.load("jasper/dbTest2.jrxml");
design.setTitle(null);
JasperReport report = JasperCompileManager.compileReport(design);

请注意,要使用此功能,您需要在填写报告之前了解是否要删除 strip 。

填写报告后,您将拥有一个 JasperPrint,这也可以进行操作,但您需要逐页进行操作(不再有标题带,而是页面表示)。删除对象意味着您需要移动所有其他对象...

正确的方法通常是在title区域使用printWhenExpression

<title>
<band height="201">
<printWhenExpression><![CDATA[$F{image1}!=null && $F{text1}!=null && $F{text2}!=null]]></printWhenExpression>
... your images and text fields
</band>
</title>

因此请考虑修改您的 jrxml 或在运行时添加此表达式。

JasperDesign design = JRXmlLoader.load("jasper/dbTest2.jrxml");
JRDesignBand title = (JRDesignBand) design.getTitle();
title.setPrintWhenExpression(new JRDesignExpression("$F{image1}!=null && $F{text1}!=null && $F{text2}!=null"));

关于java - 如何在运行时从 jasper 中删除标题标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34630996/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com