以下是引用abcdzabcdz在2009-12-14 18:54:00的发言:
真神奇!!! 由于涉及到函数较多,关系较复杂,mr725能否在1楼加上注解,以方便学习.谢谢!
还是把C版的15楼的代码加两处注解(我也在学说的不一定好):
Dim s As Date = Date.Now()
DataTables("课时名单").DataRows.Clear()
Dim AValue() as String
Dim n As Integer = Tables("课程表").rows.count
Dim n1 As Integer
for Each dc as Datacol in DataTables("课程表").Datacols
n1 = n1 +1
dim f As New Filler
f.SourceTable = DataTables("课程表") '指定数据来源
f.SourceCols = dc.name '指定数据来源列
f.DataTable = DataTables("课时名单") '指定数据接收表
f.DataCols = "姓名" '指定数据接收列
f.Distinct = false
f.Fill() '填充数据
'上面这是填充数据:将课程表的每一列填充到课时名单表的姓名列,
Values = dc.name.split("_")
For i As integer = (n*n1)-n to Tables("课时名单").rows.count -1
Tables("课时名单").Rows(i)("星期") = Values(0)
Tables("课时名单").Rows(i)("计分") = 1
Next
'上面这一段,是在课时名单表中,对每填充的课时表一列的对应的 星期 计分 两列进行计算并赋值.... 注意这个(n*n1)-n 始终是从本次填充的第一行(也就是当前课时名单表现在的倒数第Tables("课时名单").rows.count行开始循环...
Next
Messagebox.Show("处理完毕! 耗时: " & (Date.Now -s).TotalSeconds)