以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何根据数值来进行等级划分  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=13571)

--  作者:不同凡响的声音
--  发布时间:2011/10/17 23:13:00
--  如何根据数值来进行等级划分
如何根据数值来进行等级划分,并将等级填入相应的单元格内。如表A中第一列为数值、第二列为等级,要根据数值从高到低进行等级划分,其中A等占10% B等占25% C等占40%  D等占20%  E等占5%,不知道如何设置代码,请各位朋友帮看看,谢谢
--  作者:mr725
--  发布时间:2011/10/17 23:39:00
--  
这个问题不同凡响啊···
--  作者:狐狸爸爸
--  发布时间: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


--  作者:不同凡响的声音
--  发布时间:2011/10/18 22:03:00
--  
谢谢,试试看,测试了,可结果只能分出A等和E等,B、C、D三个等次都没有。不知道什么关键的地方有误呀?
图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2011-10-18 22:22:27编辑过]

--  作者:狐狸爸爸
--  发布时间: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

--  作者:不同凡响的声音
--  发布时间:2011/10/18 22:57:00
--  
OK,看来这个功能可以作为让老大花点银子的亮点了,那么好的软件真的应该多用用,不知道这个软件在教育系统里面还有没有更多的亮点让哪些老大们肯花点银子。请狐爸给介绍介绍
--  作者:不同凡响的声音
--  发布时间:2011/12/14 16:18:00
--  

再将请教一下各位狐友,如果表中有多列的成绩,分别为成绩1、成绩2、成绩3……成绩20,相应的有等级1、等级2、等级3……等级20,能用一个按钮就搞定吗?如果能,代码是怎么修改才能达到所需要的效果?谢谢。


--  作者:不同凡响的声音
--  发布时间:2011/12/16 10:37:00
--  

这个问题理论上应该在源代码上修改就可以了吧,可关键在哪呢,请狐友们指点一二,谢谢!


--  作者:狐狸爸爸
--  发布时间:2011/12/16 10:54:00
--  

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

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

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


--  作者:不同凡响的声音
--  发布时间:2011/12/16 13:58:00
--  
安装商业版,做文件时出了点故障……等待中