Foxtable(狐表)用户栏目专家坐堂 → [求助]自动编号的生成求助。


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

主题:[求助]自动编号的生成求助。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/10 14:15:00 [显示全部帖子]

 上传例子。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/10 15:51:00 [显示全部帖子]

 你的逻辑上有问题,新增行的时候,你的 客户,博达机型,状态列 还没有填入,

 

 怎么可能比较得出编号?你是想修改客户等信息的时候再生成编号?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/10 15:58:00 [显示全部帖子]

 再有,你的1、2、3有什么区别?最后生成的时候,编号列,肯定是会重复的,这是你的初衷么

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/10 16:00:00 [显示全部帖子]


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/10 16:25:00 [显示全部帖子]

 那肯定会重复啊老兄

 

12001_2014、12002_2014 等等的值,会重复啊,编号就是去它标注唯一的功能啊


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/12/10 17:03:00 [显示全部帖子]

 汗,这个意思?Datacolchanged事件加入如下代码,DataRowAdded事件的代码记得去除

 

If e.DataCol.Name = "客户" OrElse e.DataCol.Name = "博达机型" Then
    If e.DataRow.IsNull("客户") OrElse e.DataRow.IsNull("博达机型") Then
        e.DataRow("临时版本编号") = Nothing
    Else
        Dim dr As DataRow
        dr = DataTables("临时版本跟踪表").SQLFind("[客户] = '" & e.DataRow("客户") & "' and [博达机型] = '" & e.DataRow("博达机型") & "' and ([状态] = 'Bound' or [状态] = 'Confirming' or [状态] = 'Nopass')")
        If dr IsNot Nothing Then
            e.DataRow("临时版本编号") = dr("临时版本编号")
        Else
            Dim d As Date = Date.Today
            Dim m As String = Format(d,"MM")
            Dim y As String = Format(d,"yyyy")
            'Dim max As String
            Dim idx As Integer
            'max = e.DataTable.SQLCompute("Max(临时版本编号)","SubString(临时版本编号,1,2) = '" & m & "'  And SubString(临时版本编号,6,5) = '_" & y & "'")
            'If max > "" Then
                idx = right(e.DataRow("需求编号"),3)
                e.DataRow("临时版本编号") = m & Format(idx,"000") & "_" & y
            'Else
             '   e.DataRow("临时版本编号") = m & Format(1,"000") & "_" & y
            'End If
        End If
    End If
    e.DataRow.Save
End If


 回到顶部