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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.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 使用行和列总和的交点作为参数调用详细信息报告_Reporting Services_Ssrs 2012_Ssrs Tablix - Fatal编程技术网

Reporting services 使用行和列总和的交点作为参数调用详细信息报告

Reporting services 使用行和列总和的交点作为参数调用详细信息报告,reporting-services,ssrs-2012,ssrs-tablix,Reporting Services,Ssrs 2012,Ssrs Tablix,说明: 我有一份汇总ATM交易的报告。此报表具有具有以下属性的Tablix: 排; 货主,码头。 柱;月、日(日期)、小时 行将终端分组为供应商的子级,列将小时分组为日期的子级,日期分组为月份的子级。行组和列组属性指定每个子可见性由其父级切换,如果每个子可见性都要隐藏,则指定默认值。 交叉点的占位符值属性设置为Sum()事务。该操作设置为转到报告,并指定接受的详细报告; 开始日期, 结束日期, 小贩, 终点站 作为详细信息报告的参数。每次单击链接时,它都会调用详细信息报告,并在运行时设置数据集

说明: 我有一份汇总ATM交易的报告。此报表具有具有以下属性的Tablix: 排; 货主,码头。 柱;月、日(日期)、小时

行将终端分组为供应商的子级,列将小时分组为日期的子级,日期分组为月份的子级。行组和列组属性指定每个子可见性由其父级切换,如果每个子可见性都要隐藏,则指定默认值。

交叉点的占位符值属性设置为Sum()事务。该操作设置为转到报告,并指定接受的详细报告; 开始日期, 结束日期, 小贩, 终点站 作为详细信息报告的参数。每次单击链接时,它都会调用详细信息报告,并在运行时设置数据集参数。因此,对于“North”,详细报告将显示与供应商“North”关联的41765行

问题: 无论矩阵中的细节分辨率如何,当单击Sum()值调用细节报告时,运行时设置的数据集参数都会发送到细节报告。例如,如果我从一个月到另一个月进行深入调查,我发现供应商“West”在2018-07-01的交易总额为81。如果单击该链接调用详细信息报告,它将返回开始日期和结束日期的总行数(1577行),而不是预期的日期(81行)。此行为在交叉口组合中复制。

请求: 如何调用详细信息报告,使其仅返回当前状态下交叉点分辨率指定的行?Ie:Month\Date:Vendor的总和或Month:Vendor\Terminal的总和或Month\Date\Hour:Vendor\Terminal的总和

完成请求的最佳方法是什么?我的研究没有提出任何有效的建议。我尝试在占位符属性表达式中使用InScope(),但似乎无法正确使用


谢谢你的帮助

您的想法是正确的,您必须使用Inscope

第1步:

对于主报表中用于调用子报表的每个参数,请使用以下表达式

= Iif( Inscope("matrix1_Terminal"), Fields!Terminal.Value, Nothing)
对于数字参数(如月数),设置一个伪值,如-1,因为不允许使用空值

= Iif( Inscope("matrix1_Month"), Fields!Month.Value, -1)
第二步:

在子报表中,更改参数以接受空值(仅适用于字符串和日期)

第三步:

在子报表上,调整查询代码以处理伪参数值

用于字符串或日期

WHERE (terminal = @Terminal or @Terminal IS NULL)
对于数值

WHERE (month = @Month or @Month=-1)
重要 不要忘记将其他需要的参数传递给子报表,如原始报表的WHERE中的过滤器

提示:在子报表中,使用临时字符串参数进行调试,并传递Inscope表达式的值