iReports分组错误 - 多次出现?

Mar*_*ark 6 expression ireport

我对iReports感到恼火.问题是我有一个数据集为多个客户返回数据,我想对客户ID使用"组表达式",并让报告为每个客户列出详细信息选项卡.

我发现,似乎是随机的,客户iReports会有更多的数据行生成两个或更多的分组(有时它会按照我的预期进行并将所有客户数据组合在一起),对客户的ID是相同而且不会改变.

谁看过这个吗?说实话,我不敢相信它实际上是一个错误,但我错过了一些东西.正在寻找尚未找到合适的结果.

Ale*_*x K 8

我认为这是一个数据排序问题.
来自iReport Ultimate Guide的报价:

JasperReports通过评估组表达式对记录进行分组.每次表达式的值更改时,都会创建一个新的组实例.引擎不执行任何记录排序(如果没有明确请求),因此当我们定义组时,我们应该始终处理记录排序.也就是说,如果我们想按国家/地区对一组地址进行分组,我们为报告选择的记录应该已按国家/地区排序.使用ORDER BY子句在使用SQL查询时对数据进行排序很简单.如果无法做到这一点(也就是说,从XML文档中获取记录时),我们可以请求JasperReports为我们排序数据.这可以使用查询窗口中提供的排序选项来完成


您可以通过以下方式对数据排序:

  • 如果使用Database jdbc连接数据源类型,您可以ORDER BY customerId在报表的查询中添加子句,其中customerId - 具有客户ID的字段的列名称
  • 如果使用File csv连接或类似的东西,你可以通过将field的sortField属性添加到报告的模板(jrxml文件)来组织数据排序:
<jasperReport ...>
    ...
    <field name="customerId" class="java.lang.String"/>
    <sortField name="customerId"/>
Run Code Online (Sandbox Code Playgroud)