Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reporting services 在SSR中只允许一次向下钻取_Reporting Services - Fatal编程技术网

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)