Sql server 按报表项计算对行组排序

Sql server 按报表项计算对行组排序,sql-server,reporting-services,ssrs-2012,Sql Server,Reporting Services,Ssrs 2012,我的报告中有一个计算reportitems!Textbox42.值-报告项!Textbox39.值 如何根据此计算对行组进行排序,排序中不接受报表项 我尝试根据上面的表达式创建一个计算字段,但得到一个错误,即FieldValue正在拒绝reportitems您不能使用reportitems!在计算字段中测试.Value,这与聚合函数一样不可能 您必须在tablix的排序表达式中写入计算。例如: 'Expression of Textbox1 in Tablix1 =Fields!Sales.Va

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

如何根据此计算对行组进行排序,排序中不接受报表项


我尝试根据上面的表达式创建一个计算字段,但得到一个错误,即
FieldValue正在拒绝reportitems
您不能使用
reportitems!在计算字段中测试.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属性>排序>添加>表达式,并从标签2写入表达式。这样,您就可以根据您的表达式进行排序


如果您的tablix中有一些分组,您也可以转到tablix的行组>组属性(下拉列表)>排序>添加>表达式

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