SSRS按多个标准下拉订单

时间:2013-04-01 20:14:10

标签: sql visual-studio-2005 reporting-services

对不起是一个菜鸟,但我相信这是我需要帮助的合适场所。

我刚开始研究SSRS报告(2005),我想了解如何添加一个带有多个执行排序选项的过滤器下拉列表。我已将一个列表导入到我的表中,并且具有此类所需的适当字段。

IE。我想有一个名为“Sort By”的下拉框,其中包含可用的选项:

客户名称

ZipCode,SIC

SIC,City

其中每个按查看报告时选择的功能执行特定顺序。

我玩过并且能够设置数据集并添加过滤器,但这不是最佳的,因为(例如)您必须知道确切的ZipCode和SIC匹配才能返回任何结果。

必须有一种简单的方法可以根据下拉列表的选择按标准返回多个订单的select语句,但是如果有的话,我找不到它。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:2)

我可以想到几个选择。在这两种情况下,我都假设一个参数SortOrder,它包含以下值:

  • 客户名称
  • ZipCode,SIC
  • SIC,City

根据参数

将排序表达式应用于表格

我已经申请将表达式排序到表:

enter image description here

首先排序:

=Switch(Parameters!SortOrder.Value = "CustomerName", Fields!CustomerName.Value
    , Parameters!SortOrder.Value = "ZipCode, SIC", Fields!ZIP.Value
    , Parameters!SortOrder.Value = "SIC, City", Fields!SIC.Value)

第二种:

=Switch(Parameters!SortOrder.Value = "CustomerName", Fields!CustomerName.Value
    , Parameters!SortOrder.Value = "ZipCode, SIC", Fields!SIC.Value
    , Parameters!SortOrder.Value = "SIC, City", Fields!City.Value)

在查询中应用排序

您可以根据参数为数据集查询添加order by以执行相同的操作:

...
order by case @SortOrder when 'CustomerName' then CustomerName
  when 'ZipCode, SIC' then ZIP
  when 'SIC, City' then SIC
  end
  , case @SortOrder when 'CustomerName' then CustomerName
  when 'ZipCode, SIC' then SIC
  when 'SIC, City' then City
  end

在这两种情况下,您都会获得基于参数的排序:

enter image description here

enter image description here