以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于行号固定位数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=131756)

--  作者:工匠
--  发布时间:2019/3/6 8:00:00
--  [求助]关于行号固定位数
老师好:
       由于原行号按顺序生成,1和10会排在一起,导致顺序会乱,请帮看看,如何将行号固定3位或4位,如果是1,变为001或0001,谢谢!

Select Case e.DataCol.Name
    Case  "编号"
        Dim max As Integer = e.DataTable.Compute("max(行号)","编号 = \'" & e.DataRow("编号") & "\' and [_Identify] <> " & e.DataRow("_Identify"))
        e.DataRow("行号") = max + 1
        Dim dr As DataRow
End Select

--  作者:有点甜
--  发布时间:2019/3/6 8:47:00
--  

方法一:你把行号列改成整数列,即可,不要用字符列;

 

方法二:

 

Select Case e.DataCol.Name
    Case  "编号"
        Dim max As Integer = e.DataTable.Compute("max(行号)","编号 = \'" & e.DataRow("编号") & "\' and [_Identify] <> " & e.DataRow("_Identify"))
        e.DataRow("行号") = format(max + 1, "0000")
        Dim dr As DataRow
End Select

--  作者:工匠
--  发布时间:2019/3/6 9:11:00
--  
谢谢有点甜老师,第二种方法好,因为明细行多了,还要用订单号和行号合并排序,整数的调为3位,合并后位数无法固定,谢谢老师!
[此贴子已经被作者于2019/3/6 9:11:06编辑过]