jrxml文件</group>中<group>标记的用途是什么

时间:2014-03-20 15:46:53

标签: jasper-reports ireport

任何人都可以用非常简单的词语解释<group>标签的含义。我已经读过这个:enter link description here

但是我无法得到它,我在三小时内播放报告却无法获得任何结果。

__

我有一个csv数据源看起来像这样:

Name | Value
-------------
Ab   | 123
Ba   | wow
Cb   | got
De   | it

例如,我想只获取值列中的条目,其中Name列中的条目是“Cb”(将是“got”)。 因此,我创建了一个组:以下表达式:$F{Name}.compareToIgnoreCase("Cb")

不幸的是,我总是得到整个专栏,但我只想要一个条目。

我是否以正确的方式使用群组标签?也许我误解了这个标签的预期目的。

任何帮助都将不胜感激。


2014日至22: 我使用以下csv文件作为数据源创建了一个简单的示例PastBin:minimalcode-jrxml-file

Name;Tom
Birthday;01-May-1980
Country;Germany
sex;male

以下是设计视图的截图(ireports 5.5.0): enter image description here 这是我点击预览(在ireports中)时得到的,遗憾的是这不是我想要的: enter image description here 也许有人可以帮忙。 感谢

2 个答案:

答案 0 :(得分:2)

此标记的目的是根据特定列值对&#34; 分组/联合数据。让我们以经典的HR模式为例。每个Employee都与特定的Department相关联。在将所有员工都放入报告中的同时,您可以根据他们所连接的部门将这些员工划分为 (即:通过为{{创建一个组) 1}}属性)。一个简单的用法可能是为每个部门创建包含员工记录的不同表。基本上,它与SQL中的employee.department_id子句功能相同(只有Jasper知道这些组并允许您自定义它们)。

在您的情况下,我不太确定使用的表达式是否正在创建一个jasper-group。无论如何,你正在尝试做的事情(我的意思是,只获得那个记录)可以通过一个&#34; WHERE&#34;报告查询中的子句:Group

答案 1 :(得分:1)

您不需要使用组过滤器表达式:

<filterExpression><![CDATA[$F{Name}.equalsIgnoreCase("Cb")]]></filterExpression>