我有一列(影响/小时),经过一些计算后会被填充。现在我想为每一行分配一个等级。例如,Maximum Dollar amt 的排名为 1。任何编写表达式的提示都将不胜感激。谢谢你。
问问题
9334 次
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
于 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 回答