列出报告,按字母过滤

时间:2019-06-23 22:18:00

标签: reporting-services filtering ssrs-grouping

我正在构建一个摘要报告,该报告将查看在数据库中被标记为具有共同特征的用户,即,按合同中包含结束日期的过去5年中按名称返回所有用户。

这会生成一个数字,例如[250]

我会仔细研究该图,以提供姓名,名字和姓氏的列表报告。

我已订购列表A-Z

我想在报告的顶部添加一行26个字母,并让每个字母仅返回带有相应起始字母的名称。

这是否需要进一步深入研究,还是可以根据用户驱动的选择刷新现有列表?

2 个答案:

答案 0 :(得分:0)

只需将自定义参数添加到您的报告中即可。右键单击“参数”,然后添加参数

enter image description here

(依此类推...)。然后,默认值应为All

然后只需将以下过滤器添加到您的tablix中:

'Expression:
=Switch(Parameters!YourParameterName.Value = "All", True, Parameters!YourParameterName = Left(Fields!YourNameField.Value, 1), True)

enter image description here

答案 1 :(得分:0)

如果您只是在使用SSRS,则无法刷新报告内容而不重新运行报告,因此您可以

  1. 重新组织您的当前报告。
  2. 需要另一个追溯报告。

根据您的布局,您可以按首字母对数据进行分组,然后使用可折叠的行组来显示/隐藏该组名称。为此,只需添加父行组,将值,组值和排序值全部设置为=LEFT(Fields!myNameField.Value)。接下来,将details行组的可见性设置为隐藏,并将切换可见性属性设置为指向包含刚创建的父组字母的单元格。

如果您有太多数据无法有效执行此操作,则可能必须沿着附加的子报表路径进行操作。

为了使生活更轻松,并且省去了创建26个链接和参数值的麻烦,我将执行以下操作...

  1. 创建一个存储字母列表的表
  2. 向您的报告中添加一个矩阵,该矩阵具有按此表中字母值分组的列组。这将充当您的“过滤器栏”
  3. 将对矩阵单元格的操作设置为“去报告”,指向通过报告的最终钻取并传递[myLetterColumn]值作为参数。

假设此子报表将被隐藏并且仅从父报表中调用,则无需设置可用参数。