以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  增加行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99827)

--  作者:柳风
--  发布时间:2017/4/27 14:01:00
--  增加行


图片点击可在新窗口打开查看此主题相关图片如下:qq图片增加行.png
图片点击可在新窗口打开查看
此列为字符型,编号比如4-75-1,增加一行后新增行的编号自动变为4-75-2,代码怎么写?

第一个编号手动收入,比如4-75-1,然后其它的自动加1,其中4和75为变值,代码怎么改,谢谢老师

[此贴子已经被作者于2017/4/27 15:55:05编辑过]

--  作者:有点色
--  发布时间:2017/4/27 14:08:00
--  

DataRowAdded事件


Dim bh As String = "4-75-"

Dim max As String
Dim idx As Integer
max = e.DataTable.Compute("Max(生产单编号)","生产单编号 like \'" & bh & "%\' ")
If max > "" Then \'如果存在最大支付编号
    idx = CInt(max.Substring(bh.length)) + 1 \'获得最大支付编号的后三位顺序号,并加1
Else
    idx = 1 \'否则顺序号等于1
End If
e.DataRow("生产单编号") = bh & Format(idx,"0")

[此贴子已经被作者于2017/4/27 14:07:54编辑过]

--  作者:柳风
--  发布时间:2017/4/27 15:50:00
--  

第一个编号手动收入,比如4-76-1,然后其它的自动加1,其中4和76为变值,代码怎么改,谢谢老师


--  作者:有点色
--  发布时间:2017/4/27 15:59:00
--  

Dim fr As DataRow = e.DataTable.DataRows(0)

If fr.IsNull("生产单编号") = False Then
   
    Dim bh As String = fr("生产单编号")
    Dim i As Integer  = bh.LastIndexOf("-")
    If i > 0 Then
        bh = bh.SubString(0, i+1)
        Dim max As String
        Dim idx As Integer
        max = e.DataTable.Compute("Max(生产单编号)","生产单编号 like \'" & bh & "%\' ")
        If max > "" Then \'如果存在最大支付编号
            idx = CInt(max.Substring(bh.length)) + 1 \'获得最大支付编号的后三位顺序号,并加1
        Else
            idx = 1 \'否则顺序号等于1
        End If
        e.DataRow("生产单编号") = bh & Format(idx,"0")
    End If
End If

[此贴子已经被作者于2017/4/27 15:58:57编辑过]