4

我正在尝试对交叉表中的列组进行排序,但iReport正在按名称升序应用自己的排序。我尝试插入“Order By Exp.”,但没有成功。(未找到字段错误!)

按字段/变量添加我们自己的排序的正确方法是什么?或者我已经对数据进行了预排序,按原样查看。

4

5 回答 5

3

我有一个类似的问题。我想显示数据库中的“标题”,但我不希望它按字母顺序排序,因为标题的顺序是用户确定的。

我有一个我想要排序的 HeadingOrder 字段。要在排序表达式中使用它,它必须在交叉表中。

我的专栏中有标题,所以制作了 2 个专栏组:1) HeadingOrder 2) 标题。

我删除了显示标题顺序号的文本字段并折叠了该区域,因此它不显示。这允许交叉表在使用 HearingOrder 字段作为主导排序时显示标题。

于 2012-08-15T11:56:15.540 回答
2

解决方法:

  1. 将字段(将在列组中使用)与 sql 查询本身中的排序依据字段连接起来。假设字段名称为“title”,排序字段名称为“rank”,则

    select (mt.rank ||'-'|| mt.title) as title from my_tab mt
    

    (上面特定于 postgresql 的查询)

  2. 像往常一样在 corsstab 列组中使用这个“标题”字段。

  3. 单击交叉表上“标题”列组的文本字段。

  4. 从属性面板将其“文本字段表达式”编辑为$V{title}.split("/")[1]

于 2012-08-22T07:25:16.207 回答
1

右键单击 ReportInspector 中的交叉表->单击交叉表数据,将打开一个新窗口。现在点击数据是预先排序的。这将完成工作

于 2014-09-09T13:43:23.470 回答
0

这是JasperReports中交叉表排序的副本,并且引用的基于隐藏组的“相当干净但棘手的解决方案”效果很好

于 2014-02-07T16:36:08.247 回答
0

user1120946,对我来说,诀窍是禁用子组的总数(例如标题),并仅启用过度组的总数(例如 HeadingOrder)。然后只需将度量放在 HeadingOrderTotal 列中。

这意味着对第二个答案的评论。

于 2013-06-05T10:36:19.390 回答