Dim dtb As New DataTableBuilder("表B")
dtb.AddDef("姓名", Gettype(String), 32)
For Each v As String In DataTables("表A").GetValues("课程")
dtb.AddDef(v, Gettype(String),50)
Next
dtb.Build()
For Each v As String In DataTables("表A").GetValues("姓名")
Dim dr1 As DataRow = DataTables("表B").AddNew()
dr1("姓名") = v
For Each dr2 As DataRow In DataTables("表A").DataRows
If dr2("姓名") = v Then
dr1(dr2("课程")) = (dr1(dr2("课程")) & "," & dr2("分数")).trimstart(",")
End If
Next
Next
MainTable = Tables("表B")
Dim _flex = Tables("表B").grid
_flex.controls.clear
Dim t As Table = Tables("表b")
For Each r As Row In t.Rows
For Each c As Col In t.cols
Select Case c.name
Case "姓名"
Case Else
If r.IsNull(c.Name) = False Then
Dim Values() As String = r(c.Name).split(",")
Dim cell = _flex.GetCellRect(r.Index+1,c.Index+1)
Dim w As Integer = cell.width/Values.Length
For i As Integer = 0 To Values.Length -1
Dim btn1 As new windows.Forms.button
btn1.name = Values(i)
btn1.text = Values(i)
btn1.left = cell.x + i*w
btn1.top = cell.y
btn1.width = w
btn1.height = cell.height
_flex.controls.add(btn1)
Next
End If
End Select
Next
Next