以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 无效字符 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=123190) |
-- 作者:luodan -- 发布时间:2018/8/9 16:42:00 -- 无效字符 .NET Framework 版本:2.0.50727.8789 Foxtable 版本:2018.7.9.1 错误所在事件:表,LJ,DataColChanged 详细错误信息: 调用的目标发生了异常。 表达式包含无效的字符串常量: \' And [_Identify] <> 11。 Select e.DataCol.Name Case "零件分类","零件名称" ,"零件类型" If e.DataRow.IsNull("零件分类") Or e.DataRow.IsNull("零件类型") Then e.DataRow("零件代码") = Nothing Else Dim X As String = GetPY(e.DataRow("零件类型"),True) Dim Y As String = GetPY(e.DataRow("零件分类"),True) Dim lb As String If X. Length = 2 And y.length = 3 Then lb=GetPY(e.DataRow("零件类型"),True) & "-" & GetPY(e.DataRow("零件分类"),True) Else If x.length<3 Or Y.length <4 Then lb=X.padright(2,"0") & "-" & Y.padright(3,"0") Else lb=x.SubString(0, 2) & "-" & Y.SubString(0, 3) End If End If 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(7,4)) + 1 \'获得最大零件代码的后四位顺序号,并加1 Else idx = 1 \'否则顺序号等于1 End If e.DataRow("零件代码") = lb & Format(idx,"0000") End If End If End Select |
-- 作者:有点甜 -- 发布时间:2018/8/9 17:33:00 --
max = e.DataTable.Compute("Max(零件代码)", "零件代码 like \'" & lb & "%\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该首写简码的最大零件代码 |
-- 作者:luodan -- 发布时间:2018/8/10 12:16:00 -- 谢谢,改过后,出现 .NET Framework 版本:2.0.50727.8789 Foxtable 版本:2018.7.9.1 错误所在事件:表,LJ,DataColChanged 详细错误信息: 调用的目标发生了异常。 索引和长度必须引用该字符串内的位置。 参数名: length |
-- 作者:luodan -- 发布时间:2018/8/10 14:03:00 -- 谢谢,解决问题 ,能帮我解释一下:max = e.DataTable.Compute("Max(零件代码)", "零件代码 like \'" & lb & "%\' And [_Identify] <> " & e.DataRow("_Identify")) \'取得该首写简码的最大零件代码,,,为什么要加“”"零件代码 like \'" |
-- 作者:有点甜 -- 发布时间:2018/8/10 14:18:00 -- 参考
http://www.foxtable.com/webhelp/scr/1284.htm
http://www.foxtable.com/webhelp/scr/2919.htm
|