Foxtable(狐表)用户栏目专家坐堂 → 不知道这个是不是有问题


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

主题:不知道这个是不是有问题

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


加好友 发短信
等级:童狐 帖子:241 积分:2618 威望:0 精华:0 注册:2013/4/2 22:30:00
不知道这个是不是有问题  发帖心情 Post By:2013/12/14 16:03:00 [只看该作者]

 做了一个功能:当用户新增了一行,但没有输入内容的话,保存时会检测,如果没有内容就删除后再保存
表A只有[结算方式]一列,通过窗体中表控件绑定到表A,在窗口的保存按钮中有代码:
Dim Tab As WinForm.TabControl = e.Form.Controls("TabControl1")
Dim r As Row

Select Case Tab.SelectedIndex
    Case 2
        For Each r In Tables("A").Rows
            If r.IsNull("结算方式") Then
                r.Delete
            End If
        Next
        Tables("A").Save
End Select
现在的问题是如果新增了一空行,那么点保存,这条空行会被删除后保存,但是。。。如果新增两空行,那么只有一个空行会被删除

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/12/14 16:07:00 [只看该作者]

遍历删除的话,注意这里的说明:

http://www.foxtable.com/help/topics/0599.htm


for i as integer = tables("A").rows.count-1 to 0  setp -1

     if tables("A").rows(i).IsNull("结算方式") Then

         tables("A").rows(i).Delete

     end if

next


另外你这个遍历的方式效率并不高,应该在BeforSaveDataRow事件中判断当前行是否为空,然后直接删除比较好


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


加好友 发短信
等级:童狐 帖子:241 积分:2618 威望:0 精华:0 注册:2013/4/2 22:30:00
  发帖心情 Post By:2013/12/14 16:17:00 [只看该作者]

 好用BeforSaveDataRow,谢

 回到顶部