根据另一个参数填充参数下拉列表

时间:2018-04-16 16:02:53

标签: reporting-services ssrs-2012

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

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

2 个答案:

答案 0 :(得分:2)

我不是很清楚。您是否需要参数?或者您只是希望将会议类型作为报表输出中的值使用?

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

您可以根据需要使过滤器变得复杂 - 使用公式

引用其他参数

答案 1 :(得分: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

选择的内容而更改