以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]规则错误的动态提示 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34809) |
||||
-- 作者:chnfo -- 发布时间:2013/6/16 15:07:00 -- [求助]规则错误的动态提示 本意是这样的。 表C中有一列Code,将来要构造树用,所以,它满足用“."分隔开的数据规则,例如1, 1.1 ,1.1.2, 1.2等等。 但难免有输入错误的时候,例如在没有1.5这个编号的时候,直接输了1.5.8,就提示用户的编号规则有错误,要重新输入。 这里面有两种情况 A,父节点的编号调整,如原来编号为1.5的改成了1.8,那么原来的1.5.1 ,1.5.N就需要提示规则有错误 B,子节点的编号调整或增加,如在没有1.9节点的情况下,输入了1.9.1或者将原来的某个节点改成了1.9.N,则需要提示用户规则有错误。 调试了一番,有点问题。
请各位狐神指教。
|
||||
-- 作者:lsy -- 发布时间:2013/6/16 22:43:00 --
[此贴子已经被作者于2013-6-17 7:09:57编辑过]
|
||||
-- 作者:chnfo -- 发布时间:2013/6/20 17:46:00 -- 很感谢。不过我自己解决它了。 Select Case e.Col.Name Case "Code" For Each r As Row In e.Table.Rows Dim Values() As String = r("Code").split(".") If Values.Length = 1 Then r.DataRow.SetError("Code","") Else Dim cscode As String = "" \'个人认为问题出在这里,因为下一次遍历的时候,它会已经存在值。开始遍历的时候给它赋空值,就可以了。 For i As Integer = 0 To Values.Length - 2 cscode = CSCode & "." & Values(i) Dim cs As Integer = e.Table.FindRow(" Code = \'" & CSCode.trim(".") & "\'",e.Table.Position + 1 ,True ) If cs < 0 Then r.DataRow.SetError("Code", "上级节点编号规则有误,请检查重新输入!") Exit For Else r.DataRow.SetError("Code","") End If Next End If Next End Select |