以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 自动编号 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=68376) |
-- 作者:seal51 -- 发布时间:2015/5/15 23:45:00 -- 自动编号 ![]() ![]() |
-- 作者:Bin -- 发布时间:2015/5/16 8:41:00 -- http://www.foxtable.com/help/topics/2403.htm 直接锁定这列,任何时候都不可编辑,只能自动生成就好
|
-- 作者:seal51 -- 发布时间:2015/5/16 16:31:00 -- 老师, 你们没有回复如何自动生成我需要的编号 |
-- 作者:Bin -- 发布时间:2015/5/16 16:36:00 -- 看2楼帮助 |
-- 作者:seal51 -- 发布时间:2015/5/16 16:41:00 -- 2楼没有我想要的编号方法 |
-- 作者:Bin -- 发布时间:2015/5/16 16:42:00 -- 呵呵,说明你没有看 |
-- 作者:seal51 -- 发布时间:2015/5/16 16:50:00 -- Select e.DataCol.Name Case "排产单号" If e.DataRow.IsNull("排产单号") Then e.DataRow("排产序号") = Nothing Else Dim pid As String = e.DataRow("排产单号") If e.DataRow("排产序号").StartsWith(pid) = False \'如果单据排产序号前缀不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(排产序号)","排产单号 = \'" & pid & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该排产单号的最大排产序号 If max > "" Then \'如果存在最大排产序号 idx = CInt(max.Substring(3,3)) + 1 \'获得最大排产序号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("排产序号") = pid & Format(idx,"000") End If End If End Select |
-- 作者:seal51 -- 发布时间:2015/5/16 16:50:00 -- 上面的代码哪个地方有问题呢 |
-- 作者:Bin -- 发布时间:2015/5/16 16:52:00 -- idx = CInt(max.Substring(5,3)) + 1 e.DataRow("排产序号") = pid & "-" & Format(idx,"000")
|
-- 作者:seal51 -- 发布时间:2015/5/16 16:54:00 --
怎么会成这样呢, 如果把P15-0501001更改为P15-0501-001如何做呢 |