以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  文本框自动按日期框年月编号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=128381)

--  作者:zhuxinhui
--  发布时间:2018/12/4 23:59:00
--  文本框自动按日期框年月编号
 If e.form.Controls("DateTimePicker1").value =  Nothing Then
        e.Form.controls("TextBox1").value = Nothing
    Else
        Dim bh As String = Format(e.form.Controls("DateTimePicker1").value ,"yyyyMMdd") \'取得编号的8位前缀
        If e.form.Controls("DateTimePicker1").\'.StartsWith(bh) = False \'如果编号的前8位不符
            Dim  max As String
            Dim  idx As  Integer
            max = DataTables("采购").Compute("Max(单号)","入库日期 = #" &  e.form.Controls("DateTimePicker1").value & "#" ) \'取得该天的最大编号
            If  max > "" Then \'如果存在最大编号
                idx = CInt(max.Substring(9,3)) + 1  \'获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 \'否则顺序号等于1
            End  If
            e.Form.controls("TextBox1").value = bh & "-" & Format(idx,"000")
         End If
    End  If

--  作者:zhuxinhui
--  发布时间:2018/12/5 0:03:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20181204235950.png
图片点击可在新窗口打开查看

--  作者:zhuxinhui
--  发布时间:2018/12/5 0:03:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq截图20181205000130.png
图片点击可在新窗口打开查看

--  作者:zhuxinhui
--  发布时间:2018/12/5 0:06:00
--  

根据采购表中的单号,和窗口的日期文本框的日期年月份生成单号,窗口日期和单号文件是没有绑定的,我是想在窗口输入日期后单号文本框自动生产单号,样式:SG201811-00001


--  作者:有点甜
--  发布时间:2018/12/5 9:00:00
--  

参考这里的做法

 

http://www.foxtable.com/webhelp/scr/2403.htm

 


--  作者:zhuxinhui
--  发布时间:2018/12/5 9:05:00
--  
看过了,在表上可以,试了大半日还是学不会,在文本框就转不过来了


--  作者:有点甜
--  发布时间:2018/12/5 9:42:00
--  
以下是引用zhuxinhui在2018/12/5 9:05:00的发言:
看过了,在表上可以,试了大半日还是学不会,在文本框就转不过来了

 

贴出你表格里面写好的代码。


--  作者:zhuxinhui
--  发布时间:2018/12/5 13:44:00
--  
If e.form.Controls("DateTimePicker1").value =  Nothing Then
        e.Form.controls("TextBox1").value = Nothing
    Else
        Dim bh As String = Format(e.form.Controls("DateTimePicker1").value ,"yyyyMMdd") \'取得编号的8位前缀
        If e.form.Controls("DateTimePicker1").\'.StartsWith(bh) = False \'如果编号的前8位不符
            Dim  max As String
            Dim  idx As  Integer
            max = DataTables("采购").Compute("Max(单号)","入库日期 = #" &  e.form.Controls("DateTimePicker1").value & "#" ) \'取得该天的最大编号
            If  max > "" Then \'如果存在最大编号
                idx = CInt(max.Substring(9,3)) + 1  \'获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 \'否则顺序号等于1
            End  If
            e.Form.controls("TextBox1").value = bh & "-" & Format(idx,"000")
         End If
    End  If


--  作者:有点甜
--  发布时间:2018/12/5 15:28:00
--  

If e.form.Controls("DateTimePicker1").text =  Nothing Then
    e.Form.controls("TextBox1").value = Nothing
Else
    Dim bh As String = Format(cdate(e.form.Controls("DateTimePicker1").text) ,"yyyyMMdd") \'取得编号的8位前缀
    Dim  max As String
    Dim  idx As  Integer
    max = DataTables("采购").Compute("Max(单号)","入库日期 = #" &  e.form.Controls("DateTimePicker1").value & "#" ) \'取得该天的最大编号
    If  max > "" Then \'如果存在最大编号
        idx = CInt(max.Substring(9,3)) + 1  \'获得最大编号的后三位顺序号,并加1
    Else
        idx = 1 \'否则顺序号等于1
    End  If
    e.Form.controls("TextBox1").value = bh & "-" & Format(idx,"000")
   
End  If


--  作者:zhuxinhui
--  发布时间:2018/12/5 16:26:00
--  
多谢