要求如下:
Country > City > Department
和Country > Department > City
。我正在尝试通过为每个层次结构添加子报表来实现此目的。由于隐藏的子报表是自动加载的,我无法切换多个子报表的可见性,或者数据将被加载两次。子报表的ReportName属性不允许使用表达式。我可以使用自定义代码来解决这个问题,或者什么是可行的解决方案?
答案 0 :(得分:1)
有很多方法可以做到这一点。
如果您的数据集嵌入在报告中,那么我认为最简单的方法是:
Country > City > Department
的标签设置值为1,为Country > Department > City
设置值为在SSRS中向数据集添加两个计算字段。 (右键单击数据集名称并选择“添加计算字段...”。将一个名称命名为“MiddleGroupName”,将另一个名称命名为“InnerGroupName”。将字段源设置为这样的公式,用于MiddleGroupName:
=IIF(Parameters!GroupingOrder.Value = 1, Fields!City.Value, Fields!Department.Value)
在报告中将这些计算字段用作普通组。
对于奖励积分,请根据您的参数设置列标题:中间组的列标题可以是:
=IIF(Parameters!GroupingOrder.Value = 1, "City", "Department")
另一种方法可能涉及将这些计算移入分组逻辑本身。
但在这种情况下,我会避开子报告。它们往往会损害性能并导致调试困难。