以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  【求助】求助老师,在窗口控件中根据表数据自动生产编号的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=194984)

--  作者:王小风
--  发布时间:2025/2/13 17:24:00
--  【求助】求助老师,在窗口控件中根据表数据自动生产编号的问题
If e.Sender.Name = "ddjrq" Or e.Sender.Name = "ddjlx" Then
    If e.Form.Controls("ddjrq").Text <> "" And e.Form.Controls("ddjlx").Text <> "" Then
        Dim d As Date = e.Form.Controls("ddjrq").Text
        Dim lx As String
        If e.Form.Controls("ddjlx").Text = "入库" Then
            lx = "RK"
        ElseIf e.Form.Controls("ddjlx").Text = "出库" Then
            lx = "CK"
        ElseIf e.Form.Controls("ddjlx").Text = "退库" Then
            lx = "TK"
        End If
        Dim y As Integer = d.Year
        Dim m As Integer = d.Month
        Dim Days As Integer = Date.DaysInMonth(y, m)
        Dim fd As Date = New Date(y, m, 1) \'获得该月的第一天
        Dim ld As Date = New Date(y, m, Days) \'获得该月的最后一天
        Dim bh As String = lx & "-" & Format(d, "yyyyMMdd") \'生成编号的前11位,4位年,2位月,2位日.
        
        If \'能在表“备件出入库”找到bh      这部怎么写
            
            Dim max As String \'定义“备件出入库”最大的值
            \'提取最大的单据编号这部怎么写
            
            Dim idx As Integer \'编号规则         
            idx = CInt(max.Substring(12, 3)) + 1 \'获得最大编号的后三位顺序号,并加1
        Else
            idx = 1 \'否则顺序号等于1
            
            e.Form.Controls("ddjbh").Text = bh & "-" & Format(idx, "000")
            
            
        End If
    End If
End if 

--  作者:有点蓝
--  发布时间:2025/2/13 17:32:00
--  
If e.Sender.Name = "ddjrq" Or e.Sender.Name = "ddjlx" Then
    If e.Form.Controls("ddjrq").Text <> "" And e.Form.Controls("ddjlx").Text <> "" Then
        Dim d As Date = e.Form.Controls("ddjrq").Text
        Dim lx As String
        If e.Form.Controls("ddjlx").Text = "入库" Then
            lx = "RK"
        ElseIf e.Form.Controls("ddjlx").Text = "出库" Then
            lx = "CK"
        ElseIf e.Form.Controls("ddjlx").Text = "退库" Then
            lx = "TK"
        End If
        
        Dim bh As String = lx & "-" & Format(d, "yyyyMMdd") & "-" \'生成编号的前11位,4位年,2位月,2位日.
        
        Dim max As String = DataTables("备件出入库").Compute("max(ddjbh)", "ddjbh like \'" & bh & "%\'")
        Dim idx As Integer = 1 \'编号规则  
        
        If max > "" Then 
            idx = CInt(max.Substring(12, 3)) + 1 \'获得最大编号的后三位顺序号,并加1
        End If
        
        e.Form.Controls("ddjbh").Text = bh & Format(idx, "000")
    End If
End If