10

我想在 SSRS 报告标题内的文本框中显示过滤后的 tablix 的行数。我用谷歌搜索了很多,但没有任何帮助。

此链接上的建议给了我计数,但仅限于当前页面上的行数。即使我的结果有 2 页,我也只能获得第一页的行数。

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

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

另外请考虑在存储过程中移动过滤条件对我来说不是一个选项。

谢谢,拉维

4

3 回答 3

17

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

  1. 在明细组之外的 tablix 底部添加一行。
  2. 在此“页脚”行的任何单元格中,将表达式设置为=COUNT("Fields.[pick a field].Value")。总是偏执,我使用了一个独特的领域。不确定这是否重要。我们称该单元格为 Textbox17。
  3. 在 tablix 之外,您可以使用表达式 ReportItems!Textbox17.Value 来显示过滤后的 tablix 的行数。
  4. 隐藏页脚行。

所有功劳归功于 QuestionDude。

于 2015-02-06T00:57:41.667 回答
3

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

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

返回页面,右键单击 tablix 上方,然后单击插入文本框。

右键单击文本框,然后单击表达式。

粘贴=CountRows()

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

于 2012-06-08T12:15:04.990 回答
1

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

由于我没有办法让它工作,我最终使用了 CountDistinct,因为过滤是静态的,而且我知道要依靠哪个数据列值。

=CountDistinct(Fields![Fieldname].Value)
于 2017-09-28T07:19:40.073 回答