我的报告有一个有 5 个选项的参数。我在想,如果做出特定选择,另一个参数会提示用户回答额外的问题/设置。这可以在 SSRS 2008 中完成吗?如果没有,我只会硬编码一种方式或另一种方式。
1 回答
当然可以。您基本上将带有谓词的数据集绑定到第一个变量。
更新
假设我声明参数“选择”。
我创建了一个也称为 Choices 的数据集,它只是一个简单的两行返回:
Select 'ChoiceA' as Choice union Select 'ChoiceB'
我回到步骤 1 中的参数并在左侧窗格中选择“可用值”并说“从查询中获取值”选择我称为“选择”的数据集,然后选择“选择”作为值和标签。现在,当您预览报告时,该参数有一个带有两个选项的下拉列表。但是你想知道它是否会影响更多,它可以。
添加另一个名为“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 子句并更改了内部嵌套选择以更适合您的具体情况。
现在创建一个名为“SubChoices”的参数,并将其设置为“从查询中获取值”中的“可用值”,并将“SubChoices”用作数据集,将子选择用作值和标签。更新:确保在一般情况下将其设置为“允许空值”。这次将“默认值”设置为查询和子选择。这将做的是获取它获得的第一个并将其弹出作为默认值。由于如果我不想要 ChoiceB 的值,您只想要某些首选选项的选择,因此我在数据集中设置了一个“NULL”,没有任何意义。因此,如果用户选择 ChoiceA,他们会得到两个选项,并且应该默认为 YES,如果他们选择 Choice B,他们会得到空值,没有任何意义。
现在测试报告,您应该有第一个参数,其中包含两个值的下拉列表,“ChoiceA”或“ChoiceB”。您旁边的另一个参数显示为灰色。填写第一个后,第二个将显示仅显示与第一个关联的值的值。由于我有一个 where 子句,第二个参数依赖于第一个参数,因此在第一个参数完成之前无法使用,并且只会显示与第一个值相关的值。
HTH,从属值是 SSRS 的强大部分。