Foxtable(狐表)用户栏目专家坐堂 → [求助]狐爸请进,关于行集合的问题,困扰多时。


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

主题:[求助]狐爸请进,关于行集合的问题,困扰多时。

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


加好友 发短信
等级:婴狐 帖子:43 积分:647 威望:0 精华:0 注册:2011/6/11 21:03:00
[求助]狐爸请进,关于行集合的问题,困扰多时。  发帖心情 Post By:2012/3/16 13:35:00 [只看该作者]

这样定义行集合为什么不行?

 

 

Dim rs As  List(Of row)=Tables("订单").rows

 

提示类型转换错误

 

另外,Table("订单")表的ShowCheckBox的逻辑属性,设为True,将在行号列显示复选框,只有GetCheckedRows方法,可以获得一个Row类型的集合,该集合包括所有复选框已经选中的行。但是我想删除未选中的行,如果处理?我有下面代码会出现有的未选中行没有删除。

 

 

For Each r As Row In Tables("订单").Rows
  If
r.Checked = false Then
    r.delete

  End If
Next

 

 

[此贴子已经被作者于2012-3-16 13:36:40编辑过]

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


加好友 发短信
等级:婴狐 帖子:43 积分:647 威望:0 精华:0 注册:2011/6/11 21:03:00
  发帖心情 Post By:2012/3/16 16:30:00 [只看该作者]

求助,再顶一下!

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2012/3/16 16:35:00 [只看该作者]

不要鑽牛角尖,集合一般都有條件,Tables("订单").rows不能指定條件!
Dim drs As  List(Of Datarow)=DaTables("订单").Select("A >''")

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33945 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2012/3/17 0:43:00 [只看该作者]

我觉得楼主的似乎也有道理,因为现在只能操作选中的行,而不能操作没有选中的行。

表属性中并没有显示复选框的选项,因此如果想要出现复选框必定是用ShowCheckBox方法,执行此方法后选择的复选框的值也不能保存到下一次,所以每次处理时只对需要处理的行来选择再操作就不会出现困惑了。

 

当然如果有这样的方法来处理未选中的行就更好了。


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


加好友 发短信
等级:婴狐 帖子:43 积分:647 威望:0 精华:0 注册:2011/6/11 21:03:00
  发帖心情 Post By:2012/3/17 8:35:00 [只看该作者]

C版真是一语中的啊!我现在只能采取迂回的办法,把复选框反向操作一下,再用 GetCheckedRows。

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


加好友 发短信
等级:等待验证 帖子:386 积分:2482 威望:0 精华:1 注册:2011/5/10 11:13:00
  发帖心情 Post By:2012/3/17 10:19:00 [只看该作者]

不知是否存在[RowID/CheckBox]列,如有好辦,或增加GetCheckedRows()的反集合Not GetCheckedRows()

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2012/3/17 16:35:00 [只看该作者]

1、

Dim rs As List(Of Row)= New List(Of Row)(Tables("表A").Rows())

不过Tables.Rows返回的类型是RowCollection 也是一种集合 可以直接for each进行遍历,没有必要转成List

 

2、删除集合一般都反过来删

For i As Integer = Tables("表A").Rows.Count - 1 To 0 Step -1
    With Tables("表A").Rows(i)
        If .Checked = False Then
            .delete
        End If
    End With
Next


 回到顶部