以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 为什么获取选中的行,用GetCheckRows和遍历行判断r.checked的结果不一样? (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=105364) |
-- 作者:chen3728060 -- 发布时间:2017/8/17 18:10:00 -- 为什么获取选中的行,用GetCheckRows和遍历行判断r.checked的结果不一样? 获取选中行,必须用
我有个表,启动了允许多选,获取选中的行,要用
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编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/8/17 19:01:00 -- 呃....我怎么测试也没问题.....不明白你问题所在。 |
-- 作者:chen3728060 -- 发布时间:2017/8/17 21:14:00 -- 回复:(有点甜)呃....我怎么测试也没问题.....不明白... 那真是奇怪了,我有2个项目,这个代码都存在不稳定性,改成getCheckrows就全部没问题。我自己注意下就好了 |
-- 作者:chen3728060 -- 发布时间: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编辑过]
|
-- 作者:有点甜 -- 发布时间:2017/8/17 21:48:00 -- 以下是引用chen3728060在2017/8/17 21:17:00的发言:
然后就发现我的RowList里多了几个我没有选中的行,比较诡异
[此贴子已经被作者于2017/8/17 21:17:46编辑过]
你的RowList是不是没有清空?你一直add的话肯定有问题。你应该是不小心add了值,又去掉勾选了。
|