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


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

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

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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/12/10 16:33:00 [只看该作者]

以下是引用有点甜在2014-12-10 16:25:00的发言:

 那肯定会重复啊老兄

 

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

是会重复啊。

但只有找到同一个客户,同一机型,并且最大的临时版本编号行的状态处于Bound和Confirming时,新增行的临时版本编号才等同已有的同一客户同一机型的最大临时版本编号。

比如,已有客户为aaa,机型是123,并且状态是Bound。临时版本编号为12002_2014.

那么当新增行的客户也为aaa,机型也为123,这时临时版本编号就应该为12002_2014.

如果新增行的客户为bbb,机型为456,需求编号为201412003,在临时版本跟踪表并没有找到客户客户也为bbb,机型为456 的行(除新增行),那么新增行的临时版本编号就为12003_2014.


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | 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


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


加好友 发短信
等级:三尾狐 帖子:633 积分:4034 威望:0 精华:0 注册:2014/6/23 10:27:00
  发帖心情 Post By:2014/12/10 17:42:00 [只看该作者]

以下是引用有点甜在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

是啊。就是这个意思啊。看来我表述不行啊。呵呵。

 


 回到顶部
总数 13 上一页 1 2