以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 填充自动编号 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=142161) |
-- 作者:yifan3429 -- 发布时间: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 \'
|
-- 作者:有点酸 -- 发布时间: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 |