'Select {任务单}.任务单编号,任务名称,{零部件}.零部件编号,{零部件}.零部件名称,加工内容,计划加工日期 From ({任务单} Inner JOIN {零部件} ON {零部件}.[任务单编号] = {任务单}.[任务单编号]) Inner JOIN {加工计划} ON {加工计划}.[零部件编号] = {零部件}.[零部件编号]
Dim dtb1 As New DataTableBuilder("统计表1")
dtb1.AddDef("任务单编号", Gettype(String), 32)
dtb1.AddDef("任务名称", Gettype(String), 32)
dtb1.AddDef("零部件编号", Gettype(String), 32)
dtb1.AddDef("零部件名称", Gettype(String), 32)
dtb1.Build()
Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("产品", Gettype(String), 32)
dtb.Build()
MainTable= Tables("统计")
DataTables("统计").fill("Select {任务单}.任务单编号,任务名称,{零部件}.零部件编号,{零部件}.零部件名称,加工内容,计划加工日期 From ({任务单} Inner JOIN {零部件} ON {零部件}.[任务单编号] = {任务单}.[任务单编号]) Inner JOIN {加工计划} ON {加工计划}.[零部件编号] = {零部件}.[零部件编号]","",True)
Dim f As New Filler
f.SourceTable = DataTables("统计") '指定数据来源
f.SourceCols = "任务单编号,任务名称,零部件编号,零部件名称" '指定数据来源列
f.DataTable = DataTables("统计表1") '指定数据接收表
f.DataCols = "任务单编号,任务名称,零部件编号,零部件名称" '指定数据来源列
f.Fill() '填充数据
Dim Vals As List(Of String) = DataTables("统计").GetUniqueValues("[计划加工日期] Is Not Null","计划加工日期")
For Each Val As String In Vals
Val = Val.Replace(" 0:00:00","")
If DataTables("统计表1").DataCols.Contains(Val) = False Then
DataTables("统计表1").DataCols.Add(Val, Gettype(String), 70)
End If
Next
Dim drs As List(of DataRow)
For Each nr As DataRow In DataTables("统计表1").DataRows
For Each val As String In Vals
Val = Val.Replace(" 0:00:00","")
drs = DataTables("统计").Select("任务单编号 = '" & nr("任务单编号") & "' And 任务名称 = '" & nr("任务名称") & "' And 零部件编号 = '" & nr("零部件编号") & "' And 零部件名称='" & nr("零部件名称") & "' And 计划加工日期 = #" & Val & "#")
nr(val) = ""
For Each dr As DataRow In drs
nr(val) = nr(val) & dr("加工内容") & " "
Next
nr(val) = nr(val).Trim(",")
Next
Next
命令窗口 测试下 有了这个再导出就可以了