Foxtable(狐表)用户栏目专家坐堂 → [求助]怎样随机按"班"抽取学生名单


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

主题:[求助]怎样随机按"班"抽取学生名单

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/9/2 17:11:00 [显示全部帖子]

他爸操刀,我等学习。

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/9/2 20:23:00 [显示全部帖子]

不会啊,看走眼了吧?

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/9/2 20:32:00 [显示全部帖子]

以下是引用sjjlcj在2008-9-2 20:20:00的发言:
试了一下抽取出来的都是9班?


你要切换到“抽样”表中查看。


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/9/2 21:19:00 [显示全部帖子]

以下是引用狐狸爸爸在2008-9-2 17:09:00的发言:
 下载信息  [文件大小:35.6 KB  下载次数:14]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5_0902.zip


有错误,好象应该这样。

Dim bjs As List(Of String) = DataTables("表A").GetUniqueValues("","班级")
Dim cnt As Integer = e.Form.Controls("Number").Value
DataTables("表A").StopRedraw()
DataTables("表A").DataCols.Add("随机数",GetType(Integer))
For Each dr As Datarow In DataTables("表A").DataRows
    dr("随机数") = Rand.Next()
Next
Tables("抽样").DataTable.DataRows.Clear()
Tables("表A").Sort = "随机数"
For Each bj As String In bjs
    Tables("表A").Filter = "班级 = '" & bj & "'"
    For i As integer = 0 To Math.Min(cnt,Tables("表A").Rows.Count)-1
        dim r As Row = Tables("抽样").AddNew()
        r("班级")  = Tables("表A").Rows(i)("班级")
        r("姓名")  = Tables("表A").Rows(i)("姓名")
    Next
Next
DataTables("表A").DataCols.Delete("随机数")
DataTables("表A").ResumeRedraw()


[此贴子已经被作者于2008-9-2 21:24:41编辑过]

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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2008/9/3 14:42:00 [显示全部帖子]

以下是引用程兴刚在2008-9-3 7:18:00的发言:
czy版主的附件好像抽取出来每组多一人!

这样呢?

Dim bjs As List(Of String) = DataTables("表A").GetUniqueValues("","班级")
Dim cnt As Integer = e.Form.Controls("Number").Value-1
'DataTables("表A").StopRedraw()
DataTables("表A").DataCols.Add("随机数",GetType(Integer))
For Each dr As Datarow In DataTables("表A").DataRows
    dr("随机数") = Rand.Next()
Next
Tables("抽样").DataTable.DataRows.Clear()
Tables("表A").Sort = "随机数"
For Each bj As String In bjs
    Tables("表A").Filter = "班级 = '" & bj & "'"
    For i As integer = 0 To Math.Min(cnt,Tables("表A").Rows.Count)
        dim r As Row = Tables("抽样").AddNew()
        r("班级")  = Tables("表A").Rows(i)("班级")
        r("姓名")  = Tables("表A").Rows(i)("姓名")
    Next
Next
DataTables("表A").DataCols.Delete("随机数")
DataTables("表A").ResumeRedraw()
Maintable = Tables("抽样")


程版,你的代码看起来没有问题,但实际是错误的,因为你减1减的不是地方。
可以这么测试一下,假如1班只有8人,而抽取的学生是10名,这时代码应该会报错,删时列不能删除。


 回到顶部