Foxtable(狐表)用户栏目专家坐堂 → 奇怪


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

主题:奇怪

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


加好友 发短信
等级:七尾狐 帖子:1691 积分:16460 威望:0 精华:0 注册:2013/7/31 13:03:00
奇怪  发帖心情 Post By:2016/5/10 15:44:00 [只看该作者]

假设窗口中有表控件table1,希望判断表中是否存在空行:

Dim tbl As Table = e.Form.Controls("Table1").Table
Dim r As Row
For Each r In tbl.Rows
    If  r Is Nothing  Then
        MessageBox.Show("表中存在空行,不能保存!")
        Return
    End If
Next

为何明明存在空行也不报告呢?

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


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

Dim tbl As Table = e.Form.Controls("Table1").Table
Dim r As Row
For Each r In tbl.Rows
    Dim isnull As Boolean = True
    For Each c As Col In tbl.Cols
        If r.IsNull(c.name) = False Then
            isNull = False
        End If
    Next
    If isnull  Then
        MessageBox.Show("表中存在空行,不能保存!")
        Return
    End If   
Next


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


加好友 发短信
等级:七尾狐 帖子:1691 积分:16460 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2016/5/11 10:25:00 [只看该作者]

谢谢,又问:

Dim tbl As Table = e.Form.Controls("Table3").Table
For Each r As Row In tbl.Rows
    For Each c As Col In tbl.Cols
        If r.IsNull(c.name) = False Then
            r.Save
            Exit For
        End If
    Next
Next

上述代码是想实现在Table3中保存非空行,而空行不保存。怎么不听话呢?

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


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

Dim tbl As Table = e.Form.Controls("Table1").Table
Dim r As Row
For Each r In tbl.Rows
    Dim isnull As Boolean = True
    For Each c As Col In tbl.Cols
        If r.IsNull(c.name) = False Then
            isNull = False
        End If
    Next
    If isnull = false  Then
        r.Save
    End If   
Next


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


加好友 发短信
等级:七尾狐 帖子:1691 积分:16460 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2016/5/11 10:45:00 [只看该作者]

经测试还是保存空行了,何故?

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


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

 不,可,能,上传实例

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


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

 看看你项目有没有逻辑列

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


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

Dim tbl As Table = e.Form.Controls("Table1").Table
Dim r As Row
For Each r In tbl.Rows
    Dim isnull As Boolean = True
    For Each c As Col In tbl.Cols
        If c.IsBoolean Then
            If r(c.name) = True  Then
                isNull = False
            End If
        ElseIf r.IsNull(c.name) = False
            isNull = False
        End If
    Next
    If isnull = False  Then
        r.Save
    End If
Next

[此贴子已经被作者于2016/5/11 14:41:41编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1691 积分:16460 威望:0 精华:0 注册:2013/7/31 13:03:00
  发帖心情 Post By:2016/5/11 12:52:00 [只看该作者]

原因找到了,原来是逻辑列在捣乱。做一简单例子:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:不保存空行.foxdb


打开窗口1输入数据,留有空行,数据保存到测试表,空行也保存了。

 随后我按8楼改一下。

[此贴子已经被作者于2016/5/11 12:55:02编辑过]

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


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

Dim tbl As Table = e.Form.Controls("Table1").Table
Dim r As Row
For Each r In tbl.Rows
    Dim isnull As Boolean = True
    For Each c As Col In tbl.Cols
        If c.IsBoolean Then
            If r(c.name) = True  Then
                isNull = False
            End If
        ElseIf r.IsNull(c.name) = False
            isNull = False
        End If
    Next
    If isnull = False  Then
        r.Save
    End If
Next

 回到顶部
总数 11 1 2 下一页