Foxtable(狐表)用户栏目专家坐堂 → [求助]自动编号出错,哪儿有问题啊?


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

主题:[求助]自动编号出错,哪儿有问题啊?

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


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
[求助]自动编号出错,哪儿有问题啊?  发帖心情 Post By:2016/6/7 15:23:00 [只看该作者]

If e.DataCol.Name = "登记时间" Then If e.DataRow.IsNull("登记时间") Then e.DataRow("序号") = Nothing Else Dim bh As String = Format(e.DataRow("登记时间"),"yyyyMMdd") '取得序号的8位前缀 If e.DataRow("序号").StartsWith(bh) = False '如果序号的前8位不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(序号)","登记时间 = #" & e.DataRow("登记时间") & "# And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大序号 If max > "" Then '如果存在最大序号 idx = CInt(max.Substring(9,3)) + 1 '获得最大序号的后三位顺序号,并加1 Else idx = 1 '否则顺序号等于1 End If e.DataRow("序号") = bh & "-" & Format(idx,"000") End If End If End If 错误提示: .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2015.12.22.1 错误所在事件:表,保证金管理,DataColChanged 详细错误信息: 调用的目标发生了异常。 未找到类型“Integer”的公共成员“StartsWith”。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/6/7 15:30:00 [只看该作者]

代码换行后发上来。

另,可以先用这个方法调试一下:

http://www.foxtable.com/help/topics/1485.htm

看看是哪一行出错。


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


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2016/6/7 15:34:00 [只看该作者]

If e.DataCol.Name = "登记时间" Then
    If e.DataRow.IsNull("登记时间") Then
        e.DataRow("序号") = Nothing
    Else
        Dim bh As String = Format(e.DataRow("登记时间"),"yyyyMMdd") '取得序号的8位前缀
        If e.DataRow("序号").StartsWith(bh) = False '如果序号的前8位不符
            Dim  max As String
            Dim  idx As  Integer
            max = e.DataTable.Compute("Max(序号)","登记时间 = #" & e.DataRow("登记时间") & "# And [_Identify] <> " & e.DataRow("_Identify")) '取得该天的最大序号
            If  max > "" Then '如果存在最大序号
                idx = CInt(max.Substring(9,3)) + 1  '获得最大序号的后三位顺序号,并加1
            Else
                idx = 1 '否则顺序号等于1
            End  If
            e.DataRow("序号") = bh & "-" & Format(idx,"000")
         End If
    End  If
 End  If


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

[此贴子已经被作者于2016/6/7 15:36:36编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/6/7 15:47:00 [只看该作者]

问题在这一行:

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

 

可能你表中,原来有一些编号,这些编号不符合规范。

 

你可以清除原来的编号,然后重置登记时间列,重新生成编号。

 

接下来输入数据,看看有没有错。

 

如果还有做,做个例子发上来,我们帮你搞定


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


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2016/6/7 15:53:00 [只看该作者]

我在示例里面运行没错啊,是正确的,我其他表里面运行都没问题啊,就这个表有问题。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/6/7 15:55:00 [只看该作者]

删除原来的编号后测试,如果搞不定,传这个表上来

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


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2016/6/7 16:07:00 [只看该作者]

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

在第一个窗口里面

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


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2016/6/7 16:34:00 [只看该作者]

狐爸,传上来了啊,坐等。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/6/7 16:42:00 [只看该作者]

低级错误,序号列你设置成整数了,应该改为字符型。


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


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2016/6/7 16:45:00 [只看该作者]

汗颜..................

 回到顶部