Foxtable(狐表)用户栏目专家坐堂 → [求助]多值字段随机抽取问题


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

主题:[求助]多值字段随机抽取问题

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


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
[求助]多值字段随机抽取问题  发帖心情 Post By:2019/6/9 16:12:00 [只看该作者]

哪位老师帮忙看看,有个排班表,每天随机抽取2名司机值班,填充到出车记录单表中的“值班司机1”和值班司机2”中,代码应该怎么写啊?

排班表

日期

值班司机

星期一

赵大,钱二,孙三,李四

星期二

周五,吴六,郑七,王八

星期三

冯大,陈二,褚三,卫四

星期四

蒋五,沈六,韩七,杨八

星期五

朱大,秦二,尤三,许四

星期六

何五,吕六,施七,张八

星期日

孔大,曹二,严三,华四






出车记录单

日期

值班司机1

值班里程1

值班司机2

值班里程2

星期一

 

 

 

 

星期二

 

 

 

 

星期三

 

 

 

 

星期四

 

 

 

 

星期五

 

 

 

 

星期六

 

 

 

 

星期日

 

 

 

 

 


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


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/6/9 16:16:00 [只看该作者]

是在当天所有司机中随机抽取吗

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


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

参考代码

 

Dim w = "星期一"
Dim s = "赵大,钱二,孙三,李四"
Dim ary = s.split(",")
Dim n = 2
Dim ls As new List(Of String)
Do While ls.count < n
    Dim i = Rand.Next(0, ary.length)
    output.show(i)
    If ls.Contains(ary(i)) = False Then
        ls.add(ary(i))
        msgbox(ary(i))
    End If
Loop

[此贴子已经被作者于2019/6/10 15:42:01编辑过]

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


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2019/6/9 16:54:00 [只看该作者]

每天的司机是固定的,就是每天从4个司机中随机抽取2个司机出车,

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


加好友 发短信
等级:狐神 帖子:4640 积分:33850 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2019/6/9 17:14:00 [只看该作者]

For Each dr As DataRow In DataTables("排班表").DataRows
    Dim lst As new List(of String)
    Dim lst1 As new List(of String)
    Dim lst2 As new List(of String)
    lst.AddRange(dr("值班司机").split(","))
    For Each ls As String In lst
        Dim s As String = lst(rand.Next(lst.Count))
        If lst1.Count < 2 AndAlso lst1.Contains(s) = False
            lst1.Add(s)
        End If
    Next
    For Each ls As String In lst
        If lst1.Contains(ls) = False
            lst2.Add(ls)
        End If
    Next
    Output.Show(String.join(",",lst1.ToArray) & "|" & String.join(",",lst2.ToArray))
Next

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


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

 

参考3楼代码,不会做,请上传具体foxtable项目。

 

 


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


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2019/6/10 8:18:00 [只看该作者]

甜老师,请指导指导,我现在想实现的是出车单中输入日期后,能自动从值班表中随机选择两人添加到出车单中,代码应该怎么写?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:多值字段随机抽取.table


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


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

Dim weeks() As String = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}

If e.DataCol.name = "出车日期" Then '如果更改的日期列
    If e.DataRow.IsNull("出车日期") Then '日期是否为空
        e.DataRow("出车组别") = Nothing '如果为空,则清除星期
        e.DataRow("出车司机_1_姓名") = Nothing
        e.DataRow("出车司机_2_姓名") = Nothing
    Else '否则计算星期几
        e.DataRow("出车组别") = weeks(e.newvalue.dayofweek)
        Dim w = weeks(e.newvalue.dayofweek)
        Dim fdr As DataRow = DataTables("值班表").find("组别='" & w & "'")
        Dim s = fdr("值班司机")
        Dim ary = s.split(",")
        Dim n = 2
        If ary.length >= n Then
            Dim ls As new List(Of String)
            Do While ls.count < n
                Dim i = Rand.Next(0, ary.length)
                If ls.Contains(s) = False Then
                    ls.add(ary(i))
                End If
            Loop
            e.DataRow("出车司机_1_姓名") = ls(0)
            e.DataRow("出车司机_2_姓名") = ls(1)
        End If
    End If
End If


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


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2019/6/10 8:40:00 [只看该作者]

谢谢老师指导!

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


加好友 发短信
等级:小狐 帖子:380 积分:3515 威望:0 精华:0 注册:2017/9/5 8:28:00
  发帖心情 Post By:2019/6/10 14:56:00 [只看该作者]

甜老师,你提供的那段代码有时候随机抽取的两个司机是同一个人,如何修改才能做到每天随机抽到的两个司机不为同一个人

 回到顶部
总数 12 1 2 下一页