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 将ssrs参数中的多个值发送到子报表_Reporting Services_Parameters_Sql Server 2008 R2_Bids_Subreport - Fatal编程技术网

Reporting services 将ssrs参数中的多个值发送到子报表

Reporting services 将ssrs参数中的多个值发送到子报表,reporting-services,parameters,sql-server-2008-r2,bids,subreport,Reporting Services,Parameters,Sql Server 2008 R2,Bids,Subreport,目前有三个子报告,一个主报告 主报告有两个参数-SELECTDATE和EMP_ID。主报告向所有子报告发送订单编号 当我只选择1个员工和1个日期时,所有子报告都能完美工作,但如果我选择多个值,它就会崩溃 SQL将列设置为INT。我在主报表和子报表中都有参数,SELECTDATE设置为具有多个值的文本,EMP_ID设置为具有多个值的整数。我的查询在@SELECTDATE中有我的日期,在@emp\u id中有emp\u id 它显然会将正确的信息发送到子报表,因为它可以工作,但我希望它能够处理传递的

目前有三个子报告,一个主报告

主报告有两个参数-SELECTDATE和EMP_ID。主报告向所有子报告发送订单编号

当我只选择1个员工和1个日期时,所有子报告都能完美工作,但如果我选择多个值,它就会崩溃

SQL将列设置为INT。我在主报表和子报表中都有参数,SELECTDATE设置为具有多个值的文本,EMP_ID设置为具有多个值的整数。我的查询在@SELECTDATE中有我的日期,在@emp\u id中有emp\u id


它显然会将正确的信息发送到子报表,因为它可以工作,但我希望它能够处理传递的更多值。喜欢当前选中和取消选中员工和月末日期的功能,就像当前在我的查询中使用IN函数设置一样。

使子报表上的参数非多值,删除所有“可用值”集。 使用join方法将父报表中的多值参数作为字符串传递

=Join(Parameters!Emp_ID,",")
EMP_ID参数将设置为逗号分隔的列表,这是多值参数发送到查询的内容

我不确定这是如何处理文本查询的,但它可以处理存储过程


如果子报告也用作独立报告,则需要添加一个新参数,以允许用户从用户可以设置的参数向@Emp_Id发送参数值

使子报告上的参数非多值,删除任何“可用值”集。 使用join方法将父报表中的多值参数作为字符串传递

=Join(Parameters!Emp_ID,",")
EMP_ID参数将设置为逗号分隔的列表,这是多值参数发送到查询的内容

我不确定这是如何处理文本查询的,但它可以处理存储过程


如果子报告还用作独立报告,则您需要添加一个新参数,以允许用户从用户可以设置的参数向@Emp_Id发送参数值。我猜您没有将子报告中的参数设置为多选。如果已将子报表中的参数设置为multi-select,则只需按原样将参数从主报表发送到子报表即可。更多信息请参见

我想您没有将子报告中的参数设置为Multi-Select。如果已将子报表中的参数设置为multi-select,则只需按原样将参数从主报表发送到子报表即可。更多信息请参见

我使用了以下在SSRS2016中有效的解决方案。这也适用于文本参数

像上面建议的那样,通过连接值将参数作为字符串传递给子报表。 JoinParameters!恩皮德

在子报表中,接受参数作为文本。 在子报表的SQL中,使用SQL 2016的string_split函数返回一个值表,并将其连接到主查询。所以基本上如果你的参数名为EmpID_Multi do 。。。从字符串\u split@EmpID\u Multi,mv-ON-mv连接选择值。值=


注意:您可能会考虑将值拉到SQL优化的临时表中,有时优化器会做一些有趣的事情。

< P>我使用了以下的解决方案,它在SSRS2016中起作用。这也适用于文本参数

像上面建议的那样,通过连接值将参数作为字符串传递给子报表。 JoinParameters!恩皮德

在子报表中,接受参数作为文本。 在子报表的SQL中,使用SQL 2016的string_split函数返回一个值表,并将其连接到主查询。所以基本上如果你的参数名为EmpID_Multi do 。。。从字符串\u split@EmpID\u Multi,mv-ON-mv连接选择值。值=

注意:您可能会考虑将值拉到SQL优化的临时表中,有时优化器会做一些有趣的事情…