Jaspersoft Studio:按组页脚中的计算值对表进行排序?



我们通过JasperReport的域层从数据库中获取事件记录。每条记录都包含用户和时间值:

userid0 | 00:20:10 | 00:15:00
userid2 | 00:12:00 | 00:17:00
userid0 | 00:05:05 | 00:02:30
userid1 | 00:25:00 | 00:50:00

我们的表应列出每个用户的累积值。每条记录的时间简单地汇总在一个变量中。对于上面的示例,结果将是:

userid0 | 00:25:15 | 00:17:30
userid1 | 00:25:00 | 00:50:00
userid2 | 00:12:00 | 00:17:00

此外,应显示生成的两个时间值的比率(以百分比表示(。
计算是通过对用户进行分组来完成的,结果显示在组页脚中(丢弃"详细信息"(;所以这里我们将有三个组页脚:

userid0 | 00:25:15 | 00:17:30 | 144%
userid1 | 00:25:00 | 00:50:00 |  50%
userid2 | 00:12:00 | 00:17:00 |  71%

如何根据第 4 列中的"%"值对表格进行排序?该值不对应于数据字段,并且仅包含在组页脚中。但要求是按此值对整个表进行排序,例如从 50% 升序到 144%,并将结果限制为前(或最后(5 行(即用户(。

当然,所需的结果可以通过SQL实现,但如上所述,我们使用的是域层。

虽然回答你自己的问题似乎是一种奇怪的方法,但我(至少(出于文档目的写这个:

经过研究和反复试验,我们决定在这种情况下不使用域层,因为这似乎根本不可行。一个详细的SQL语句就可以了。

这简化了表,因为计算和分组由数据库完成(从而提高了性能(,因此报表表中不需要更多分组 - 我们可以以普通方式使用详细信息部分,只显示查询的结果。

最新更新