Foxtable(狐表)用户栏目专家坐堂 → 数据提取问题


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

主题:数据提取问题

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
数据随机抽取问题  发帖心情 Post By:2022/9/6 18:17:00 [只看该作者]

老师,想问一下,有一张数据表表A,比如共20行,另一张随机数据表表B,我想在窗口点击“开始”按钮,则在表B中,自动增加一行,随机抽取表A一行不重复数据;等3秒后,又自动增加一行,随机抽取表A一行不重复数据;等3秒后,又自动增加一行,随机抽取表A一行不重复数据;......,自动全部抽取表A20行数据后,按“停止”按钮则停止。请将老师如何实现
[此贴子已经被作者于2022/9/6 18:18:26编辑过]

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


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

使用窗口计时器:http://www.foxtable.com/webhelp/topics/1301.htm

在表A增加一个辅助列,抽取了的行就勾选上。随机抽取参考:http://www.foxtable.com/webhelp/topics/2963.htm

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
代码  发帖心情 Post By:2022/9/7 18:09:00 [只看该作者]

老师,比如选中一行“已选中”逻辑列,“抽签号码”自动记录为“001”;再选中任意一行“已选中”逻辑列,“抽签号码”则自动记录为“002”;再选中任意一行“已选中”逻辑列,“抽签号码”则自动记录为“003”.请教老师这个代码怎么写
[此贴子已经被作者于2022/9/7 18:10:03编辑过]

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


加好友 发短信
等级:超级版主 帖子:106178 积分:540007 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/8 8:28:00 [只看该作者]

抽取的方法看32楼,上生成编号的方法参考:http://www.foxtable.com/webhelp/topics/2403.htm

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2022/9/8 18:54:00 [只看该作者]

已解决
[此贴子已经被作者于2022/9/8 18:58:30编辑过]

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
鼠标定位问题  发帖心情 Post By:2022/9/28 15:17:00 [只看该作者]

老师,下面代码是窗口按钮代码,实现点一下随机抽取一个数,我想实现点一下按钮,选择一个数,鼠标自动定位到刚刚选择的这一行,请教老师如何修改代码

Dim drs As List(Of DataRow) = DataTables("表A").Select("[已选中] = false")
Dim cnt As Integer = drs.Count
Dim ids1 As New List(Of Integer) '用于存储洗牌前的位置
Dim ids2 As New List(Of Integer) '用于存储洗牌后的位置
If 1 > cnt Then
    MessageBox.Show("随机抽签完毕,请您指示,结束请挂机", "提示!")
    Return
End If

For i As Integer = 0 To cnt - 1 '准备初始的牌
    ids1.add(i)
Next
For i As Integer = 0 To cnt - 1 '开始洗牌
    Dim idx As Integer = ids1(rand.Next(0, ids1.count))
    ids2.Add(idx)
    ids1.Remove(idx)
Next

For i As Integer = 0 To 1 - 1 '100为要抽取的行数
    drs(ids2(i))("已选中") = True
Next

DataTables("表A").Save
[此贴子已经被作者于2022/9/28 16:33:06编辑过]

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


加好友 发短信
等级:超级版主 帖子:106178 积分:540007 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/28 15:29:00 [只看该作者]

Dim drs As List(Of DataRow) = DataTables("表A").Select("[已选中] = false")
Dim idx As Integer = rand.Next(0, ids1.count)
dim k as integer = Tables("表A").findrow(drs(idx ))
Tables("表A").position = k

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2022/9/28 16:36:00 [只看该作者]

点一下按钮,自动选择一行“已选中”,鼠标自动定位到刚刚选择的这一行,上面的代码还是不行,麻烦老师再看看

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


加好友 发短信
等级:超级版主 帖子:106178 积分:540007 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/9/28 16:48:00 [只看该作者]

Dim drs As List(Of DataRow) = DataTables("表A").Select("[已选中] = false")
Dim idx As Integer = rand.Next(0, ids1.count)
drs(idx )("已选中") = true
dim k as integer = Tables("表A").findrow(drs(idx ))
Tables("表A").position = k

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


加好友 发短信
等级:三尾狐 帖子:618 积分:4560 威望:0 精华:0 注册:2016/4/15 22:24:00
  发帖心情 Post By:2022/9/28 17:46:00 [只看该作者]

老师,这样没有上面的效果了,一次出现很多个,不是一个
Dim drs As List(Of DataRow) = DataTables("表A").Select("[已选中] = false")
Dim cnt As Integer = drs.Count
Dim ids1 As New List(Of Integer) '用于存储洗牌前的位置
Dim ids2 As New List(Of Integer) '用于存储洗牌后的位置
If 1 > cnt Then
    MessageBox.Show("随机抽签完毕,请您指示,结束请挂机", "提示!")
    Return
End If

For i As Integer = 0 To cnt - 1 '准备初始的牌
    ids1.add(i)
Next
For i As Integer = 0 To cnt - 1 '开始洗牌 
    'Dim drs As List(Of DataRow) = DataTables("表A").Select("[已选中] = false")
    Dim idx As Integer = rand.Next(0, ids1.count)
    drs(idx)("已选中") = True
    Dim k As Integer = Tables("表A").findrow(drs(idx))
    Tables("表A").position = k 
    ' Dim idx As Integer = ids1(rand.Next(0, ids1.count))
    ids2.Add(idx)
    ids1.Remove(idx)
Next

For i As Integer = 0 To 1 - 1 '100为要抽取的行数
    drs(ids2(i))("已选中") = True 
Next
DataTables("表A").Save

 回到顶部
总数 112 上一页 1 2 3 4 5 6 7 8 9 10 下一页 ..12