Foxtable(狐表)用户栏目专家坐堂 → 自动编考号


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

主题:自动编考号

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14937 威望:0 精华:0 注册:2016/4/28 9:58:00
自动编考号  发帖心情 Post By:2016/8/15 22:18:00 [只看该作者]

一成绩表字段为{"学校代码","单位名称","年级代码","班级","学籍号","考号","姓名"},
现准备将"学校代码","单位名称","年级代码","班级","学籍号","姓名"在excl导入后设计个一键自动编考号

1、编考号原则为学校代码(3位)+年级代码(6位)+班级代码(2位)+0001(4位) 共15位连续考号
2、每个学校每个年级均从XXXXXXXXXX0001开始。
3、同学校同年级学生编号前各班按姓序排序后,编考号按1班第1位为XXXXXXXXXXX0001,2班第1位为XXXXXXXXXXX002...以此类推,排完各班第1位,再循环第2位,目的是将学生考号分班间隔.



这是我很想实现的一个智能化排号方案,但知识有限,请老师多多指点,谢谢!!!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/15 22:29:00 [只看该作者]

 DataColChanged

 

Select e.DataCol.Name
    Case "学校代码", "年级代码", "班级代码"
        If e.DataRow.IsNull("学校代码") OrElse e.DataRow.IsNull("年级代码") OrElse e.DataRow.IsNull("班级代码") Then
            e.DataRow("编号") = Nothing
        Else
            Dim lb As String = e.DataRow("学校代码") & e.DataRow("年级代码") & e.DataRow("班级代码")
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(编号)","(学校代码+年级代码+班级代码) = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号
            If max > "" Then '如果存在最大编号
                idx = CInt(max.Substring(lb.Length)) + 1 '获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End If
            e.DataRow("编号") = lb & Format(idx,"0000")
        End If
End Select

 

http://www.foxtable.com/webhelp/scr/2403.htm

 


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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14937 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/8/15 22:45:00 [只看该作者]

谢谢您这么快速的指导,

1、我是想分校分年级分班学生要按姓名排序
2、同校同年级一个班一个人的编号,号序为1班2班3班1班2班3班如此排下去
3、在把6个字段导入后在窗口设计一个按键一键编好所有学校所有年级的考号,不在 DataColChanged中编号

请再帮忙指点,谢谢!!!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/15 22:47:00 [只看该作者]

上传fxotable实例。

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14937 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/8/15 22:52:00 [只看该作者]

我测了一下,是实现年各学校各年级各班从1号开始的,是想同一学校同一年级编通号,且分班间隔,谢谢

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14937 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/8/15 23:20:00 [只看该作者]

Select e.DataCol.Name
    Case "学校代码", "年级代码", "班级"
        If e.DataRow.IsNull("学校代码") OrElse e.DataRow.IsNull("年级代码") OrElse e.DataRow.IsNull("班级") Then
            e.DataRow("考号") = Nothing
        Else
            Dim lb As String = e.DataRow("学校代码") & e.DataRow("年级代码")'' & e.DataRow("班级")
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(考号)","(学校代码+年级代码) = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号
            If max > "" Then '如果存在最大编号
                idx = CInt(max.Substring(lb.Length)) + 1 '获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End If
            e.DataRow("考号") = lb & Format(idx,"0000")
        End If
End Select

老师我改了下实现了同校同年级通号了,但想按同校同年级1个班1个人的编通号走不晓得怎么办,请求指导,谢谢!!!

A校A级1班  XXXXX0001   姓名a1
   A校A级2班  XXXXX0002   姓名B1
        A校A级1班       XXXXXXX 0003          姓名a2
        A校A级1班      XXXXXXX0004            姓名B2
        姓名a1,a2按他本班姓名排序,b1,b2按他们所在班排序
   目的是同校同年级连号走,但座位按班错开,有利于考试公平


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/15 23:35:00 [只看该作者]

上传foxtable实例。

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14937 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/8/16 7:24:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:题库.zip

请老师看下,现在考号已实现了同校同校年级分组排号了,主要是还要实现排号是把同校的各班循环错开且每个班学生按姓名排序,排序在前的先排号,谢谢!!!

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


加好友 发短信
等级:三尾狐 帖子:710 积分:5345 威望:0 精华:0 注册:2013/5/27 9:48:00
  发帖心情 Post By:2016/8/16 8:18:00 [只看该作者]

你应该说明同年级有几个班,这样便于设计循环,比如同年级有20个班一班的第一个号与第二个号要间隔19个数,对不?

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


加好友 发短信
等级:八尾狐 帖子:1942 积分:14937 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2016/8/16 8:55:00 [只看该作者]

这个是动态的,因为各校各年级的班数不一样,我想是不是可以提出最大班号与最小班号来算,我是初学者,只是有某种想法,实现起就很难,相信你们高手就轻松解决了,望多指教,谢谢

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