以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  代码改写  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126705)

--  作者:nxdx112
--  发布时间:2018/10/26 17:50:00
--  代码改写

图片点击可在新窗口打开查看此主题相关图片如下:101.bmp
图片点击可在新窗口打开查看


想设计一个打分表如上图,基本已经实现相关功能,


Dim dt As DataTable = DataTables("打分表")
For Each dr As DataRow In dt.Select("")
    Dim ary() As Single = {dr("评委1"), dr("评委2"), dr("评委3"), dr("评委4"),dr("评委5"), dr("评委6"), dr("评委7"), dr("评委8"),dr("评委9"), dr("评委10")}
    array.sort(ary)
    dr("最低分") = ary(0)
    dr("最高分") = ary(ary.length-1)
Next

还想增加另一种功能:去掉一个最高分和最低分,然后计算名次
现存在的问题是:当评委未输入分数时,(非0)时,最低分显示0,如何修改——在已输入的数据中找最低分?                    
先谢谢大神!
[此贴子已经被作者于2018/10/26 19:40:42编辑过]

--  作者:y2287958
--  发布时间:2018/10/26 19:27:00
--  
上个实例


--  作者:有点蓝
--  发布时间:2018/10/26 20:50:00
--  
Dim dt As DataTable = DataTables("打分表")
Dim lst As new List(of Integer)
For Each dr As DataRow In dt.Select("")
    For i As Integer = 1 To 10
        If dr("评委" & i) > 0 Then
            lst.Add(dr("评委" & i))
        End If
    Next
    lst.Sort
    dr("最低分") = lst(0)
    dr("最高分") = lst(lst.Count-1)
Next

--  作者:nxdx112
--  发布时间:2018/10/26 21:12:00
--  
更乱了,上面的只是最小值显示有问题,改完后都有问题了
能否当评委未输入分数时,(非0)时,最低分显示0,如何修改——在已输入的数据中找最低分
Dim dt As DataTable = DataTables("打分表")
For Each dr As DataRow In dt.Select("")
    Dim ary() As Single = {dr("评委1"), dr("评委2"), dr("评委3"), dr("评委4"),dr("评委5"), dr("评委6"), dr("评委7"), dr("评委8"),dr("评委9"), dr("评委10")}
    array.sort(ary)
    dr("最低分") = ary(0)
    dr("最高分") = ary(ary.length-1)
Next


--  作者:有点蓝
--  发布时间:2018/10/26 21:27:00
--  
Dim dt As DataTable = DataTables("打分表")
Dim lst As new List(of String)
For Each dr As DataRow In dt.Select("")
    lst.Clear
    For i As Integer = 1 To 10
        If val(dr("评委" & i)) > 0 Then
            lst.Add(dr("评委" & i))
        End If
    Next
    If lst.Count > 0 Then
        lst.Sort
        dr("最低分") = lst(0)
        dr("最高分") = lst(lst.Count-1)
    End If
Next

--  作者:nxdx112
--  发布时间:2018/10/26 21:38:00
--  
谢谢!可以实现了!