0

我有一列(影响/小时),经过一些计算后会被填充。现在我想为每一行分配一个等级。例如,Maximum Dollar amt 的排名为 1。任何编写表达式的提示都将不胜感激。谢谢你。在此处输入图像描述

4

4 回答 4

1

只需在Report- Report Properties...-中添加一些自定义代码Code

Dim Rank AS Integer

Function GetRank() AS Integer
  Rank = Rank + 1
  Return Rank
End Function

在您想要排名的 tablix 的详细信息单元格中,使用以下公式:

=Code.GetRank()

每次处理该单元格时,它都会在排名中添加一个并显示结果。

于 2013-10-24T21:23:15.803 回答
1

使用排名函数。

选择 [Impact per Hr], [My Rank] = Rank() over (order by [Impact per Hr] desc)

然后根据您想要排名高或低的值使用 asc/desc。这也独立于任何 order by 语句

对于这样的应用程序,Rank() 比 Row_Number() 更可取,因为具有相同值的行将具有相同的 Rank,但将具有不同的 Row_Number。

于 2015-04-22T13:35:09.517 回答
1

它可能是您的第二选择!

您可以使用函数Impact\Hr按升序排列并显示排名。RowNumber

有关详细信息,请参阅RowNumber函数。

于 2013-10-25T07:19:27.337 回答
1

第 1 步:在 Reports Builder 的报告属性的代码部分添加以下代码。

Public dim previousValue as Integer = 0
Public dim i as Integer = 0
Public dim flag as Boolean = False
Public dim lastRank as Integer = 1

Public Function Rank(sourceValue as Integer ) As Integer

if previousValue = sourceValue
   i = i + 1
   flag = True
end if 
     
if previousValue > sourceValue
    lastRank = lastRank + 1
    flag = False
end if

previousValue =sourceValue

if flag = True 
    return lastRank
else
    lastRank = lastRank + i
    i = 0
    return lastRank
end if
 
End Function

第 2 步:从要显示排名的单元格中调用上述函数,如下所示:

=code.Rank(SUM(Fields!SumTotal_Ending_Balance.Value))
于 2020-09-24T04:52:47.290 回答