Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共72 条记录, 每页显示 10 条, 页签: [1] [2][3][4][5][6][7][8]
[浏览完整版]

标题:关于排考室座位号的问题

1楼
jhxb8821 发表于:2022/1/19 16:15:00
这段代码是自定义考场数,比如总考生160人,分6个考场,这段代码实现001号-004号每个考场27人,005-006号每个考场26人,座位号从001一直排到160。我想实现座位号按每个考场单独排,比如001号考场27人座位号排号01-27,005号考场26人从01-26,请教老师代码如何修改

If Forms("高考排考室").Controls("NumericComboBox1").Value <= 0 Then
    MessageBox.Show("考场号不能小等于零值!","中止操作",MessageBoxButtons.OK,MessageBoxIcon.Exclamation)
Else
    Dim f As New Filler
    f.SourceTable = DataTables("高考排考室")
    f.SourceCols = "班级,姓名"
    f.DataTable = DataTables("高考排考室")
    f.DataCols = "班级,姓名"
    f.ExcludeExistValue = True
    f.Fill
    For i As Integer = 0 To CurrentTable.rows.count -1
        CurrentTable.Rows(i)("索引顺序") = Rand.Next(10000)
    Next
    CurrentTable.sort = "索引顺序"
    For b As Integer = 0 To CurrentTable.rows.count -1
        CurrentTable.Rows(b)("考场号") = Format(1 + b Mod e.Form.Controls("NumericComboBox1").Value,"100")
    Next
    CurrentTable.sort = "索引顺序,考场号 Asc"
    '================
    For b As Integer = 0 To CurrentTable.rows.count -1
        CurrentTable.Rows(b)("座位号") = Format(Rand.Next(1000) + b Mod e.Form.Controls("NumericComboBox1").Value,"000")
    Next
[此贴子已经被作者于2022/1/19 16:30:36编辑过]
2楼
有点蓝 发表于:2022/1/19 16:42:00
……
CurrentTable.sort = "索引顺序"
Dim k As Integer = 1
Dim z As Integer = 1
For b As Integer = 0 To CurrentTable.rows.count -1
    CurrentTable.Rows(b)("考场号") = Format(k,"100")
    CurrentTable.Rows(b)("座位号") = z
    z = z + 1
    If k<= 4
        If z > 27 Then
            z = 1
            k = k + 1
        End If
    Else
        If z > 26 Then
            z = 1
            k = k + 1
        End If
    End If
    
Next
[此贴子已经被作者于2022/1/19 16:43:25编辑过]
3楼
jhxb8821 发表于:2022/1/19 17:12:00
蓝老师,这个代码每个考场人数是动态的,不确定。若按照每个考场排30个座位,前5个考场排满,座位号按01-30排,剩余的放在最后一个考场,这个代码怎么修改,请指教
4楼
有点蓝 发表于:2022/1/19 17:22:00
For b As Integer = 0 To CurrentTable.rows.count -1
    CurrentTable.Rows(b)("考场号") = Format(k,"100")
    CurrentTable.Rows(b)("座位号") = z
    z = z + 1
        If z > 30 Then
            z = 1
            k = k + 1
        End If
Next
5楼
jhxb8821 发表于:2022/1/19 17:30:00
蓝老师,这个代码这样保留2位数,比如座位号1、2 变成01、02,麻烦蓝老师再看一下

[此贴子已经被作者于2022/1/19 17:37:56编辑过]
6楼
有点蓝 发表于:2022/1/19 17:38:00
参考"考场号"的format用法呀,自己都用上了还不会?
7楼
jhxb8821 发表于:2022/1/19 17:40:00

蓝老师,这段代码改在按钮上,帮我修改一下

Dim dr As DataRow = e.DataRow

Select Case e.DataCol.Name

    Case "县级代号","科类代号","类别代号","考生序号"

        dr("准考证号") = dr("县级代号")+dr("科类代号")+dr("类别代号")+dr("考生序号")

End Select

8楼
有点蓝 发表于:2022/1/20 8:31:00
dim r as row = tables("表A").current
if r isnot nothing then
r("准考证号") = r("县级代号")+r("科类代号")+r("类别代号")+r("考生序号")
end if
9楼
jhxb8821 发表于:2022/1/20 9:37:00
蓝老师,座位号保留2位数,比如座位号1、2 变成01、02,我搞了半天还是没有弄出来,麻烦蓝老师帮忙再看一下
10楼
有点蓝 发表于:2022/1/20 9:45:00
    CurrentTable.Rows(b)("考场号") = Format(k,"000")
    CurrentTable.Rows(b)("座位号") = Format(z,"00")
[此贴子已经被作者于2022/1/20 9:44:53编辑过]
共72 条记录, 每页显示 10 条, 页签: [1] [2][3][4][5][6][7][8]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03125 s, 2 queries.