Reporting services 将ssrs参数中的多个值发送到子报表
目前有三个子报告,一个主报告 主报告有两个参数-SELECTDATE和EMP_ID。主报告向所有子报告发送订单编号 当我只选择1个员工和1个日期时,所有子报告都能完美工作,但如果我选择多个值,它就会崩溃 SQL将列设置为INT。我在主报表和子报表中都有参数,SELECTDATE设置为具有多个值的文本,EMP_ID设置为具有多个值的整数。我的查询在@SELECTDATE中有我的日期,在@emp\u id中有emp\u idReporting 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 它显然会将正确的信息发送到子报表,因为它可以工作,但我希望它能够处理传递的
它显然会将正确的信息发送到子报表,因为它可以工作,但我希望它能够处理传递的更多值。喜欢当前选中和取消选中员工和月末日期的功能,就像当前在我的查询中使用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优化的临时表中,有时优化器会做一些有趣的事情…