Foxtable(狐表)用户栏目专家坐堂 → [求助]自动编号的插入问题


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

主题:[求助]自动编号的插入问题

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


加好友 发短信
等级:二尾狐 帖子:593 积分:5562 威望:0 精华:0 注册:2012/6/29 19:11:00
[求助]自动编号的插入问题  发帖心情 Post By:2013/3/4 11:58:00 [只看该作者]

如果我有个自动编号从F-01自动编到F-09; 假如我从F-05前插入一行,将新行编号改为F-05,后面的编号依次加1; 这个效果怎么做?
 
 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:foxtable自动编号.table


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


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

不要这样做,编号没有必要可以追求连续。

编号就是某一行的唯一标记,就像人的身份证号码,不能因为某个人的过世,其他人的身份证号码就要重新编过。

[此贴子已经被作者于2013-3-4 12:00:40编辑过]

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


加好友 发短信
等级:二尾狐 帖子:593 积分:5562 威望:0 精华:0 注册:2012/6/29 19:11:00
  发帖心情 Post By:2013/3/4 12:37:00 [只看该作者]

但是我的自动编号还有一个用途,是用来设别生产流程顺序的(排序);如果在生产过程中发现此流程不合理,或都需要在中间增加一道工序;这样原来生产流程就不对了;因为以目前编号的方法新增的流程就在最后,而这不是我想要的;

 

这个问题该怎么解决?


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


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

呵呵,简单:

 

 

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


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


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

你这样做,不妥,自动编号不能人为干预,否则没有客观性,还会造成引用错误,如果你的流程常变,不如用序列填充,改起来方便。

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


加好友 发短信
等级:二尾狐 帖子:593 积分:5562 威望:0 精华:0 注册:2012/6/29 19:11:00
  发帖心情 Post By:2013/3/5 15:25:00 [只看该作者]

5楼说的问题确实存在,但在我的项目里用上狐爸的方法,再稍做修改 ;这个问题就不存在了;


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


加好友 发短信
等级:二尾狐 帖子:593 积分:5562 威望:0 精华:0 注册:2012/6/29 19:11:00
  发帖心情 Post By:2013/3/5 16:06:00 [只看该作者]

狐爸 ,虽然用了你的方法把问题解决了,但是我还不懂你以下代码的逻辑,能不能帮忙解释一下呀?与帮助介绍的自动编号的方法有什么不同?劳驾了

 

 

Dim cnt As Integer =1 [定义个初始编号]
        If e.NewValue > "" Then [如果有新值]
            For Each dr As DataRow In DataTables("表A").Select("类别 = '" & e.NewValue & "'","_SortKey")
                dr("编号") = e.NewValue & "-" & Format(cnt,"000")
                cnt = cnt + 1
            Next
        End If
        cnt = 1
        If e.OldValue > "" Then 【如果存在旧值】
            For Each dr As DataRow In DataTables("表A").Select("类别 = '" & e.OldValue & "'","_SortKey")
                dr("编号") = e.OldValue & "-" & Format(cnt,"000")
                cnt = cnt + 1
            Next
        End If


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


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

就是分别针对旧类别和新类别的所有行,从1开始重新编号。

 回到顶部