Foxtable(狐表)用户栏目专家坐堂 → 为什么获取选中的行,用GetCheckRows和遍历行判断r.checked的结果不一样?


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

主题:为什么获取选中的行,用GetCheckRows和遍历行判断r.checked的结果不一样?

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


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
为什么获取选中的行,用GetCheckRows和遍历行判断r.checked的结果不一样?  发帖心情 Post By:2017/8/17 18:10:00 [只看该作者]

获取选中行,必须用
我有个表,启动了允许多选,获取选中的行,要用
for each r as row in tables("表A").GetCheckedRows
 
next
 
假如我使用下面这种:
for each r as row in tables("表A")..rows
if r.checked then

end if
next
试过偶尔获得第一行,也可能会获得所有行,也或者会多获得表中没有选中的某一行,反正很诡异
 
这是为什么呢?是不是跟表的行必须倒叙遍历删除的原理有关?或者是个bug?
[此贴子已经被作者于2017/8/17 18:13:32编辑过]

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


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

呃....我怎么测试也没问题.....不明白你问题所在。

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


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
回复:(有点甜)呃....我怎么测试也没问题.....不明白...  发帖心情 Post By:2017/8/17 21:14:00 [只看该作者]

那真是奇怪了,我有2个项目,这个代码都存在不稳定性,改成getCheckrows就全部没问题。我自己注意下就好了


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


加好友 发短信
等级:二尾狐 帖子:388 积分:5098 威望:0 精华:0 注册:2013/11/2 0:01:00
回复:(有点甜)呃....我怎么测试也没问题.....不明白...  发帖心情 Post By:2017/8/17 21:17:00 [只看该作者]

其实我完整代码是新建了一个全局变量list (of string),把符合条件的行的id存着

 

Public RowList as list (of string)

 

for each r as row in tables("表A")..rows
if r.checked then
Rowlist.add(r("第一列"))
end if
next
 
然后在别的窗口,再遍历提取这个list
 
for each s as string in RowList
     output.show(s)
next
 
然后就发现我的RowList里多了几个我没有选中的行,比较诡异
[此贴子已经被作者于2017/8/17 21:17:46编辑过]

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


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

以下是引用chen3728060在2017/8/17 21:17:00的发言:

 

然后就发现我的RowList里多了几个我没有选中的行,比较诡异
[此贴子已经被作者于2017/8/17 21:17:46编辑过]

 

你的RowList是不是没有清空?你一直add的话肯定有问题。你应该是不小心add了值,又去掉勾选了。

 

 


 回到顶部