Foxtable(狐表)用户栏目专家坐堂 → [求助]如何设置显示滚动抽签分组?


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

主题:[求助]如何设置显示滚动抽签分组?

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
[求助]如何设置显示滚动抽签分组?  发帖心情 Post By:2023/4/25 9:27:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:截图00.jpg
图片点击可在新窗口打开查看
专家好,想制作一个考官抽签分组系统,有一个基础表,包括序号,主考官,A市,B市……G市等七个市的考官,每个面试室七个人,在基础表中,如果某个市的考官选为主考官,则该市的考官名单中有一个空格,保证每个面试室7人,且七个市的考官只有1人。目标是:在抽签系统中,点击“开始”,在上边的抽取主考官,抽取考官一……。抽取考官六下边的文本框中显示人员滚动,按下“停”按钮后,生成下表的人员抽取名单,需注意的是:如果某市有主考官,要想保证每个面试室7人,且七个市的考官只有1人的情况下,其他市的考官补充到生成表中的考官一到考官六中。关键是如果让人员在分别在主考官,考官一……考官六的文本框中滚动,有一种动态感。代码如何写,请专家指导。谢谢,如下图:

图片点击可在新窗口打开查看此主题相关图片如下:截图01.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2023/4/25 9:30:00 [只看该作者]

另外,基础表有多少组,在抽签系统中就有多少面试室号

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/25 9:44:00 [只看该作者]

可以利用窗口计时事件+随机函数,动态给文本框赋值

计时器事件
dim t as table = tables("表A")
e.form.controls("textbox1").text = t.rows(Rand.Next(0,t.rows.count))("考官1")
e.form.controls("textbox2").text = t.rows(Rand.Next(0,t.rows.count))("考官2")
Application.DoEvents()

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2023/4/25 10:37:00 [只看该作者]

有点蓝,如果有空格,不让它滚动显示出来,可以吗,只显示有名字的

[此贴子已经被作者于2023/4/25 10:41:15编辑过]

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/25 10:41:00 [只看该作者]

dim dt as datatable = datatables("表A")
dim drs as list(of string) = dt.getvalues("考官1","考官1 is not null")
e.form.controls("textbox1").text = drs(Rand.Next(0,drs.count))
drs  = dt.getvalues("考官2","考官2 is not null")
e.form.controls("textbox2").text = drs(Rand.Next(0,drs.count))

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2023/4/25 10:43:00 [只看该作者]

谢谢


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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
请教随机抽取号的问题  发帖心情 Post By:2023/4/26 8:24:00 [只看该作者]

有点蓝老师好,抽取面试考官号遇到了问题,问题是:通过下述代码先生成主考官的面试室号,这此主考官分别是从不同市的考官中选出来,选出来后,每个市的列会出现空单元格,当抽取主考官面试室号后,再抽取A市、B市……的考官面试室号,在抽取A市、B市……的考官面试室号时,需排除主考官的面试室号,然后在剩余的A市、B市……的考官中抽取面试室号,保证每个考官只能选一个面试室号。下述代码如何更改,先举例主考官的抽取代码和A市考官抽取代码。谢谢
附件:1.表
图片点击可在新窗口打开查看此主题相关图片如下:截图02.jpg
图片点击可在新窗口打开查看
2.生成主考官代码(这个没有问题)
Dim dt As Table = Tables("窗口1_table1")
Dim cnt As Integer = dt.Rows.Count
Dim ids(cnt -1) As Integer
For i As Integer = 0 To cnt -1
    ids(i) = i
Next
For i As Integer = 0 To cnt \ 2 '洗牌次数
    Dim id1 As Integer = rand.Next(0,cnt)
    Dim id2 As Integer = rand.Next(0,cnt)
    Dim vid As Integer = ids(id1)
    ids(id1) = ids(id2)
    ids(id2) = vid
Next
dt.StopRedraw()
For i As Integer = 0 To Tables("窗口1_table1").Rows.count -1
    Tables("窗口1_table1").Rows(i)("主考官_面试室号")=ids(i)+1
Next
dt.ResumeRedraw()
3.生成A市考官代码
Dim dt1 As Table = Tables("窗口1_table1")
Dim cnt1 As Integer = dt1.Rows.Count
Dim ids1(cnt1 -1) As Integer
For ii As Integer = 0 To cnt1 -1
    ids1(ii) = ii
Next
For ii As Integer = 0 To cnt1 \ 2 '洗牌次数
    Dim id3 As Integer = rand.Next(0,cnt1)
    Dim id4 As Integer = rand.Next(0,cnt1)
    Dim vid As Integer = ids(id3)
    ids1(id3) = ids1(id4)
    ids1(id3) = vid
Next
dt.StopRedraw()
For i As Integer = 0 To Tables("窗口1_table1").Rows.count -1
If  Tables("窗口1_table1").Rows(i)("A市考官_姓名")= Nothing Then
 Tables("窗口1_table1").Rows(i)("A市考官_面试室号")=Tables("窗口1_table1").Rows(i)("主考官_面试室号")
Else
    Tables("窗口1_table1").Rows(i)("A市考官_面试室号")=ids1(i)+1
End If
Next
dt.ResumeRedraw()


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


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

参考5楼方式,改为使用select方法:http://www.foxtable.com/webhelp/topics/0400.htm,添加条件,只获取没有用过的面试室进行分配

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2023/4/26 9:12:00 [只看该作者]

有点蓝老师。如何排除主考官已用过的面试室号,谢谢

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/4/26 9:23:00 [只看该作者]

Dim drs As List(Of DataRow)
drs = DataTables("表A").Select("
面试室号 not in('" & DataTables("表B").GetComboListString("面试室号").replace("|","','") & "')")

 回到顶部
总数 38 1 2 3 4 下一页