For Each dr As DataRow In DataTables("C").DataRows Dim N,N2,h,h2,m,m2,s,s2 As Integer Dim gs As Date Dim mr As DataRow = dr Dim drs As List(of DataRow) If dr.IsNull("累计工时") Then dr = DataTables("C").Find("[序号] < " & mr("序号") & " And [员工] = '" & mr("员工") & "'And [日期] = '" & mr("日期") & "'", "[序号] Desc") '找出上一行 If dr Is Nothing Then '如果没有找到上一行,说明本行就是第一行 N = mr("工时") mr("累计工时") = (new Date(1,1,1,0,0,0)).addSeconds(N) dr = mr End If drs = DataTables("C").Select("[序号] >= " & dr("序号") & " And [员工] = '" & dr("员工") & "'And [日期] = '" & mr("日期") & "'", "[序号]") For j As Integer = 1 To drs.Count - 1 '重算余下行的余额 drs(j)("累计工时")= Cdate(drs(j-1)("累计工时")).AddSeconds(drs(j)("工时")) Next End If Next
|