我有一个列(影响/小时),在一些计算后会填充。现在我想为每一行分配一个等级。例如,最高美元金额获得等级1.任何写表达的提示都将受到赞赏。谢谢。
答案 0 :(得分:1)
只需在Report
- Report Properties...
- Code
中添加一些自定义代码:
Dim Rank AS Integer
Function GetRank() AS Integer
Rank = Rank + 1
Return Rank
End Function
在您想要排名的Tablix详细信息单元格中,使用以下公式:
=Code.GetRank()
每次处理该单元格时,它会向排名中添加一个并显示结果。
答案 1 :(得分:1)
答案 2 :(得分: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))
答案 3 :(得分:0)
使用Rank功能。
选择[每人每小时的影响],[我的排名] =排名()结束(按每人每小时的影响顺序排序)
然后根据您想要排名高或低的值来使用asc / desc。 这也与任何order by语句无关
对于像这样的应用程序,Rank()优于Row_Number(),因为相同值的行将具有相同的Rank,但将具有不同的Row_Number。