1

我的报告有一个有 5 个选项的参数。我在想,如果做出特定选择,另一个参数会提示用户回答额外的问题/设置。这可以在 SSRS 2008 中完成吗?如果没有,我只会硬编码一种方式或另一种方式。

4

1 回答 1

1

当然可以。您基本上将带有谓词的数据集绑定到第一个变量。

更新

  1. 假设我声明参数“选择”。

  2. 我创建了一个也称为 Choices 的数据集,它只是一个简单的两行返回:

    Select 'ChoiceA' as Choice
    union
    Select 'ChoiceB'
    
  3. 我回到步骤 1 中的参数并在左侧窗格中选择“可用值”并说“从查询中获取值”选择我称为“选择”的数据集,然后选择“选择”作为值和标签。现在,当您预览报告时,该参数有一个带有两个选项的下拉列表。但是你想知道它是否会影响更多,它可以。

  4. 添加另一个名为“SubChoices”的数据集并使其数据集为:

     Select * 
     from (
      Select 'ChoiceA' as Choice, 'Yes' as SubChoice
      Union
      Select 'ChoiceA', 'No'
      Union
      Select 'ChoiceB', NULL
    ) as x 
    where Choice = @Choices
    order by SubChoice desc
    

    请注意,我声明了一个数据集,但引用了我在上面所做的一个变量。我刚刚为第一个数据集创建了对这个数据集的依赖。更新:我添加了一个 order by 子句并更改了内部嵌套选择以更适合您的具体情况。

  5. 现在创建一个名为“SubChoices”的参数,并将其设置为“从查询中获取值”中的“可用值”,并将“SubChoices”用作数据集,将子选择用作值和标签。更新:确保在一般情况下将其设置为“允许空值”。这次将“默认值”设置为查询和子选择。这将做的是获取它获得的第一个并将其弹出作为默认值。由于如果我不想要 ChoiceB 的值,您只想要某些首选选项的选择,因此我在数据集中设置了一个“NULL”,没有任何意义。因此,如果用户选择 ChoiceA,他们会得到两个选项,并且应该默认为 YES,如果他们选择 Choice B,他们会得到空值,没有任何意义。

  6. 现在测试报告,您应该有第一个参数,其中包含两个值的下拉列表,“ChoiceA”或“ChoiceB”。您旁边的另一个参数显示为灰色。填写第一个后,第二个将显示仅显示与第一个关联的值的值。由于我有一个 where 子句,第二个参数依赖于第一个参数,因此在第一个参数完成之前无法使用,并且只会显示与第一个值相关的值。

HTH,从属值是 SSRS 的强大部分。

于 2013-08-20T20:40:55.943 回答