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