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
Sql server 使用SSRS将多值参数传递给子报表中的级联参数_Sql Server_Reporting Services - Fatal编程技术网

Sql server 使用SSRS将多值参数传递给子报表中的级联参数

Sql server 使用SSRS将多值参数传递给子报表中的级联参数,sql-server,reporting-services,Sql Server,Reporting Services,我有一个摘要报告,它将信息传递给SSRS中的详细子报告。子报表接受4个参数: 起始日期(日期时间) 截止日期(日期时间) 地区(多值字符串) 项目ID(多值字符串) Item ID参数是一个级联参数,取决于起始日期和截止日期。当值从主报表传递到不在该日期范围内的子报表时,我遇到了参数未设置的问题。以以下为例: Group Item ID Banks ABCD 01 ABCD 02 ABCD 03 ABCD 04 上述值在

我有一个摘要报告,它将信息传递给SSRS中的详细子报告。子报表接受4个参数:

  • 起始日期(日期时间)
  • 截止日期(日期时间)
  • 地区(多值字符串)
  • 项目ID(多值字符串)
  • Item ID参数是一个级联参数,取决于起始日期和截止日期。当值从主报表传递到不在该日期范围内的子报表时,我遇到了参数未设置的问题。以以下为例:

    Group    Item ID
    Banks    ABCD  01
             ABCD  02
             ABCD  03
             ABCD  04
    
    上述值在主报告中使用的设置表中定义。其想法是,银行组应该将这些项目ID与之关联。这些值通过Item ID参数传递给子报表。问题是,当参数传递到子报表时,并非所有的项目ID都必须在给定日期范围的数据中。在这种情况下,加载子报表时,SSRS不会选择任何项目ID

    一些补充资料:

    • Item ID参数需要以这种方式设置为级联参数,因为有超过1000个不同的值,并且SSR在多值列表中不支持超过1000个项目
    • 两个报表使用的表都是事务表,因此查询速度可能较慢。我希望避免必须执行另一个数据集来确定哪个条目ID实际上在主报表的日期范围内(因为加载子报表时无论如何都会发生这种情况)
    • 如果报告中给定日期范围内的所有4个项目ID都可用,则会正确选择它们
    我认为可以创建一个运行值类型字段,将项目ID连接到主报表中的字符串,然后拆分它并将其传递给子报表。这将获得查询中实际使用的项id,而无需再次执行查询。我认为,如果子报表中的值不包含在参数值列表中,那么也可以删除这些值?我猜,如果这是可能的,我需要一个隐藏参数来完成这项工作,然后从隐藏参数设置主参数


    我该怎么处理这种情况呢?如果您需要任何其他信息,请告诉我。

    您是否找到了答案?我现在面临这个问题,我认为唯一的解决方案是1)在报告中编写自定义代码,或2)在主数据集的输出中包含一个逗号分隔的多选参数选项列表,因此,我可以用它来设置深入参数,而不是在报告参数中选择的参数。