Foxtable(狐表)用户栏目专家坐堂 → [求助]如何进行排序和填写等次列和筛选入围名单?


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

主题:[求助]如何进行排序和填写等次列和筛选入围名单?

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8840 威望:0 精华:0 注册:2012/7/10 9:09:00
[求助]如何进行排序和填写等次列和筛选入围名单?  发帖心情 Post By:2015/3/6 9:03:00 [只看该作者]

1、排名:根据单位类型(即:01城市和02农村)和 专业组名称,进行排名,软件中的代码只是根据专业组进行排名,不会写根据单位类型和专业组名称,进行排名,请给予代码;
2、等次列:等次列的填写计算如下 :最终成绩90分及以上者为“优秀等次”;根据单位类型(即:01城市和02农村)、专业组名称排序后,按照排序,依据“评审称职”窗口中,给出的淘汰率(如10%),计算上述排序的同类人员总人数的淘汰分数线,高于淘汰比例的人员,在“等次”列填写“入围”,低于淘汰比例的人员的“等次”列,填写“末位淘汰”,淘汰人数实行四舍五入;如参加考试的同类人员(根据单位类型和专业组名称划分)较少,淘汰人数不足1人的,要根据各同类人员的淘汰分数线,算出各同类人员平均淘汰线,高于平均淘汰线的人员,在“等次”列填写“平均入围”,低于平均淘汰线的人员,在“等次”列写入:“平均淘汰”;最终成绩60分以下(不含60分)人员,在“等次”列,写入:“直接淘汰”;
3、筛选入围名单:当点击“评审职称”窗口的“筛选入围人员”时,根据等次列内容,将“优秀等次”、“入围”、“平均入围”人员筛选出来。

例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:信阳市职称评审成绩汇总系统2_201503060838.zip


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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8840 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2015/3/6 9:05:00 [只看该作者]

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

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/3/6 9:06:00 [只看该作者]

额 怎么一直在排,掌握知识就灵活运用啊,不是一有问题就让别人帮你做 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=64949&skin=0

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/6 9:10:00 [只看该作者]

 楼主你干脆叫别人帮你设置整个软件算了。


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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8840 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2015/3/6 9:21:00 [只看该作者]

不是刚学习吗?遇到这个问题我昨天搞了一天,搞不出来,只好求救了

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/6 9:24:00 [只看该作者]

1、

For Each lb As String In DataTables("职称评审成绩").GetValues("单位类型")
    Dim zys As List(Of String) = DataTables("职称评审成绩").GetValues("专业组名称", "单位类型 = '" & lb & "'")
    For Each bj As String In zys
        Dim drs As List(Of DataRow) = DataTables("职称评审成绩").Select("单位类型 = '" & lb & "' and [专业组名称] = '" & bj & "'", "最终成绩 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)("排名") = n + 1 '设置排名
            End If
        Next
    Next
Next

e.Form.Controls("成绩").Table.Sort="单位类型,专业组名称,排名"

 

2、自己想办法

 

3、最基本的筛选也不会写?


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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8840 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2015/3/6 9:26:00 [只看该作者]

呵呵,谢谢有点甜,年纪大了,想学点东西,总是掌握不好要领,谢谢

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/6 10:01:00 [只看该作者]

2、红色地方自己改

 

Dim dt As DataTable = DataTables("职称评审成绩")

Dim ttl As Double = e.Form.Controls("NumericComboBox1").Value
For Each lb As String In dt.GetValues("单位类型")
    Dim zys As List(Of String) = dt.GetValues("专业组名称", "单位类型 = '" & lb & "'")
    For Each bj As String In zys
        Dim drs As List(Of DataRow) = dt.Select("单位类型 = '" & lb & "' and [专业组名称] = '" & bj & "'", "最终成绩")
        Dim ttrs As Integer = drs.Count * ttl
        If ttrs < 1 Then '这种情况不知道什么意思,自己写
           
        Else
            For n As Integer = 0 To drs.Count - 1
                If n < ttrs Then
                    drs(n)("等次") = "末位淘汰"
                Else
                    drs(n)("等次") = "入围"
                End If
            Next
        End If
    Next
Next
dt.ReplaceFor("等次", "优秀等次", "最终成绩 >= 90")
dt.ReplaceFor("等次", "直接淘汰", "最终成绩 < 60")


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/3/6 10:02:00 [只看该作者]

3、自己写

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8840 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2015/3/6 15:14:00 [只看该作者]

有点甜,真不好意思,下列代码,弄了一中午,没搞好,你看一下红字的地方,要表述的是如果  If ttrs < 1 Then,那么就在等次列,填写“手工复审”,怎么改。
代码如下: Dim dt As DataTable = DataTables("职称评审成绩")
Dim ttl As Double = e.Form.Controls("NumericComboBox1").Value
For Each lb As String In dt.GetValues("单位类型")
    Dim zys As List(Of String) = dt.GetValues("专业组名称", "单位类型 = '" & lb & "'")
    For Each bj As String In zys
        Dim drs As List(Of DataRow) = dt.Select("单位类型 = '" & lb & "' and [专业组名称] = '" & bj & "'", "最终成绩")
        Dim ttrs As Integer = drs.Count * ttl
        If ttrs < 1 Then '这种情况不知道什么意思,自己写
          drs("等次") = "手工复审"
        Else
            For n As Integer = 0 To drs.Count - 1
                If n > ttrs Then
                    drs(n)("等次") = "末位淘汰"
                Else
                    drs(n)("等次") = "入围"
                End If
            Next
        End If
    Next
Next
dt.ReplaceFor("等次", "优秀等次", "最终成绩 >= 90")
dt.ReplaceFor("等次", "直接淘汰", "最终成绩 < 60")


e.Form.Controls("成绩").Table.Sort="单位类型,专业组名称,面试顺序"
[此贴子已经被作者于2015/3/6 15:14:23编辑过]

 回到顶部
总数 12 1 2 下一页