我有一个类似这样的CSV数据源:
User,Site,Requests
user01,www.facebook.com,54220
user01,plusone.google.com,2015
user01,www.twitter.com,33564
user01,www.linkedin.com,54220
user01,weibo.com,2015
user02,www.twitter.com,33564
user03,www.facebook.com,54220
user03,plusone.google.com,2015
user03,www.twitter.com,33564
在报告中,我想显示每个用户的前3行(最大值),而其他行只会显示组总数。如何将报告限制为每组仅打印3行?
e.g
User Site Requests
user01 | www.facebook.com | 54220
plusone.google.com | 2015
www.twitter.com | 33564
| 146034
user02 | www.twitter.com | 33564
| 33564
user03 | www.facebook.com | 54220
user03 | plusone.google.com | 2015
user03 | www.twitter.com | 33564
| 89799
这真的只是我正在努力的限制线,其余的工作正常。
答案 0 :(得分:1)
我找到了一种方法,如果有人能想出一个更优雅的答案,我会很高兴看到它,因为这感觉有点hacky!
详细信息中的每个项目:
<reportElement... isRemoveLineWhenBlank="true">
<printWhenExpression><![CDATA[$V{userGroup_COUNT} < 4]]></printWhenExpression>
</reportElement>
其中userGroup是我要分组的字段。我似乎只需要第一个元素的isRemoveLineWhenBlank
属性。
答案 1 :(得分:0)
您可以考虑使用子报表,查询主报表中的分组字段,然后将分组字段作为参数传递到子报表中;这种方法的优点是避免报表引擎实际循环遍历所有不需要的行(尽管它们未显示)并花费不必要的服务器到服务器或服务器到客户端带宽,尤其是当返回的数据集很大时< / p>