以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=120955)

--  作者:工匠
--  发布时间:2018/6/27 8:28:00
--  [求助]
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:排名.foxdb


老师好:

        请帮做个关于排名的例子,需求在项目文件备注。谢谢!



谢谢!

--  作者:有点甜
--  发布时间:2018/6/27 9:06:00
--  
Dim drs As List(Of DataRow) = DataTables("表A").Select("", "服务员业绩 DESC")
For n As Integer = 0 To drs.Count - 1 \'遍历所有行
    If n > 0 AndAlso drs(n)("服务员业绩") = drs(n-1)("服务员业绩") Then \'如果服务员业绩和上一行相同
        drs(n)("服务员业绩排名") = "NO:" & format(drs(n-1)("服务员业绩排名"), "00") \'则排名等于上一行
    Else
        drs(n)("服务员业绩排名") = "NO:" & format(n + 1, "00") \'设置排名
    End If
Next

--  作者:工匠
--  发布时间:2018/6/27 9:26:00
--  
谢谢有点甜老师,排名可以计算了,还有种情况是:当有2个或多个服务员业绩相同时,需计算显示为并列排名(如:关师傅  业绩为85000,排名为NO:05,刘师傅 业绩为85000,排名也要计算显示为NO:05 ,现在计算显示结果为 NO:00),
请帮再看看,万分感谢!

[此贴子已经被作者于2018/6/27 9:30:43编辑过]

--  作者:有点甜
--  发布时间:2018/6/27 9:58:00
--  
Dim drs As List(Of DataRow) = DataTables("表A").Select("", "服务员业绩 DESC")
For n As Integer = 0 To drs.Count - 1 \'遍历所有行
    If n > 0 AndAlso drs(n)("服务员业绩") = drs(n-1)("服务员业绩") Then \'如果服务员业绩和上一行相同
        drs(n)("服务员业绩排名") = drs(n-1)("服务员业绩排名") \'则排名等于上一行
    Else
        drs(n)("服务员业绩排名") = "NO:" & format(n + 1, "00") \'设置排名
    End If
Next

--  作者:工匠
--  发布时间:2018/6/27 12:30:00
--  
谢谢老师,完全达到需求