我在提示页面上有一个静态选择的报告 . 用户可以选择“完整详细信息”或“汇总” .
有关简化示例,请说我的报告包含以下列:客户,产品,日期,数量, Value .
我希望能够根据详细级别选择显示/隐藏Date列,并将Quantity和Value列聚合到一个Customer / Product行中 . 我知道如何显示/隐藏列(将选择变量绑定到列的渲染变量),但这不会进行聚合,只会使列不可见 .
我已经考虑过为完整明细和摘要做一个单独的报告页面,但在我的实际报告中,我有一个第二个选择框,用户可以选择一个字段来总结(例如客户或产品),报告将部分 - 按该字段分组 . 目前我每页都做一次(其中5次) . 以相同的方式进行细节选择意味着我需要10页 . 肯定有更好的方法 .
全部细节:
Customer Product Date Qty Value
ABCD Things 22/10/2014 10 1.00
21/10/2014 40 4.00
23/10/2014 50 5.00
总结(隐藏Date列之后如何看待当下):
Customer Product Qty Value
ABCD Things 10 1.00
40 4.00
50 5.00
总结(我希望它看起来如何):
Customer Product Qty Value
ABCD Things 100 10.00
我正在使用Cognos Report Studio 10.1.1
2 回答
你不应该只是隐藏列 . 您还应该在所有行中为此列设置相同的值,而不仅仅是此列集中的[Date]
或者,如果你喜欢CASE
替换?HideDate? = 1你自己的条件
如果您使用标准的Cognos'自动组并总结'功能,Alexey的答案很棒 .
如果您的自定义聚合在其定义中包含[Date]列,则可能会在修改聚合函数本身时减少一些性能提升,以便在需要汇总总计时忽略[Date]列 .
如果您的聚合函数是:
..你可能会将此更改为CASE语句,如下所示:
'for'子句后面的数据项通常最终出现在结果SQL中的GROUP BY子句中 . 在可能的情况下限制分组的项目可以帮助提高性能 . 在这种情况下,性能提升可能会很小,因为在Alexey的解决方案中只有一个不同的值,但这是需要考虑的事情 .