Foxtable(狐表)用户栏目专家坐堂 → 填充自动编号


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

主题:填充自动编号

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


加好友 发短信
等级:九尾狐 帖子:2454 积分:22630 威望:0 精华:0 注册:2011/3/29 17:14:00
填充自动编号  发帖心情 Post By:2019/10/20 1:38:00 [只看该作者]

Dim dr As Row = Tables("项目管理").Current
Dim Cols1() As String = {"产品系列","产品分类","产品名称","主材工艺" ,"备注"}
Dim Cols2() As String = {"产品系列","产品分类","产品名称","主材工艺" ,"备注"}
For Each dr1 As DataRow In DataTables("项目选型表").Select("[选择] = True ")
    Dim dr2 As DataRow = DataTables("项目清单").AddNew()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
    dr2("区域") = e.Form.Controls("ComboBox2").text
    dr2("楼层") = e.Form.Controls("ComboBox1").text
    dr2("客户ID") = dr("客户ID")
    dr2("报价ID") = dr("报价ID")
    dr2("客户") = dr("客户")
    dr2("项目名称") = dr("客户") & "/"& dr("客户地址")
    dr2("项目组") = dr("项目组")

Dim bh As String = "TQD" & Format(dr2("sys_日期"),"yyyyMMdd") '取得编号的8位前缀
If dr2("清单ID").StartsWith(bh) = False '如果编号的前8位不符
Dim max As String
Dim idx As Integer
max = dr2.Compute("Max(清单ID)","sys_日期 = #" & dr2("sys_日期") & "# And [_Identify] <> " & dr2("_Identify")) '取得该天的最大编号
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(12,5)) + 1 '获得最大编号的后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
dr2("清单ID") = bh & "-" & Format(idx,"00000")
End If

上面的自动编号功能不能工作,需要怎么调整呢
    
Next
'

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


加好友 发短信
等级:五尾狐 帖子:1093 积分:6682 威望:0 精华:0 注册:2013/7/1 9:05:00
  发帖心情 Post By:2019/10/20 9:32:00 [只看该作者]

    Dim bh As String = "TQD" & Format(dr2("sys_日期"),"yyyyMMdd") '编号的前缀是8位
    If dr2("清单ID").StartsWith(bh) = False '如果编号的前8位不符
        Dim max As String
        Dim idx As Integer
        max = dr2.Compute("Max(清单ID)","sys_日期 = #" & dr2("sys_日期") & "# And [_Identify] <> " & dr2("_Identify")) '取得该天的最大编号
        If max > "" Then '如果存在最大编号
            idx = CInt(max.Substring(12,5)) + 1 '既然编号的长度是14位,从第13个字符开始取5个字符,是啥子意思
        Else
            idx = 1 '否则顺序号等于1
        End If
        dr2("清单ID") = bh & "-" & Format(idx,"00000")  ‘8+1+5 = 14 ,编号的长度是14位
    End If



所以:
   idx = CInt(max.Substring(12,5)) + 1  
也许应该改为:
   idx = CInt(max.Substring(9,5)) + 1

 回到顶部