我创建了自己的Java类(类型),以便在jasper报告中显示货币(欧元)值时让生活变得更轻松。
public class Euro extends Number implements Comparable<Euro> {
@Override
public String toString() {...}
@Override
public boolean equals(Object obj) {...}
@Override
public int hashCode() {...}
}
数据显示在表格中,一切正常。即使对整列进行排序也很有效。但是,如果我想像“大于”那样过滤列 - 过滤后不会显示数据。
当我将数据类型更改为BigDecimal排序时。
我做错了什么?或者任何人都可以告诉我,当jasper尝试过滤数据时会做些什么?
答案 0 :(得分:0)
问题是帽子jasper不知道列的正确数据类型,应该过滤。
因此,您必须定义应过滤哪个字段或变量:
表中既不可排序也不可过滤的列在其详细文本字段表达式中包含复杂公式。 JIVE查看详细文本字段中的表达式,以了解在排序和过滤后需要的数据源字段或变量是什么。当文本字段使用仅包含字段或变量名称的简单表达式时,事情就会顺利进行。
另一种方法是在表组件中的列级指定,这是用于排序和过滤的字段或变量,使用可在列标记中设置的以下两个自定义属性之一/对象:
net.sf.jasperreports.components.table.column.field
net.sf.jasperreports.components.table.column.variable
How to make JIVE filtering/soring feature work on column in the table that contains expression