以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]生成编号和日期-0基础学习疑问003 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=92987) |
-- 作者:lemon4012 -- 发布时间:2016/11/17 17:43:00 -- [求助]生成编号和日期-0基础学习疑问003 ![]() ![]() 如图所示,想实现点击“新增销售单”按钮后,在左边的表里新增一行, “销售单号”列根据日期生成类似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,要用日期控件。 [此贴子已经被作者于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 -- 销售单号是数字型列来的吧,改成字符列 |