以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]生成编号和日期-0基础学习疑问003  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92987)

--  作者:lemon4012
--  发布时间:2016/11/17 17:43:00
--  [求助]生成编号和日期-0基础学习疑问003

图片点击可在新窗口打开查看此主题相关图片如下:0基础学习疑问003.png
图片点击可在新窗口打开查看
如图所示,想实现点击“新增销售单”按钮后,在左边的表里新增一行,
“销售单号”列根据日期生成类似20161117-001的编号,
“制单日期”列显示当天日期,
所显示的日期是通过设置列属性的默认值为Date来实现的,但是绑定到“制单日期:”的文本框后,就出现了0:00:00,,,不不知道怎么回事了!头疼!

另,有偿寻一位能解答问题的师傅,论坛搜索,头疼,好累!
[此贴子已经被作者于2016/11/17 17:46:51编辑过]

--  作者:有点青
--  发布时间:2016/11/17 18:25:00
--  

1、编号问题 http://www.foxtable.com/webhelp/scr/2403.htm

 

2、控件不要用textbox,要用日期控件。


--  作者:lemon4012
--  发布时间:2016/11/17 18:58:00
--  
以下是引用有点青在2016/11/17 18:25:00的发言:

1、编号问题 http://www.foxtable.com/webhelp/scr/2403.htm

 

2、控件不要用textbox,要用日期控件。




此主题相关图片如下:0基础学习疑问003-1.png
按此在新窗口浏览图片


[此贴子已经被作者于2016/11/17 18:59:10编辑过]

--  作者:有点蓝
--  发布时间:2016/11/17 20:22:00
--  
贴出有问题的代码
--  作者:lemon4012
--  发布时间:2016/11/17 20:40:00
--  
If e.DataCol.Name = "制单日期" Then
    If e.DataRow.IsNull("制单日期") Then
        e.DataRow("销售单号") = Nothing
    Else
        Dim bh As String = Format(e.DataRow("制单日期"),"yyyyMMdd") \'取得编号的8位前缀
        If e.DataRow("销售单号").StartsWith(bh) = False \'如果编号的前8位不符
            Dim max As String
            Dim idx As Integer
            max = e.DataTable.Compute("Max(销售单号)","制单日期 = #" & e.DataRow("制单日期") & "# And [_Identify] <> " & e.DataRow("_Identify")) \'取得该天的最大编号
            If max > "" Then \'如果存在最大编号
                idx = CInt(max.Substring(9,3)) + 1 \'获得最大编号的后三位顺序号,并加1
            Else
                idx = 1 \'否则顺序号等于1
            End If
            e.DataRow("销售单号") = bh & "-" & Format(idx,"000")
        End If
    End If
End If
[此贴子已经被作者于2016/11/17 20:40:24编辑过]

--  作者:有点蓝
--  发布时间:2016/11/17 20:44:00
--  
销售单号是数字型列来的吧,改成字符列