【问题标题】:SSRS Report Builder 3.0 user sort by multiple columnsSSRS Report Builder 3.0 用户按多列排序
【发布时间】:2014-01-14 20:58:47
【问题描述】:
假设我们有一个包含 a、b、c、d、e、f 列的报告。
我们有一些用户想要按列 a、b、c 对数据进行排序。其他列 c、f、e。其他列 d、a、c。其他按 c 列。另一组不断改变他们希望如何对数据进行排序。
有没有办法让用户根据他们点击的列对列进行排序。假设用户点击 d、a、c 数据将按 d、a、c 排序,而不仅仅是他们点击的最后一列?我们还想在 Report Builder 3.0 中实现这一点。
谢谢
【问题讨论】:
标签:
reporting-services
reportbuilder3.0
【解决方案1】:
SSRS 会将文本转换为列名。
您可以像这样设置参数(使用数据集中的字段名称作为值):
Name: Sort1
Available Values:
Label Value
====== =======
a a
b b
c c
d d
您可能需要的每种类型都有一个。听起来 3 个排序参数就可以了。
然后,在 tablix(或表格)的排序部分:
Column
===============================
Sort By: Parameters!Sort1.Value
Then by: Parameters!Sort2.Value
Then by: Parameters!Sort3.Value
请注意,您的参数值需要与字段名称的大小写相同,但您的标签可以是您喜欢的任何内容。
【解决方案2】:
您可以在单击列标题的同时按住 SHIFT 对多个列进行排序。对于您单击的第一列,这不是必需的。按住 SHIFT 的同时再次单击排序列标题可更改排序方向。您可以分别混合升序和降序的排序列。这适用于报表生成器(程序)以及报表管理器(Web 前端)。后者在 Firefox (30) 中不起作用(仅单列排序),但在 Internet Explorer (11) 和 Chrome (35) 中起作用。
我使用 Report Builder 3.0 和 SQL Server 2008 R2。
【解决方案3】:
有一种方法可以让用户按照每列数据的顺序进行排序。我没有看到它记录太多,所以这是我的两点价值。这样的结果会在您放置它的每一列上添加一个小的向上/向下图标。
在 Report Builder 3.0 中,当我将字段属性拖到网格上时,该新列中会显示 3 行。当网格有焦点时,上面会添加一个灰色行,这不是设置的位置。
如果您右键单击第一个白色行,您应该打开“文本框属性”。
在对话框中,选择“交互式排序”。
- 检查启用...
- 详细信息行
- 排序方式:下拉选择该列中的字段。为该文本框按 [OK]。
对所有列重复此操作。保存构建器并运行报告。用户可以升序或降序排序。随意。