2013-08-20 10 views

回答

1

当然可以。你基本上把一个数据集和一个谓词绑定到第一个变量上。

修订

  1. 说我声明参数 '选择'。

  2. 我创建了一个数据集也叫选择,这只是一个简单的两行返回:

    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子句,并将内部嵌套select改为更适合您的特定情况。

  5. 现在创建一个名为'SubChoices'的参数,并从'从查询中获取值'设置为'可用值',并使用'SubChoices'作为数据集,将子选项作为值和标签。更新:确保您将其设置为'允许空值'。这次将'默认值'设置为查询和子选项。这将做的是采取它得到的第一个,并弹出一个作为默认。既然你只想为某些首选项做出选择,如果我不想ChoiceB的值,我在数据集中设置一个“NULL”,意思就是什么都没有。因此,如果用户选择ChoiceA,他们会得到两个选项,YES应该默认,如果他们选择了选项B,他们会得到一个空值,这意味着什么。

  6. 现在测试报告,您应该有一个第一个参数,下拉两个值'ChoiceA'或'ChoiceB'。你旁边的另一个参数变成灰色。一旦你填写第一个,第二个将显示只显示与第一个相关联的值的值。由于我有一个where子句,第二个参数是第一个参数是依赖的,因此在第一个参数完成之前不能使用,也只会显示与第一个值相关的值。

HTH,依赖值是SSRS的一个强大的部分。

+0

真棒。非常感谢您的帮助 - 以及非常详细的描述。 – user2701207

+0

后续问题....如果我已经有第一个参数(@ReportOrder)与5选择,我只想第二个参数(SubChoice)激活时,@ReportOrder = 0,我画了一个空白,我什么请执行SubChoice数据集的查询。我只需要2个选择。我希望第二个参数能够提示用户使用“每个Analyst(Y/N)之间复制平衡和老化的有效性”?然后他们只有一个是或否的答案选项。 – user2701207

+0

您只需创建一个数据集,获取这两个选择,如'选择*从(选择(whateveryoursubis)作为SubValue,0作为链接FORCEDJOIN UNION选择(whateveryoursubis),0)为x其中Link = @Param1'。在没有这种情况下,你正在建立一种关系。但是你需要添加这个变量来接受通用屏幕中的'NULL',因为你不想让它填充,听起来就像是某个实例出现时那样。 – djangojazz