JasperReports:隐藏帧A中的帧B,如果帧B中的字段为空或为空

时间:2015-12-07 03:35:54

标签: jasper-reports subreport

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

我有这个文件:

标题[静态文本]

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

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

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

我的jasper报告的当前结构如下:

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

假设,第1帧的横向布局为'年龄[静态文字]'和[某些字段A]'作为其内容。这适用于第2帧和第3帧。

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

如果[some field] B为null或为空,我希望隐藏行性别并向上移动。我怎么能这样做?

我尝试过删除行空白但它只适用于包含多个字段的框架内。基本上,我希望隐藏第1帧,如果[某个字段A]为空或空,则将帧2和3向上移动。

我希望得到最快的回应。

1 个答案:

答案 0 :(得分:3)

获得所需的结果集:

  1. positionType="Float"位于reportElement内的frame(需要移动,基于其他元素。

    < / LI>
  2. isRemoveLineWhenBlank="true",根据printWhenExpression

  3. 删除
  4. printWhenExpression es中检查所有字段内的字段。 new Boolean($F{field1}==null || $F{field2}==null || $F{field3}==null)

  5. 实施例

    <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报告3和jdk 1.4的兼容性我使用了新的布尔值(...)这在jasper报告5,6中不是必需的