Foxtable(狐表)用户栏目专家坐堂 → 判断当前表的某一行是否空值


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

主题:判断当前表的某一行是否空值

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


加好友 发短信
等级:幼狐 帖子:196 积分:1357 威望:0 精华:0 注册:2015/3/25 16:42:00
判断当前表的某一行是否空值  发帖心情 Post By:2015/8/7 9:41:00 [只看该作者]

如果判断当前表的某一行的所有列都是空值

For i As Integer = 0 To CurrentTable.Rows.Count - 1
For Each a As Row In CurrentTable.Rows
For Each b As Col In CurrentTable.Cols
If CurrentTable.Cols.Contains("锁定") = True
If a(i).IsNull(b.Name) = false Then
a(i)("锁定") = True
end if
end if
next
next
next

请问上面代码哪里出错了?

或者有其他更便捷的方法?


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/7 9:53:00 [只看该作者]

If CurrentTable.Cols.Contains("锁定") = True
    For Each a As Row In CurrentTable.Rows
        Dim flag As Boolean = True
              
        For Each b As Col In CurrentTable.Cols
            If a.IsNull(b.Name) Then
                flag = False
                Exit For
            End If
           
        Next
        a("锁定") = flag
       
    Next
End If

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


加好友 发短信
等级:幼狐 帖子:196 积分:1357 威望:0 精华:0 注册:2015/3/25 16:42:00
  发帖心情 Post By:2015/8/7 11:15:00 [只看该作者]

我试了一下,还是不行,原来发现如果“锁定”行是逻辑列,那么逻辑列无论是false还是true,都不会是空值
所以我改了代码,这样就没问题了

If CurrentTable.Cols.Contains("锁定") = True Then
    For Each a As Row In CurrentTable.Rows
        If a("锁定") = False Then
            For Each b As Col In CurrentTable.Cols
                If b.Name <> "锁定"
                    If a.IsNull(b.Name) = False
                        a("锁定") = True
                    End If
                End If
            Next
        End If
    Next
End If

 回到顶部