【问题标题】:JasperReport Server - Interactively Filtering with own Java Data-Type doesn't workJasperReport 服务器 - 使用自己的 Java 数据类型进行交互过滤不起作用
【发布时间】:2017-09-12 05:29:11
【问题描述】:

我创建了自己的 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 在尝试过滤数据时会做什么?

【问题讨论】:

  • 你问的是 JasperReports 服务器吗?
  • @AlexK 是的,交互式过滤是在 JasperReport 服务器中完成的。 link。我已经改了标题。谢谢提示
  • 创建自定义 Number 实现的原因是什么?
  • @Narcis 更好的格式处理
  • 为什么不使用 textField 的 formatPattern 和里面的实际货币符号(例如 € #,##0.00 )?

标签: java jasper-reports jasperserver


【解决方案1】:

问题是 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

【讨论】:

    猜你喜欢
    • 2017-01-08
    • 1970-01-01
    • 2015-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-10-03
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    相关资源
    最近更新 更多