【问题标题】:Sorting row group by report items calculation按报表项目计算排序行组
【发布时间】:2018-09-26 08:05:34
【问题描述】:

我的报告中有一个计算reportitems!Textbox42.Value - reportitems!Textbox39.value

如何通过此计算对行组进行排序,排序中不接受报表项。

我已经尝试根据上面的表达式制作一个计算字段,但是得到一个错误FieldValue are denying reportitems

【问题讨论】:

  • 您将不得不重复 2 个文本框的表达式并计算它们在排序表达式中的差异。
  • @WolfgangKais 这很有意义.....但是我在报告的一个行组上有一个可见性表达式来隐藏差异大于 0 的任何行。这似乎会影响排序剩余的行。似乎排序正在处理总差异,而不是剩余行的差异。
  • 如果表达式包含在不同组级别上运行的聚合,您可能需要调整某些聚合函数的 Scope 参数(旨在应用于包含组级别)。您能否更新您的问题并添加有关表达式和文本框位置的详细信息?

标签: sql-server reporting-services ssrs-2012


【解决方案1】:

您不能在计算字段中使用ReportItems!Test.Value,这与聚合函数一样不可能。

您必须在 tablix 的排序表达式中编写您的计算。例如:

'Expression of Textbox1 in Tablix1
=Fields!Sales.Value - Fields!Income.Value

'Expression of Textbox2 in Tablix1
=Fields!Sales.Value / Fields!Income.Value

'The next two expressions are the same
=ReportItems!Textbox1 * ReportItems!Textbox2  'Label1
=(Fields!Sales.Value - Fields!Income.Value) * (Fields!Sales.Value / Fields!Income.Value)  'Label2

Tablix 属性 > 排序 > 添加 > 表达式 下转到您的 tablix,然后输入 Label2 中的表达式。这样你就可以根据你的表达进行排序。

如果您的 tablix 中有一些分组,您也可以在 Row Groups > Group Properties(下拉菜单)> Sorting > Add > Expression 下转到 tablix。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 2021-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多