【问题标题】:Populate a parameter dropdown based off another parameter根据另一个参数填充参数下拉列表
【发布时间】:2018-04-17 07:08:54
【问题描述】:

我正在尝试根据另一个下拉参数填充下拉列表。我有 5 个参数,但前 3 个填充报告中的第 4 个。所以第 4 和第 5 个参数是用户用来填充报告的参数。所以第四个参数(会议)有一个会议数据集,第五个参数是会议类型,数据集为会议类型。因此,当用户选择会议时,会议类型将由该选择填充。目前,这两个下拉菜单都会产生我不想要的所有结果。我只想要会议的所有结果,然后通过会议填充 meetingType。

运行报告后生成的表格不使用这些属性,也没有地方可以查询任何内容。我只能使用每个数据集中的可用值,而不能使用基于第四个参数选择的可用值。

【问题讨论】:

  • 听起来您需要在第二个(或第 5 个)的查询中引用您的第一个参数(或第 4 个)。假设它是一个拉取值的查询。

标签: reporting-services ssrs-2012


【解决方案1】:

我不是很清楚。您需要一个参数还是只想在报告输出中将会议类型作为值提供?

相当简单。您有两个数据集,每个参数一个。您需要根据第一个参数过滤第二个数据集。 例如,我经常创建要求一系列值的报告,比如说程序。一旦用户输入了开始值,结束值必须大于或等于开始值。因此,在结束值数据集上,我创建了一个过滤器。在这种情况下,过滤器说字段代码(这是我的程序)必须在起始参数和允许的最大值之间:

您可以根据需要使过滤器变得复杂 - 使用公式引用其他参数

【讨论】:

  • 我有 2 个参数返回所有值,但我需要第二个参数仅根据第一个参数的下拉选择返回值
  • 所以我已经在为过滤后的部分执行此操作。这不是问题所在的数据集,这行得通。它的2个参数下拉列表就是问题所在。我需要 2 个下拉菜单一起工作,所以就像您的程序一样,如果您选择程序开始日期,则当前为空的第二个参数将填充结束日期。这有意义吗?
  • 那么你想让第二个参数基于第一个参数默认吗?然后,更改您的第二个数据集以根据第一个参数返回一个值。然后在参数设置上,使用数据集作为默认值,而不是作为可用值
【解决方案2】:

您也可以通过每个参数的单独数据集来做到这一点。

假设您有两个参数@param1 和@param2

您希望@param2 上的值根据@param1 的选择而改变。

您的主数据集 (main_dataset) 将带有类似这样的 where 子句

where sometable.somecolumn = @param1
and sometable.someothercolumn = @param2

现在您为 @param1 创建一个数据集 (param1_dataset),它会带回该参数所需的所有值

现在创建另一个数据集 (param2_dataset) 表单 @param2 并添加一个 where 子句来限制返回的列表.. 像这样..

where sometable.somecolumn = @param1

现在在您的报表参数上。将每个参数的可用值(报表参数属性)设置为"Get Values from a query",并为每个参数选择适当的数据集以及值字段和标签字段(由数据集返回)。

现在,当您运行报表时,您的参数选择 2 应该会根据您为参数选择 1 选择的内容而改变

【讨论】:

    猜你喜欢
    • 2017-06-13
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多