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