3

很抱歉成为菜鸟,但我相信这是我需要帮助的正确地方。

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

IE。我想要一个名为“排序依据”的下拉框,其中包含可用选项:

顾客姓名

邮政编码,SIC

SIC, 城市

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

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

必须有一种简单的方法来根据下拉列表的选择返回这个带有多个 order by 条件的 select 语句,但如果有的话我找不到它。

任何帮助将不胜感激!

4

1 回答 1

3

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

  • 顾客姓名
  • 邮政编码,SIC
  • SIC, 城市

根据参数将排序表达式应用于表

我已将表达式应用于表格的排序:

在此处输入图像描述

第一类:

=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

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

在此处输入图像描述

在此处输入图像描述

于 2013-04-03T09:26:31.977 回答