用SSRS将MultiValue参数传递给子报表中的级联参数

时间:2013-12-31 23:00:52

标签: sql-server reporting-services

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

  1. 从日期(日期时间)
  2. 至日期(日期时间)
  3. 区(多值字符串)
  4. 项目ID(多值字符串)
  5. Item ID参数是一个级联参数,取决于From和To Date。当值从主报表传递到不在该日期范围内的子报表时,我遇到了未设置参数的问题。以下面的例子为例:

    Group    Item ID
    Banks    ABCD  01
             ABCD  02
             ABCD  03
             ABCD  04
    

    上述值在主报告中使用的设置表中定义。这个想法是,银行集团应该将这些项目ID与它们相关联。这些值通过Item ID参数传递给子报表。问题是,当参数传递给子报表时,并非所有项ID都必须位于给定日期范围的数据中。在这种情况下,SSRS在加载子报表时不会选择任何项ID。

    其他一些信息:

    • 需要以这种方式将Item ID参数设置为级联参数,因为有超过一千个不同的值,并且SSRS在多值列表中不支持超过1,000个项目。
    • 两个报告使用的表都是事务表,因此查询速度很慢。我想避免执行另一个数据集来确定哪个Item ID实际上在主报表的日期范围内(因为无论如何在加载子报表时都会发生这种情况)。
    • 如果报告中给定日期范围内的所有4个项目ID都可用,则会正确选择它们。

    我原以为可以创建一个运行值类型字段,该字段将Item ID连接到主报表中的字符串,然后将其拆分并传递给子报表。这将获得查询中实际使用的项ID,而无需再次执行查询。我认为如果它们不包含在参数值列表中,也可以修剪子报表中的值?我猜,如果这是可能的,我将需要一个隐藏参数来完成这项工作,然后从隐藏参数设置主参数。

    有关如何处理这种情况的任何想法?如果您需要任何其他信息,请与我们联系。

0 个答案:

没有答案