Reporting services 在SSR中只允许一次向下钻取
我花了几个小时的时间搜索和整理零碎的部分来找到解决方案,所以我想我应该把它贴在这里,希望能帮助其他人 问题是:我们需要显示一个带有适当分组和深入分析的报告。然而,我们应该一次只允许钻取一组Reporting services 在SSR中只允许一次向下钻取,reporting-services,Reporting Services,我花了几个小时的时间搜索和整理零碎的部分来找到解决方案,所以我想我应该把它贴在这里,希望能帮助其他人 问题是:我们需要显示一个带有适当分组和深入分析的报告。然而,我们应该一次只允许钻取一组 SSRS并没有强大的脚本选项——例如,您不能“单击”关闭其他组或类似的操作。那么您是如何做到这一点的呢?在我的示例中,我使用的是AdventureworksDW数据库。我想有一个数据集,其中包括每个集团和地区的总销售额。我的存储过程如下所示: SELECT dst.SalesTerritoryGroup,
SSRS并没有强大的脚本选项——例如,您不能“单击”关闭其他组或类似的操作。那么您是如何做到这一点的呢?在我的示例中,我使用的是AdventureworksDW数据库。我想有一个数据集,其中包括每个集团和地区的总销售额。我的存储过程如下所示:
SELECT dst.SalesTerritoryGroup,
dst.SalesTerritoryRegion,
SUM(fis.SalesAmount) AS SaleTotal,
DATEPART(YEAR,fis.OrderDate) AS OrderYear
FROM [dbo].FactInternetSales AS fis
INNER JOIN [dbo].DimSalesTerritory AS dst
ON fis.SalesTerritoryKey = dst.SalesTerritoryKey
WHERE fis.OrderDate < @QueryEndDate
GROUP BY
dst.SalesTerritoryGroup,
dst.SalesTerritoryRegion,
DATEPART(YEAR,fis.OrderDate)
UNION ALL /*The ResellerSales table. Same info.*/
=iif(Parameters!ExpandedGroup.Value="" or
Fields!SalesTerritoryGroup.Value<>Parameters!ExpandedGroup.Value,True,False)
此表达式表示:如果组与展开的组相同,请在加载报告时将ExpandedGroup设置为空字符串。否则,发送TerritoryGroup值。本质上,这将允许我们打开和关闭深入查看(与您在报告中使用传统深入查看时所做的相同)
注意:还要确保传递其他参数!例如,我的查询需要一个日期来排除某些事务数据。如果在“转到报告”操作中未传递此参数,则在向下搜索时必须再次输入。这也意味着您可以在单击向下搜索(更改显示的图表等)时为自己提供更大的灵活性,这正是我为该项目所做的
希望它能帮助别人!当然,如果有一个更优雅或更简单的解决方案,我绝对愿意听到
=IIF(Fields!SalesTerritoryGroup.Value=Parameters!ExpandedGroup.Value,
"",
Fields!SalesTerritoryGroup.Value)