以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 升级后 自动编号 SQLCompute 失效 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57277) |
-- 作者:yifan3429 -- 发布时间:2014/9/22 12:23:00 -- 升级后 自动编号 SQLCompute 失效 \'Select e.DataCol.Name \'Case "类型" \'If e.DataRow.IsNull("类型") Then \'e.DataRow("产品编号") = Nothing \'Else \'Dim lb As String = e.DataRow("类型") \'If e.DataRow("产品编号").StartsWith(lb) = False \'如果单据编号前缀不符 \'Dim max As String \'Dim idx As Integer \'max = e.DataTable.SQLCompute("Max(产品编号)","类型 = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 \'If max > "" Then \'如果存在最大编号 \'idx = CInt(max.Substring(4,4)) + 1 \'获得最大编号的后三位顺序号,并加1 \'Else \'idx = 1 \'否则顺序号等于1 \'End If \'e.DataRow("产品编号") = lb & Format(idx,"0000") \'End If \'End If \'End Select 上面的代码编号不会自动叠加 下面的代码正常 Select e.DataCol.Name Case "类型" If e.DataRow.IsNull("类型") Then e.DataRow("产品编号") = Nothing Else Dim lb As String = e.DataRow("类型") If e.DataRow("产品编号").StartsWith(lb) = False \'如果单据编号前缀不符 Dim max As String Dim idx As Integer max = e.DataTable.Compute("Max(产品编号)","类型 = \'" & lb & "\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该类别的最大编号 If max > "" Then \'如果存在最大编号 idx = CInt(max.Substring(4,4)) + 1 \'获得最大编号的后三位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("产品编号") = lb & Format(idx,"0000") End If End If End Select [此贴子已经被作者于2014-9-22 12:23:24编辑过]
|
-- 作者:有点甜 -- 发布时间:2014/9/22 14:07:00 -- SQLCompute 不会失效。
你必须把表数据保存,再使用SQLCompute才有效,不然一直会获取的是数据库的最大值。 |