以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  一个复杂编号的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=103317)

--  作者:douglas738888
--  发布时间:2017/7/5 17:43:00
--  一个复杂编号的问题

请教老师,下列代码第二组黄色部分不会自动顺序编号

 

形成的编号是B17003-35001C-A01-01   红色是主图号通过父表得到的,黄色部分的自动编号根据主图号的不同自动从001起编,如果主图号不变的情况下,黄色

 

部分根据蓝色部分从001自动顺序起编  (蓝色部分是电压等级)

 

Select e.DataCol.Name
    Case "设计编号_电压等级","设计编号_设计阶段","图纸编号_专业类别","图纸编号_顺序编号"
        If e.DataRow.IsNull("主图号") OrElse e.DataRow.IsNull("设计编号_电压等级") OrElse e.DataRow.IsNull("设计编号_设计阶段") OrElse e.DataRow.IsNull("图纸编号_专业类别") OrElse e.DataRow.IsNull("图纸编号_顺序编号") Then
            e.DataRow("子图号") = Nothing
        Else
            Dim flt As String
            flt = "主图号 = \'" & "\' [_Identify] <> " & e.DataRow("_Identify")
            
            flt = "主图号 = \'" & "\' and 设计编号_电压等级 = \'" & e.DataRow("设计编号_电压等级") & "\' And [_Identify] <> " & e.DataRow("_Identify")
            max = e.DataTable.Compute("Max(设计编号_工程编号)",flt) \'取得电压等级的相同工程代码的最大单据编号
            e.DataRow("设计编号_工程编号") = max + 1


            flt = "主图号 = \'" & "\' and 图纸编号_专业类别 = \'" & e.DataRow("图纸编号_专业类别") & "\' and 设计编号_电压等级 = \'" & e.DataRow("设计编号_电压等级") & "\' And [_Identify] <> " & e.DataRow("_Identify")
            \'max = e.DataTable.Compute("Max(设计编号_工程编号)",flt) \'取得电压等级的相同工程代码的最大单据编号
            e.DataRow("设计编号_工程编号") = max + 1
           
            e.DataRow("子图号") = e.DataRow("主图号")  & e.DataRow("设计编号_电压等级") & format(e.DataRow("设计编号_工程编号"), "000") & e.DataRow("设计编号_设计阶段") & "-" & e.DataRow("图纸编号_专业类别") & Format(e.DataRow("图纸编号_分册编号"), "00-") & Format(e.DataRow("图纸编号_顺序编号"),"00")

     End If
End Select

[此贴子已经被作者于2017/7/5 17:50:25编辑过]

--  作者:有点蓝
--  发布时间:2017/7/5 18:01:00
--  
参考这种用法:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=93239
--  作者:有点甜
--  发布时间:2017/7/5 18:32:00
--  
 上传实例测试。