Foxtable(狐表)用户栏目专家坐堂 → [求助]自动编号,还是有误


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

主题:[求助]自动编号,还是有误

美女呀,离线,留言给我吧!
annliu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:28 积分:291 威望:0 精华:0 注册:2011/12/16 17:00:00
[求助]自动编号,还是有误  发帖心情 Post By:2013/3/18 21:26:00 [只看该作者]

If e.DataCol.Name = "入库日期" Then
    If e.DataRow("入库日期") <> Nothing  Then
        Dim bh As String = Format(e.DataRow("入库日期"),"yyyyMMdd") '取得编号的8位前缀
        If e.DataRow("入库单号").StartsWith("R"&bh) = False '如果编号的前6位不符
            Dim cmd As New SQLCommand
            Dim dt As DataTable
            cmd.C
            cmd.CommandText = "Select * From {成品入库表} where ( 入库日期 ="'"e.DataRow( "入库日期") "'") "
            dt = cmd.ExecuteReader()
            Dim max As String
            Dim idx As Integer
            max = dt.Compute ("Max(入库单号)","入库日期 = # " & e.DataRow("入库日期") & " # ")
            '(下单日期 >= #" & fd & "# And 下单日期 <= #" & ld & "#) or (编号) like '" & bh & "%'") '取得该月的最大编号
            If max > "" Then '如果存在最大编号
                idx = CInt(max.Substring(11,2)) + 1 '获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End If
            e.DataRow("编号") = "R" & bh & Format(idx,"00")
            e.DataRow.save
        End If
    End If
End If

 

狐爸,请帮我看看自动编号的问题,谢谢。提示“=” 附近有错误。可能是这句的问题。

 cmd.CommandText = "Select * From {成品入库表} where ( 入库日期 ="'"e.DataRow( "入库日期") "'") "
dt = cmd.ExecuteReader()

 

 

[此贴子已经被作者于2013-3-19 9:05:26编辑过]

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


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2013/3/19 5:39:00 [只看该作者]

cmd.CommandText = "Select * From {成品入库表} where 入库日期 = #" & e.DataRow( "入库日期") & "#"

 回到顶部
美女呀,离线,留言给我吧!
annliu
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:28 积分:291 威望:0 精华:0 注册:2011/12/16 17:00:00
  发帖心情 Post By:2013/3/19 9:05:00 [只看该作者]

不对的,这样改过后还是有语法错误,“#”附近有语法错误。


 回到顶部
美女呀,离线,留言给我吧!
annliu
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:28 积分:291 威望:0 精华:0 注册:2011/12/16 17:00:00
  发帖心情 Post By:2013/3/19 13:26:00 [只看该作者]

不对的,这样改过后还是有语法错误,“#”附近有语法错误。


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


加好友 发短信
等级:九尾狐 帖子:2609 积分:16926 威望:0 精华:11 注册:2011/9/20 16:13:00
  发帖心情 Post By:2013/3/19 13:31:00 [只看该作者]

把 # 号 改成‘ 单引号


 回到顶部
美女呀,离线,留言给我吧!
annliu
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:28 积分:291 威望:0 精华:0 注册:2011/12/16 17:00:00
  发帖心情 Post By:2013/3/19 14:12:00 [只看该作者]

还是有误,求大侠指点。

改成单引后,重置入库日期列,第一行可以

第二个就不行了

 

.NET Framework 版本:2.0.50727.4984
Foxtable 版本:2012.11.29.1
错误所在事件:表,成品入库表, DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。
参数名: length
   在 System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
   在 UserCode.DataColChanged(DataColEventArgs e)
   --- 内部异常堆栈跟踪的结尾 ---
   在 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   在 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   在 Foxtable.DataTable.O0O1Oll00011OlO0(DataCol OO)

 


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/19 14:14:00 [只看该作者]

用户已被锁定

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/3/19 14:28:00 [只看该作者]

问题可能出在这一行:

 

idx = CInt(max.Substring(11,2)) + 1 '获得最大编号的后三位顺序号,并加1

 

你的编号是: R + 8位数的年月日 + 两位数的编号,合计11个字符

 

所以最后两个应该是从第十个字符开始,也就是编号9开始,改为:

 

idx = CInt(max.Substring(9,2)) + 1 '获得最大编号的后三位顺序号,并加1

 

 


 回到顶部
美女呀,离线,留言给我吧!
annliu
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:28 积分:291 威望:0 精华:0 注册:2011/12/16 17:00:00
  发帖心情 Post By:2013/3/19 14:41:00 [只看该作者]

找到原因了,改好了,谢谢各位!


 回到顶部