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


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

主题:自动编考号

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


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

有年级表,班级表,成绩表,在年级中的班级数更改的时候自动把班级表的班数录入,现想同理在年级中录入参考人数时自动在成绩表中将考号录入,录入原则是在年级表的年级其础上后缀4位代码,如年级为32120182 (3表示区县,21代表学校,2018代表级,2代表第2期,****后四位为其考试号)
If e.DataCol.name = "班级数" Then
    DataTables("班级表").DeleteFor("班级 Like '" & e.DataRow("年级") & "-" & "%'")
    For i As Integer = 1 To e.DataRow("班级数")
        Dim str As String = e.DataRow("年级") & "-" & i & "班"
        'Dim fdr As DataRow = DataTables("表B").find("班号 = '" & str & "'")
        'If fdr IsNot Nothing Then
        Dim nr As DataRow = DataTables("班级表").AddNew
        nr("班级") = str
        'Next
    Next
End If


If e.DataCol.name = "参考人数" Then
    DataTables("成绩").DeleteFor("考号 Like '" & e.DataRow("年级")*1000)
    For i As Integer = 1 To e.DataRow("参考人数")
        Dim str As Integer = e.DataRow("年级")*1000 + i
        'Dim fdr As DataRow = DataTables("表g").find("班号 = '" & str & "'")
        ''If fdr IsNot Nothing Then
        Dim nr As DataRow = DataTables("成绩").AddNew
        nr("学校班级") = str
        ''Next
    Next
我改了下,改不对,请帮忙看下,谢谢

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


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

If e.DataCol.name = "参考人数" Then
    DataTables("成绩").DeleteFor("考号 Like '" & e.DataRow("年级") & "%'")
    For i As Integer = 1 To e.DataRow("参考人数")
        Dim str As Integer = e.DataRow("年级") & format(i, "0000")
        Dim nr As DataRow = DataTables("成绩").AddNew
        nr("学校班级") = str
    Next
End if

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


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

.NET Framework 版本:2.0.50727.8689
Foxtable 版本:2014.11.11.1
错误所在事件:表,年级表,DataColChanged
详细错误信息:
调用的目标发生了异常。
无法在 System.Int32 和 System.String 上执行“Like”操作。


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


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

If e.DataCol.name = "参考人数" Then
    DataTables("成绩").DeleteFor("convert(考号, 'System.String') Like '" & e.DataRow("年级") & "%'")
    For i As Integer = 1 To e.DataRow("参考人数")
        Dim str As Integer = e.DataRow("年级") & format(i, "0000")
        Dim nr As DataRow = DataTables("成绩").AddNew
        nr("学校班级") = str
    Next
End if

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


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

.NET Framework 版本:2.0.50727.8689
Foxtable 版本:2014.11.11.1
错误所在事件:表,年级表,DataColChanged
详细错误信息:
调用的目标发生了异常。
算术运算导致溢出。

考号列为整数型,我估计是这行为误,不晓得该怎么改,请帮忙指点
  Dim str As Integer = e.DataRow("年级") & format(i, "0000")

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


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

1、考号列改成字符列

 

2、代码

 

If e.DataCol.name = "参考人数" Then
    DataTables("成绩").DeleteFor("考号 Like '" & e.DataRow("年级") & "%'")
    For i As Integer = 1 To e.DataRow("参考人数")
        Dim str As String= e.DataRow("年级") & format(i, "0000")
        Dim nr As DataRow = DataTables("成绩").AddNew
        nr("考号") = str
    Next
End if


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


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

对了,谢谢指导

 回到顶部