对不起是一个菜鸟,但我相信这是我需要帮助的合适场所。
我刚开始研究SSRS报告(2005),我想了解如何添加一个带有多个执行排序选项的过滤器下拉列表。我已将一个列表导入到我的表中,并且具有此类所需的适当字段。
IE。我想有一个名为“Sort By”的下拉框,其中包含可用的选项:
客户名称
ZipCode,SIC
SIC,City
其中每个按查看报告时选择的功能执行特定顺序。
我玩过并且能够设置数据集并添加过滤器,但这不是最佳的,因为(例如)您必须知道确切的ZipCode和SIC匹配才能返回任何结果。
必须有一种简单的方法可以根据下拉列表的选择按标准返回多个订单的select语句,但是如果有的话,我找不到它。
非常感谢任何帮助!
答案 0 :(得分:2)
我可以想到几个选择。在这两种情况下,我都假设一个参数SortOrder,它包含以下值:
根据参数
将排序表达式应用于表格我已经申请将表达式排序到表:
首先排序:
=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
在这两种情况下,您都会获得基于参数的排序: