Foxtable(狐表)用户栏目专家坐堂 → 代码改写


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

主题:代码改写

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


加好友 发短信
等级:一尾狐 帖子:401 积分:3639 威望:0 精华:0 注册:2016/11/12 18:42:00
代码改写  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:4752 积分:34568 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2018/10/26 19:27:00 [只看该作者]

上个实例


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


加好友 发短信
等级:超级版主 帖子:110629 积分:563047 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:401 积分:3639 威望:0 精华:0 注册:2016/11/12 18:42:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110629 积分:563047 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:401 积分:3639 威望:0 精华:0 注册:2016/11/12 18:42:00
  发帖心情 Post By:2018/10/26 21:38:00 [只看该作者]

谢谢!可以实现了!

 回到顶部