计算SSRS中已过滤的Tablix的行数

时间:2012-06-08 10:05:42

标签: ssrs-2008 reporting-services report-builder2.0

我想在我的SSRS报告标题内的文本框中显示已过滤的Tablix的行数。我google了很多但没有任何帮助。

this link的建议让我数不清,但仅限于当前页面上的行数。即使我的结果有2页,我也只能在第一页中获得行数。

我还尝试为行号添加一个新列,然后在标题的文本框中显示它的值,但问题与上面的相同。

我尝试在报告中使用全局共享变量(我使用自定义代码进行过滤),这在一定程度上有所帮助,但每次点击查看报告按钮时它们都会继续累积值:(

另请注意,存储过程中的移动过滤条件不适合我。

谢谢, 拉维

3 个答案:

答案 0 :(得分:14)

下面的解决方案对我来说就像一个魅力。它来自于asp.net论坛here上的QuestionDude帖子:

  1. 在详细信息组外部的Tablix底部添加一行。
  2. 在这个"页脚"的任何单元格中在行中,将表达式设置为=COUNT("Fields.[pick a field].Value")。总是偏执,我使用了一个独特的领域。不确定是否重要。让我们调用那个单元格Textbox17。
  3. 在Tablix之外,您可以使用表达式ReportItems!Textbox17.Value来显示已过滤的Tablix的行数。
  4. 隐藏页脚行。
  5. 全部归功于QuestionDude。

答案 1 :(得分:3)

右键单击白色部分之外的页面,您将进入ReportProperties部分。

将页面高度调整为500(您可以将其设置为您想要的高度,它只会将页面扩展到所需的高度)单击确定

返回页面,右键单击Tablix,然后单击“插入文本框”。

右键单击文本框并单击表达式。

粘贴=CountRows()

单击“确定”,“预览报告”。希望这是你所需要的。

答案 2 :(得分:1)

对我来说,计数对过滤后的数据集不起作用,它总是(COUNT和COUNTROWS都返回)返回原始数据集的计数。

由于我发现无法使其工作,我最终使用了CountDistinct,因为过滤是静态的,我知道要依赖哪个数据列值。

=CountDistinct(Fields![Fieldname].Value)