以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现自动编号前加上用户名 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=45723) |
||||
-- 作者:ap9709130 -- 发布时间:2014/2/9 22:40:00 -- 如何实现自动编号前加上用户名 各位老师
我想实现新增行号自动生成编号,编号由日期和用户名形成,比如:张三20140209001, 我参考了帮助中的代码,我的代码如下:
If e.DataCol.Name = "订单日期" Then
但是会出错,如何能实现我的要求?多谢! |
||||
-- 作者:有点甜 -- 发布时间:2014/2/9 23:18:00 -- 呃,你试试这样改,不行的话,你就上传一个例子 If e.DataCol.Name = "订单日期" Then If e.DataRow.IsNull("订单日期") Then e.DataRow("订单编号") = Nothing Else Dim bh As String = User.Name & Format(e.DataRow("订单日期"),"yyMMdd") \'取得编号的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 |
||||
-- 作者:zyqzyy -- 发布时间:2014/2/10 9:08:00 -- 不能自动编号,请老师指点!
|
||||
-- 作者:ap9709130 -- 发布时间:2014/2/10 9:23:00 -- 甜
你这种我也试过了,是不行的。 |
||||
-- 作者:Bin -- 发布时间:2014/2/10 9:33:00 -- .
|
||||
-- 作者:ap9709130 -- 发布时间:2014/2/10 9:59:00 -- 解决了。多谢各位老师! |
||||
-- 作者:zyqzyy -- 发布时间:2014/2/10 10:04:00 -- 学习了!谢谢! Bin老师是修改了这一句代码: idx = CInt(max.Substring(max.length-3,3)) + 1 \'获得最大编号的后三位顺序号,并加1,不论生成的编号是多少位数都能正常取值!!! |
||||
-- 作者:zyqzyy -- 发布时间:2014/2/10 10:10:00 -- 取日期:Dim bh As String = User.Name & Format(e.DataRow("订单日期"),"yyyyMMdd") |