【问题标题】:Prevent grouping column header in JasperReports防止在 JasperReports 中对列标题进行分组
【发布时间】:2021-03-08 04:34:56
【问题描述】:

我想为我的数据制作一个交叉表模板。 对于每个值,都有一个时间戳、一个位置和我从中获取值的设备的名称。因此,我通过 Java 和 JRBeanCollectionDataSource 为我的报告提供了一个值列表,对于下面的示例,这将是 9 个值,而每个值都有 3 个附加参数以将其放置在交叉表中的右侧列/位置。 当我将此类数据提供给带有交叉表的 Jasper 报告时(需要交叉表,因为我不知道我的报告将有多少行和列),Jasper 对列进行排序/分组,输出如下所示:

但我想要的是按照我给报告的顺序显示数据,例如:

我正在使用 Java 用 JRBeanCollectionDataSource 和自定义的 DataSource 填充我的报告(这很完美,我已经使用这种方法几个月了)。

有什么办法可以防止这种列分组? (我有一个可用的交叉表模板,但我无法在我可以解决我的问题的帮助下找到属性)

希望你们能帮助我。

【问题讨论】:

  • @Alex K 为什么你删除了标签“java”?因为我用 Java 填充、编译和参数化我的 JasperReportTemplate 我认为这个标签取决于这里。如果解决方案可以是 java 程序给出的参数呢?

标签: jasper-reports crosstab


【解决方案1】:

您是否尝试告诉交叉表您的数据已经排序? http://jasperreports.sourceforge.net/schema.reference.html#crosstabDataset

单击交叉表元素,在“数据集”选项卡中,标记“数据预排序”。

【讨论】:

  • 我找不到这个选项,但我对我拥有的每个 ColumnGroup 执行了以下操作: 但它不起作用
  • 也许我的数据可能是问题所在,它们看起来像这样:{[time=01.01.2020;location=Vienna;name=Device1;value=5], [time=01.01.2020;location =柏林;名称=设备1;值=3],[时间=01.01.2020;位置=维也纳;名称=设备2;值=6],lkjashgölouashglöos[时间=02.01.2020;位置=维也纳;名称=设备1;值= 2], [time=02.01.2020;location=Berlin;name=Device1;value=6], [time=02.01.2020;location=Vienna;name=Device2;value=1], ...} 你可以说数据是“行预排序”的,“数据预排序”选项是否能够处理此类数据?
  • 谢谢,现在我找到了该选项 不幸的是,这并不能解决我的问题,现在数据以“疯狂”的方式显示,列标题也由 jasper 报告排序,我不能理解这个lookalike是如何产生的你知道交叉表是如何或从哪个方向生成的,或者应该如何对数据进行预排序?
  • 您确定数据的顺序吗?尝试详细打印它以查看jasper的订购情况。
  • 是的,我很确定订单。可能是我有一个“解决方案”,但它并没有真正解决问题:在 jasper 文档中,jasper 对交叉表中的数据进行了预排序,这是无法避免的。提到了一种方法,您可以通过编写自己的排序类来自己订购,但是对于我的需要,这太复杂了,所以现在当我想通过用户的给定输入订购数据时,我会生成一个 csv 在哪里我可以控制一切不过感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
  • 2013-04-19
  • 2020-11-16
  • 1970-01-01
  • 2015-07-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多