Rss & SiteMap

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

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

标题:[求助]分班的问题

1楼
jjjeyes 发表于:2024/4/13 13:53:00
我有一个表格"测试"中A列为人员姓名,人数为p,如下图:

图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看
想要在B列将班级名称输入进去,班级名称放在集合lst里,每个班级的人数放在数组bs()里,数组里的所有数之和等于p。最终要得到以下的结果:

图片点击可在新窗口打开查看此主题相关图片如下:22.png
图片点击可在新窗口打开查看
请问这个循环怎么写

Dim Lst As New List(Of String) '设定一个班级名集合
Dim p As Integer = Lst.Count '设定班级总数量的变量
Dim n As Integer = Tables("测试").Rows.Count '总人数
Dim bs(p) As Integer'设定一个班级人数数组

For g As Integer = 0 To p - 1
    MessageBox.Show ( Lst(g) & "班人数:" & bs(g))
Next

For k As Integer = 0 To n - 1
    Dim r As Row = Tables("测试").Rows(k)
    r("B") = Lst(bs(g))
Next
2楼
有点蓝 发表于:2024/4/13 15:05:00
把集合和数组的具体值发上来看看

Dim Lst As New List(Of String) '设定一个班级名集合
Dim bs(p) As Integer'设定一个班级人数数组
3楼
jjjeyes 发表于:2024/4/13 15:18:00
Dim Lst As New List(Of String) '设定一个班级名集合
lst(0)的值是“班级1
lst(1)的值是“班级2
lst(2)的值是“班级3
lst(3)的值是“班级4

Dim bs(p) As Integer '设定一个班级人数数组
bs(0) = 8      是指班级1”有8人
bs(1) = 10    是指班级2”有10人
bs(2) = 7      是指班级3”有7人
bs(3) = 5      是指班级1”有5人

4楼
有点蓝 发表于:2024/4/13 15:52:00
Dim t As Table = Tables("测试")
t.StopRedraw
For k As Integer = 0 To bs.length - 1
    t.filter = "B is null"
    For i As Integer = 0 To bs(k) - 1
        t.rows(i)("B") = Lst(k)
    Next
Next
t.Filter = ""
t.ResumeRedraw
[此贴子已经被作者于2024/4/13 17:15:39编辑过]
5楼
jjjeyes 发表于:2024/4/13 16:17:00
看懂了,一句t.filter = "B is null"  好销魂
6楼
有点蓝 发表于:2024/4/13 16:37:00
很多时候编程逻辑就是头脑风暴。想到每次都只需把班级为空的行,取前面n行赋值....
7楼
jjjeyes 发表于:2024/4/13 16:57:00
还是不对,只能循环一次
8楼
有点蓝 发表于:2024/4/13 17:15:00
我测试没有问题,请上传实例说明


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

9楼
jjjeyes 发表于:2024/4/14 14:00:00
已经搞定,先前搞错了一个参数。班级人数数组bs(),里应该用n-1,我用的n
共9 条记录, 每页显示 10 条, 页签: [1]

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

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