gpt4 book ai didi

jasper-reports - JasperReports : Hide frame B within frame A, 如果帧 B 中的一个字段为空或为空

转载 作者:行者123 更新时间:2023-12-03 22:44:15 24 4
gpt4 key购买 nike

我在 jasper 报告中遇到有关设计文档模板的问题。这就像一份简历。

我有这个文件:


标题[静态文本]

年龄[静态文本] | [某字段A]

性别[静态文本] | [某字段B]

位置[静态文本] | [某些字段 C]

我的 jasper 报告的当前结构是这样的:

我有这个框架 A,它有一个垂直布局。模板中的每一行(年龄、性别、位置)对应于我创建的框架 1、2 和 3。

例如,第 1 帧的水平布局以“Age [static text]”和“[some field A]”作为其内容。适用于第 2 帧和第 3 帧。

第 1 帧的位置类型是相对于顶部固定的,而第 2 帧和第 3 帧是 float 的。

如果[某些字段] B 为空或为空,我希望行性别被隐藏并向上移动。我该怎么做?

我试过在空白时删除行,但它只能在一个有多个字段的框架内工作。基本上,如果 [某些字段 A] 为空或为空,我希望隐藏第 1 帧并向上移动第 2 帧和第 3 帧。

希望尽快回复

最佳答案

为了达到你想要的结果集:

  1. positionType="Float"frame 内的 reportElement 上(它需要移动在其他元素的基础上。

  2. isRemoveLineWhenBlank="true",如果根据 printWhenExpression

    不可见,则删除
  3. printWhenExpression es 中包括对框架内所有 字段的检查。 新 bool 值($F{field1}==null || $F{field2}==null || $F{field3}==null)

例子

<frame>
<reportElement positionType="Float" x="13" y="12" width="287" height="35" isRemoveLineWhenBlank="true" uuid="ee6707a4-bcb4-402b-95c0-6f4613747d2f">
<printWhenExpression><![CDATA[new Boolean($F{field1}==null || $F{field2}==null || $F{field3}==null)]]></printWhenExpression>
.. your textFields ...
</reportElement>
</frame>

注意:为了与 jasper report 3 和 jdk 1.4 兼容,我使用了 new Boolean(...) 这在 jasper report 5,6 中没有必要

关于jasper-reports - JasperReports : Hide frame B within frame A, 如果帧 B 中的一个字段为空或为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34126032/

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