以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  随机选取过程中按顺序展示动态效果  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178641)

--  作者:sysckj
--  发布时间:2022/7/13 12:50:00
--  随机选取过程中按顺序展示动态效果
现有一个人员信息表,需要从其中随机抽取百分比人数,百分比不为整数时数量+1,抽取过程中需要按抽取顺序动态展示被抽中的人员名字,人员信息表中我添加了一个状态字段,如果是抽中的人员需要标记为“已选取”,未抽中的更新为“未选取”。



--  作者:有点蓝
--  发布时间:2022/7/13 13:17:00
--  
http://www.foxtable.com/webhelp/topics/2963.htm
--  作者:sysckj
--  发布时间:2022/7/13 13:38:00
--  回复:(有点蓝)http://www.foxtable.com/webhelp/to...
现在就是用的这个,其他的不知道怎么处理
--  作者:有点蓝
--  发布时间:2022/7/13 13:43:00
--  
其它什么东西不知道怎么处理?
--  作者:sysckj
--  发布时间:2022/7/13 13:54:00
--  回复:(有点蓝)其它什么东西不知道怎么处理?
1、固定人数设置为百分比,不为整数+1

2、选取过程中更新状态字段

3、选取过程按选取顺序逐个展示名字

--  作者:有点蓝
--  发布时间:2022/7/13 13:59:00
--  
1、不就是简单的数学计算?加上表格有100行,取9%,就是100 * 0.09,取整参考:http://www.foxtable.com/webhelp/topics/0272.htm
2、参考帮助里的“选择”逻辑列的用法
3、弹出显示不就行了,比如

Dim cnt As Integer = DataTables("订单").DataRows.Count
Dim
 nds As Integer = 100 \'要抽取的记录数
Tables
("订单").StopRedraw()
DataTables
("订单").ReplaceFor("选择",False)
Do

    Dim idx As Integer = rand.Next(0,cnt)
    Dim dr As DataRow = DataTables("订单").DataRows(idx)
    If dr("选择") = False Then
        dr("选择") = True
msgbox(dr("姓名"))
        nds = nds - 1
    End 
If

Loop
 While nds > 0
Tables
("订单").Filter = "[选择] = True"
Tables
("订单").ResumeRedraw()