Jasper报告数据过滤
我正在使用jasper报告,通过JRMapCollectionDataSource
提供数据。具体而言,每行是水木清华这样的:Jasper报告数据过滤
{"id"->"21552", "name"->"", "date"->"22.03.2013"}
现在我需要包括报告只有那些记录,其中id
大于10,例如。我该怎么办?
我发现了filterexpression
标签,但它只适用于子数据集。那么,我如何将它应用到主数据集?
当我试图把filterexpression
的jasperReport
标签内,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.
过滤表达式不限于子数据集。只需将filterExpression
标记放在jasperReport
标记内,并将其应用于主数据集。
安置很重要,看来。过滤器表达式必须位于任何内容之前,但在声明域之后。
非常感谢您的回复。我试过这样做,但是iReports在这种情况下给出了一个例外,我用异常消息更新了我的答案。 – tmp120210
有趣。您以前可以在主报告中使用过滤器表达式,但似乎此功能已在最新版本的jasperreports中删除。 – GenericJon
忽略我以前的评论。如果我错误地放置标记,我会得到同样的异常。它必须出现在任何内容(pageHeader,细节等)之前,但在任何字段之后。我不确定是否有其他标签影响它。尝试使用展示位置来寻找可行的东西。 – GenericJon