我在jasper报告中遇到有关设计文档模板的问题。它就像一份简历。
我有这个文件:
年龄[静态文字] | [某些字段A]
性别[静态文字] | [某些字段B]
位置[静态文字] | [某些字段C]
我的jasper报告的当前结构如下:
我有这个框架A,它有一个垂直布局。 模板中的每一行(年龄,性别,位置)都对应于我创建了第1,2和3帧的框架。
假设,第1帧的横向布局为'年龄[静态文字]'和[某些字段A]'作为其内容。这适用于第2帧和第3帧。
第1帧的位置类型相对于顶部是固定的,而第2帧和第3帧是浮动的。
如果[some field] B为null或为空,我希望隐藏行性别并向上移动。我怎么能这样做?
我尝试过删除行空白但它只适用于包含多个字段的框架内。基本上,我希望隐藏第1帧,如果[某个字段A]为空或空,则将帧2和3向上移动。
我希望得到最快的回应。
答案 0 :(得分:3)
获得所需的结果集:
positionType="Float"
位于reportElement
内的frame
(需要移动,基于其他元素。
isRemoveLineWhenBlank="true"
,根据printWhenExpression
在printWhenExpression
es中检查所有字段内的字段。 new Boolean($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报告3和jdk 1.4的兼容性我使用了新的布尔值(...)这在jasper报告5,6中不是必需的