Foxtable(狐表)用户栏目专家坐堂 → 输入校验


  共有2228人关注过本帖树形打印复制链接

主题:输入校验

帅哥哟,离线,有人找我吗?
newsun2k
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1445 积分:10678 威望:0 精华:0 注册:2014/8/13 16:19:00
输入校验  发帖心情 Post By:2014/10/31 10:07:00 [只看该作者]

我定义一个类,并加入以下代码,校验一行是否全为空值
Public Function checkNullRow(table1 As DataTable, r1 As DataRow) As Boolean
checkNullRow = True
    For Each c1 As DataCol In Table1.dataCols
        If r1.IsNull(c1.Name) Then
        Else
            checkNullRow = False
            Return True
        End If
    Next
checkNullRow = True
End Function

然后,在表的beforesavedatarow的事件中,加入
Dim dr As DataRow = e.DataRow
Dim cI As new checkInput

If cI.checkNullRow(e.DataTable,e.DataRow) Then   '空行
    dr.Delete
    Return
End If

但是,并没有想我设想的工作。
如果我加入两个新行,一行中有数据,一行无数据,保存时,两行均被删除。何解?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/31 10:11:00 [只看该作者]

Public Function checkNullRow(table1 As DataTable, r1 As DataRow) As Boolean
    For Each c1 As DataCol In Table1.dataCols
        If r1.IsNull(c1.Name) Then
            Return True
        End If
    Next
    Return False
End Function

 回到顶部
帅哥哟,离线,有人找我吗?
newsun2k
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1445 积分:10678 威望:0 精华:0 注册:2014/8/13 16:19:00
  发帖心情 Post By:2014/10/31 10:51:00 [只看该作者]

明白了,谢谢。
另外,如果我连续在主表中增加多行,正常输入情况下,每一行在子表应该对应增加一行。
1、利用syscmd.project.save保存时,先保存主表?还是子表?这个顺序可否设置?
2、在beforesavedatarow事件中,对每个主表中保存的当前行,如何校验对应子表中是否已经增加了一行?



 回到顶部