以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自动编考号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87595)

--  作者:刘林
--  发布时间: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
我改了下,改不对,请帮忙看下,谢谢

--  作者:大红袍
--  发布时间: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

--  作者:刘林
--  发布时间:2016/7/14 12:31:00
--  
.NET Framework 版本:2.0.50727.8689
Foxtable 版本:2014.11.11.1
错误所在事件:表,年级表,DataColChanged
详细错误信息:
调用的目标发生了异常。
无法在 System.Int32 和 System.String 上执行“Like”操作。


--  作者:大红袍
--  发布时间: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

--  作者:刘林
--  发布时间: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")

--  作者:大红袍
--  发布时间: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


--  作者:刘林
--  发布时间:2016/7/14 15:06:00
--  
对了,谢谢指导