曹版后来给写了段代码是可以了
Dim dtb As New DataTableBuilder("成绩表")
dtb.AddDef("姓名", Gettype(String), 32)
Dim prds As List(of String()) = DataTables("表A").GetUniqueValues("","分类","阶段","课程")
For Each prd As String() In prds
If DataTables("表A").DataCols("分数").IsNumeric
dtb.AddDef(prd(0) & "_" & prd(1) & "_" & prd(2), Gettype(Integer))
Else
dtb.AddDef(prd(0) & "_" & prd(1) & "_" & prd(2), Gettype(String), 32)
End If
Next
dtb.Build()
For Each Name As String In DataTables("表A").GetComboListString("姓名").Split("|")
Dim r As Row = Tables("成绩表").AddNew
r("姓名") = name
Dim Arys As List(Of String()) = DataTables("表A").GetUniqueValues("姓名 = '" & name & "'","分类","阶段","课程","分数")
For Each Ary As String() In Arys
r(Ary(0) & "_" & Ary(1) & "_" & Ary(2)) = Ary(3)
Next
Next
MainTable= Tables("成绩表")
上面的代码DataTables("表A").GetUniqueValues("","分类","阶段","课程")
红色部分没办法动态生成,只能硬编码吗?