2011-09-29 204 views
1

我正在使用jasper报告,通过JRMapCollectionDataSource提供数据。具体而言,每行是水木清华这样的:Jasper报告数据过滤

{"id"->"21552", "name"->"", "date"->"22.03.2013"} 

现在我需要包括报告只有那些记录,其中id大于10,例如。我该怎么办?

我发现了filterexpression标签,但它只适用于子数据集。那么,我如何将它应用到主数据集?

当我试图把filterexpressionjasperReport标签内,iReports失败,错误: 非常感谢您的回复,我已经试过这样做。我报告给我

exception:org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'property'. One of '{" http://jasperreports.sourceforge.net/jasperreports ":group, " http://jasperreports.sourceforge.net/jasperreports ":background, " http://jasperreports.sourceforge.net/jasperreports ":title, " http://jasperreports.sourceforge.net/jasperreports ":pageHeader, " http://jasperreports.sourceforge.net/jasperreports ":columnHeader, " http://jasperreports.sourceforge.net/jasperreports ":detail, " http://jasperreports.sourceforge.net/jasperreports ":columnFooter, " http://jasperreports.sourceforge.net/jasperreports ":pageFooter, " http://jasperreports.sourceforge.net/jasperreports ":lastPageFooter, " http://jasperreports.sourceforge.net/jasperreports ":summary, " http://jasperreports.sourceforge.net/jasperreports ":noData}' is expected.

回答

2

过滤表达式不限于子数据集。只需将filterExpression标记放在jasperReport标记内,并将其应用于主数据集。

安置很重要,看来。过滤器表达式必须位于任何内容之前,但在声明域之后。

+0

非常感谢您的回复。我试过这样做,但是iReports在这种情况下给出了一个例外,我用异常消息更新了我的答案。 – tmp120210

+0

有趣。您以前可以在主报告中使用过滤器表达式,但似乎此功能已在最新版本的jasperreports中删除。 – GenericJon

+0

忽略我以前的评论。如果我错误地放置标记,我会得到同样的异常。它必须出现在任何内容(pageHeader,细节等)之前,但在任何字段之后。我不确定是否有其他标签影响它。尝试使用展示位置来寻找可行的东西。 – GenericJon