以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 求助:唯一序号 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69290) |
-- 作者:yifan3429 -- 发布时间:2015/6/2 16:48:00 -- 求助:唯一序号 Dim lb As String = "PO#" If e.DataRow("产品编号").StartsWith(lb) = False \'如果单据编号前缀不符 Dim max As String Dim idx As Integer \'max = e.DataTable.Compute("Max(客户编号)","Ib = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 max = e.DataTable.Compute("Max(产品编号)","[_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(3,5)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("产品编号") = lb & Format(idx,"00000") End If 一个是订单明细 我会将他剪切到 制造订单 产品编号也会随之剪到 制造订单里 如果现在重新增加新的订单又会重复开始001 002这样的编码 我希望从两个表里面查找最大的值,这样保证不碰车。 求高手帮忙
[此贴子已经被作者于2015/6/2 17:05:09编辑过]
|
-- 作者:Bin -- 发布时间:2015/6/2 16:50:00 -- 默认就是这样的 你的意思是不断号?
|
-- 作者:大红袍 -- 发布时间:2015/6/2 16:50:00 -- Dim lb As String = "PO#" Dim max As String Dim idx As Integer \'max = e.DataTable.Compute("Max(客户编号)","Ib = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 max = e.DataTable.Compute("Max(产品编号)","[_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(3,5)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("产品编号") = lb & Format(idx,"00000") |
-- 作者:yifan3429 -- 发布时间:2015/6/2 17:06:00 -- 新的订单 通过生成新的指令单 全部减除了 [此贴子已经被作者于2015/6/2 17:07:27编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/6/2 17:12:00 -- 哦,那你可以直接用 _Identify
Dim lb As String = "PO#" |