Dim dtb As New DataTableBuilder("统计")
dtb.AddDef("编号", Gettype(String), 16)
dtb.AddDef("打卡时间", Gettype(Date))
For Each r As Row In Tables("班次").Rows
dtb.AddDef(r("打卡时段"), Gettype(Date))
Next
dtb.Build()
MainTable= Tables("统计")
For Each r As Row In Tables("班次").Rows
DataTables("统计").DataCols(r("打卡时段")).SetDateTimeFormat(DateTimeFormatEnum.Time)
Next
Dim ds As List(Of String) = DataTables("考勤表").SQLGetValues("编号+','+format(打卡时间,'yyyy-MM-dd')")
For Each s As String In ds
Dim s1() As String = s.Split(",")
Dim r1 As Row = Tables("统计").AddNew
r1("编号") = s1(0)
Dim d As Date = cdate(s1(1))
r1("打卡时间") = s1(1)
For Each dr As DataRow In DataTables("考勤表").Select("编号='" & s1(0) & "' And 打卡时间 >= #" & d & "# And 打卡时间<#" & d.AddDays(1) & "#")
Dim d2 As Date = cdate(Format(dr("打卡时间"),"1900-01-01 HH:mm:ss"))
Dim dr2 As DataRow = DataTables("班次").Find("起始时间 <= #" & d2 & "# And 结束时间 >=#" & d2 & "#")
If dr2 IsNot Nothing Then
r1(dr2("打卡时段")) = d2
End If
Next
Next