Foxtable(狐表)用户栏目专家坐堂 → 高效抽取


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

主题:高效抽取

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


加好友 发短信
等级:幼狐 帖子:179 积分:1932 威望:0 精华:0 注册:2020/2/14 18:49:00
高效抽取  发帖心情 Post By:2020/11/20 15:35:00 [只看该作者]

Dimcnt AsInteger = DataTables("表A").DataRows.Count
Dim
ids1 AsNew List(ofInteger) '用于存储洗牌前的位置
Dim
ids2 AsNew List(ofInteger) '用于存储洗牌后的位置
For
i AsInteger = 0To cnt -1'准备初始的牌
ids1.add(i)

Next
For
i AsInteger = 0To cnt -1 '开始洗牌
Dim idxAs Integer =ids1(rand.Next(0,ids1.count))
ids2.Add(idx)
ids1.Remove(idx)

Next
Tables
("表A").StopRedraw()
DataTables
("表A").ReplaceFor("选择",False)
For
i AsInteger = 0To 5 -1 '100为要抽取的行数
DataTables("表A").DataRows(ids2(i))("选择") = True
Next
Tables
("表A").Filter = "[选择] = True"
Tables
("表A").ResumeRedraw()

 

 

这个命令只能显示"[选择] = True"的行, 我想"[选择] = True"的行下面也同时显示"[选择] = false" , 也就是说打乱后,把所有行都显示出来,如何实现?


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110568 积分:562730 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/20 16:07:00 [只看该作者]

增加一个排序列,随机赋值即可

for each r as row in Tables("表A").DataRows
r("排序列") = rand.Next(0,1000000)
nect

Tables("表A").sort = "排序列"

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


加好友 发短信
等级:幼狐 帖子:179 积分:1932 威望:0 精华:0 注册:2020/2/14 18:49:00
好像哪个代码需要改  发帖心情 Post By:2020/11/20 16:17:00 [只看该作者]

差在哪一步?
图片点击可在新窗口打开查看此主题相关图片如下:9.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110568 积分:562730 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/11/20 16:45:00 [只看该作者]

for each r as row in Tables("表A").Rows

 回到顶部