Foxtable(狐表)用户栏目专家坐堂 → 如何根据数值来进行等级划分


  共有11676人关注过本帖树形打印复制链接

主题:如何根据数值来进行等级划分

帅哥哟,离线,有人找我吗?
狐狸爸爸
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/17 23:40:00 [显示全部帖子]

做个按钮,代码为:

 

 

Dim vals() As Double = {0.1,0.35,0.75,0.95}
Dim cnt As Integer = DataTables("表A").DataRows.count
Dim drs As List (of DataRow) = DataTables("表A").Select("","分数 Desc")
For i As Integer = 0 To drs.count - 1
    Dim v As Integer = i /cnt
    If v > vals(3) Then
        drs(i)("等级") = "E"
    ElseIf v > vals(2) Then
        drs(i)("等级") = "D"
    ElseIf v > vals(1) Then
        drs(i)("等级") = "C"
    ElseIf v > vals(0) Then
        drs(i)("等级") = "B"
    Else
        drs(i)("等级") = "A"
    End If
Next


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/10/18 22:33:00 [显示全部帖子]

Dim vals() As Double = {0.1,0.35,0.75,0.95}
Dim cnt As Integer = DataTables("表A").DataRows.count
Dim drs As List (of DataRow) = DataTables("表A").Select("","分数 Desc")
For i As Integer = 0 To drs.count - 1
    Dim v As Double  = i /cnt
    If v > vals(3) Then
        drs(i)("等级") = "E"
    ElseIf v > vals(2) Then
        drs(i)("等级") = "D"
    ElseIf v > vals(1) Then
        drs(i)("等级") = "C"
    ElseIf v > vals(0) Then
        drs(i)("等级") = "B"
    Else
        drs(i)("等级") = "A"
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/16 10:54:00 [显示全部帖子]

既然单列可以一个按钮,多列一样可以一个按钮,因为原理一样。

要具体答案,就得有具体问题,自己做好表,输入测试数据发上来,再具体说明问题。

泛泛而问,也只能泛泛而答。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/12/16 16:53:00 [显示全部帖子]

呵呵,一样简单的:

 

Dim vals() As Double = {0.1,0.35,0.75,0.95}
Dim nms() As String = {"音乐","体育","地理","生物","历史","化学","政治","物理","英语","数学","语文","美术"}
Dim cnt As Integer = DataTables("表A").DataRows.count
For Each nm As String In nms
    Dim drs As List (of DataRow) = DataTables("表A").Select("", nm & " Desc")
    Dim dn As String = nm & "等级"
    For i As Integer = 0 To drs.count - 1
        Dim v As Double  = i /cnt
        If v > vals(3) Then
            drs(i)(dn) = "E"
        ElseIf v > vals(2) Then
            drs(i)(dn) = "D"
        ElseIf v > vals(1) Then
            drs(i)(dn) = "C"
        ElseIf v > vals(0) Then
            drs(i)(dn) = "B"
        Else
            drs(i)(dn) = "A"
        End If
    Next
Next


 回到顶部