【问题标题】:what is this error and how do I prevent this? The bucket expression values are not comparable and no comparator specified这是什么错误,我该如何预防?桶表达式值不可比较且未指定比较器
【发布时间】:2014-02-27 12:03:19
【问题描述】:

我将 jasperReports 与 dynamicReports 一起使用,并且我想构建一个交叉表报告。到目前为止,我已经发现当我将数字列添加到 rowGroups 或 columnGroups 时会发生此错误。这就是我得到的,我不知道为什么,也不知道如何解决这个问题。

错误是:

The bucket expression values are not comparable and no comparator specified

我的代码是:

    CrosstabValues crosstabValues = report.getCrosstab().getCrosstabValues();
    Collection<CrosstabRowGroupBuilder> rowGroup = generateRowGroup(crosstabValues);
    Collection<CrosstabColumnGroupBuilder> columnGroup = generateColumnGroup(crosstabValues);
    Collection<CrosstabMeasureBuilder> measures = generateMeasures(crosstabValues);

    CrosstabBuilder crosstab = ctab.crosstab();

    for(CrosstabRowGroupBuilder row : rowGroup)
        crosstab.addRowGroup(row);
    for(CrosstabColumnGroupBuilder columnGroupBuilder : columnGroup)
        crosstab.addColumnGroup(columnGroupBuilder);
    for(CrosstabMeasureBuilder measure : measures)
        crosstab.addMeasure(measure);

    crosstab.headerCell(cmp.text(crosstabValues.getHeader())
    .setStyle(getCrosstabHeaderCellStyle(report.getTemplate().getReportTemplateValues())));

【问题讨论】:

  • 请显示一些代码;虽然有些人可以猜测会发生什么,但没有上下文就无法给出适当的答案
  • 好的我会这样做,但代码会令人困惑并且没有帮助
  • @user2304200 so far I have figured out that this error happens - 什么错误?
  • @AlexK 下一行是错误兄弟:
  • 桶表达式值不可比较且未指定比较器

标签: java jasper-reports dynamic-reports


【解决方案1】:

问题是我给这个方法的类:

CrosstabRowGroupBuilder cTabRow = ctab.rowGroup(column.getName()
, getColumnTypeClass(column));

我对所有数字数据使用 Number 类。有趣的是,它适用于度量,但不适用于 rowGroup 或 columnGroup。这就是我感到困惑的原因。

现在使用 Integer.Class 或 Long.Class 效果很好。

【讨论】:

    【解决方案2】:

    Crosstab 必须知道以什么顺序显示 rowHeader 或 columnHeader。并且交叉表必须知道交叉表放置度量在哪个单元格。只有当交叉表能够比较 rowGroup(和ColumnGroup)值时才有可能。

    rowGroup和columnGroup中使用的类必须implements Comparable接口

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-21
      • 2017-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 2015-04-18
      相关资源
      最近更新 更多