我正在尝试对 交叉表 中的列组进行排序,但 iReport 正按名称升序应用自己的排序。我尝试插入“按顺序排序”,但它没有用。 (字段未找到错误!)
按字段/变量添加自己的排序的正确方法是什么?或者我预先分类数据,按原样查看。
答案 0 :(得分:3)
我有类似的问题。我想从数据库中显示“标题”,但我不希望它按字母顺序排序,因为标题的顺序是用户确定的。
我有一个HeadingOrder字段,我想要排序。要在排序表达式中使用它,它必须位于交叉表中。
我已经在我的专栏中进行了标题,因此创建了2个列组:1)HeadingOrder 2)标题。
我删除了显示标题订单号的文本字段,并折叠了该区域,因此未显示。这允许交叉表在使用HearingOrder字段作为支配排序时显示标题。
答案 1 :(得分:2)
替代方法:
将字段(将在Column-Group中使用)与sql查询本身中的sort by字段连接。假设字段名称是“title”,排序字段名称是“rank”,那么
select (mt.rank ||'-'|| mt.title) as title from my_tab mt
(以上查询特定于postgresql)
像往常一样在corsstab column-group中使用此“title”字段。
单击交叉表上“标题”列组的文本字段。
在属性面板中将其“文本字段表达式”编辑为 $ V {title} .split(“/”)[1]
答案 2 :(得分:1)
右键单击ReportInspector中的交叉表 - >单击交叉表数据 将打开一个新窗口。 现在点击数据已预先排序。这将完成工作
答案 3 :(得分:0)
user1120946,对我来说,诀窍是禁用子组的总数(例如标题),并且仅启用overgroup的总数(例如HeadingOrder)。然后将测量值放在HeadingOrderTotal列中。
这是对第二个答案的评论。
答案 4 :(得分:0)
这是 Crosstab Sorting in JasperReports 的副本,引用的“相当干净,但基于隐藏群组的棘手解决方案效果很好