【问题标题】:SSRS Report Table Add Column Expression Record x of y?SSRS 报告表添加列表达式记录 x of y?
【发布时间】:2018-08-01 13:32:40
【问题描述】:

我有一个 SSRS,它由报表表编译而成,每个表都与一个存储过程相关联,所有这些表都使用相同的 ID。我通过 UI 自动传递 ID。

因为报告中的信息太多了,对于每个部分,我想在每个表中添加一列,并带有一个表达式。它会给记录计数。这意味着,如果表中有一个艺术家的专辑,就会有一个专辑记录列,它会是这样的:

艺术家:粉红色 专辑记录专辑名称专辑发行日期等 1 的 5 2 个,共 5 个 5 个中的 3 个

为了构建专辑记录的片段,我在存储过程中添加了一个行计数器。这是那条 SQL 行:

,ROW_NUMBER() OVER (PARTITION BY pc.ID ORDER BY ARID.ID) 'Album Record Number'

pc.id 是传递的 ID 参数,也就是说,我们只传递和检索 1 个 pc.ID。 ARID.ID 用于子记录 ID。

这将创建第一块。记录 1,2,3。

在SSRS表中,我添加一列,并做一个表达式:

=Fields!Album_Record_Number.Value & " of " & Count(Fields!ARID.Value,"ID")

这应该给我“1 of 3”、“2 of 3”、“3 of 3”。

当我尝试预览报告时,出现错误:

本地报告处理过程中发生错误。的定义 报告“/MainReport”无效。文本的值表达式 框“XYZ”具有对聚合无效的范围参数 功能。范围参数必须设置为等于 包含组的名称,包含数据的名称 地区或数据集的名称。

任何人都知道如何做我想做的事吗?我担心我可能必须将总计数添加到存储过程中,这意味着我必须将其添加到所有存储过程中。我希望表格列中的表达式可以解决问题。

任何建议将不胜感激!

【问题讨论】:

    标签: sql-server ssrs-2012 record ssrs-tablix rowcount


    【解决方案1】:

    我想你已经在使用Groups,所以你可以使用类似的表达方式:

    =RowNumber("YourAlbumGrouping") & " of " & CountRows("YourAlbumGrouping")
    

    RowNumber 函数返回指定范围内行数的运行计数。

    CountRows函数返回指定范围内的行数,包括空值的行。

    【讨论】:

    • 我以前从未这样做过。什么是“YourAlbumGrouping”?我从哪里获得该对象/名称?
    • 答案已更新,包含指向 MSDN 的链接;看看这里:docs.microsoft.com/en-us/sql/reporting-services/report-design/…
    • 谢谢!!!!我必须按我传递的主要 ID 进行分组。这就是使该公式起作用的技巧。有用!!!如此优雅和简单!你为我节省了很多时间!
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-04
    • 1970-01-01
    • 2010-10-27
    相关资源
    最近更新 更多