Foxtable(狐表)用户栏目专家坐堂 → 代码自动编号出现重复编号


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

主题:代码自动编号出现重复编号

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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
代码自动编号出现重复编号  发帖心情 Post By:2013/7/25 12:28:00 [只看该作者]

请问以下代码生成的编号,为什么会产生重复编号,哪里出错了?

Select e.DataCol.Name
    Case "账号"
        If e.DataRow.IsNull("类别") Then
            e.DataRow("账目编号") = Nothing
        Else
            Dim lb As String = e.DataRow("类别")
            If e.DataRow("账目编号").StartsWith(lb) = False '如果单据账目编号前缀不符
                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(8,5)) + 1 '获得最大账目编号的后三位顺序号,并加1
                Else
                    idx = 1 '否则顺序号等于1
                End If
                e.DataRow("账目编号") = lb & "-" &Format(idx,"00000")
            End If
        End If
End Select

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/7/25 12:31:00 [只看该作者]

你"账目编号"是字符串列吧?

上个例子吧.你这样做不行的.会一直重复获得同一个最大值.你弹出一下你获得的MAX就知道了.

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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
  发帖心情 Post By:2013/7/27 0:26:00 [只看该作者]

"账目编号"是字符串列,已经重新上传例子,请指点.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水帐编号.rar


[此贴子已经被作者于2013-7-27 10:43:30编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/7/27 6:40:00 [只看该作者]

数据源没有,表还是临时的。

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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
  发帖心情 Post By:2013/7/27 12:28:00 [只看该作者]

已经重新上载
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:流水帐编号.rar


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/7/27 13:25:00 [只看该作者]

自动编号放在DataColChanged中,操作很被动,每次修改,编号都改变,修改越多,编号越乱。

放在BeforeSaveDataRow中,只会改变一次,而且保存过的数据又不允许修改的话,就能基本保证编号不重复。

如果在网络环境中,请参考网络环境下的自动编号。


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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
  发帖心情 Post By:2013/7/27 14:11:00 [只看该作者]

报错了.   

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20130727135421.jpg
图片点击可在新窗口打开查看



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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/7/27 14:15:00 [只看该作者]

Select e.DataCol.Name

    Case "账号"

 

 

End Select

 

删除。


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


加好友 发短信
等级:童狐 帖子:213 积分:2228 威望:0 精华:0 注册:2012/2/3 14:14:00
  发帖心情 Post By:2013/7/27 17:31:00 [只看该作者]

老师,按照您的意思改了,要保存时才会产生.我系统不能经常的去自动保存,否则系统会很繁忙的.比较郁闷.
[此贴子已经被作者于2013-7-27 17:32:13编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1695 积分:10725 威望:0 精华:0 注册:2009/10/25 16:45:00
  发帖心情 Post By:2013/7/27 17:43:00 [只看该作者]

以下是引用lsy在2013-7-27 13:25:00的发言:

自动编号放在DataColChanged中,操作很被动,每次修改,编号都改变,修改越多,编号越乱。

放在BeforeSaveDataRow中,只会改变一次,而且保存过的数据又不允许修改的话,就能基本保证编号不重复。

如果在网络环境中,请参考网络环境下的自动编号。

没有看懂您对DataColChanged的描述?  111 改成 222 编号一定要变的,而且也只变一次呀。

 

楼主说的会重复,我测试怎么没有呢?只会重新编号的。  具体怎样操作才会重复?

 

[此贴子已经被作者于2013-7-27 17:46:33编辑过]

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