单个下拉列表中的SSRS多个参数

时间:2017-01-04 16:57:27

标签: reporting-services ssrs-2012

我需要开发一份报告,其中所有报价都应列在特定产品所在的位置。可以根据产品ID /价格/产品名称等来识别产品。我正在寻找一个报告,其中所有字段都作为下拉列表的一部分存在。当用户选择一个值(如产品ID)并在ID旁边的文本框中输入值时,将对此参数过滤报告。如果用户选择名称,则可以在文本框中输入名称,并根据供应商ID等过滤报告。

有办法做到这一点吗?我的参数显示在彼此旁边。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,这是可行的,这是实现报告目的的步骤。 我将使用一个简单的查询作为示例数据集供您参考。

1.创建源代码datasets,在此示例中,我跳过data sources,这是我的exmaple的简短查询

SELECT * FROM Table
WHERE 
(ID = @ID or @ID = '')
 and 
(Name = @Name or @Name = '')

2.添加另一个名为dataset的{​​{1}},Control的查询为:

Control

创建此SELECT 'ID' as option UNION SELECT 'Name' as option 的目的是在以后需要选择名称或ID时提供可用值。

3.在步骤1之后,您应该已经有两个由系统生成的参数,datasetID,如果没有,请自己创建并转到每个参数页面, DO请务必检查Name

4.创建名为Allow blank value''的第3个参数,转到参数设置页面,转到Control,选择Available Values数据集,选择Control(自定义列) optionControl

Value field数据集中设置的名称

5.转到Label field参数设置页面,转到ID,选择Default Values,点击Specify values,输入以下内容:

fx

点击确定

6.转到=Switch(Parameters!Control.Value="Name","") 参数设置页面,转到Name,选择Default Values,点击Specify values,输入以下内容:

fx

点击确定

=Switch(Parameters!Control.Value="ID","") ID表达式是正确的,没有错误

7.更改参数顺序,使Name位于非常顶级,无论ControlID是第二位,但Name应位于第一位的地方。

8.拖放表格,放置ControlName。预览报告,此时,只有ID可供您选择值,选择ID或名称以查看差异。当您选择Control时,ID将显示为灰色,只有Name亮起并输入您想要的任何ID,实际上,系统在内部执行的操作是ID(空白值)到"",这就是为什么您需要确保Name参数可以接受空值。选择Name

也是如此

如果您有任何运行时问题,请更新我