Select Case e.DataCol.Name Case "读数时间","读数间隔时间"
Dim dr As DataRow
Dim drs As List(of DataRow)
Dim tp1 As New TimeSpan(24,00,00)
dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc")
If dr Is Nothing Then
e.DataRow("读数间隔时间") = e.DataRow("读数间隔时间")
dr = e.DataRow
End If
drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey"), "[_SortKey]")
For i As Integer = 1 To drs.Count - 1
drs(i)("读数间隔时间") = drs(i)("读数时间") - drs(i-1)("读数时间") + tp1
Next
End Select
此主题相关图片如下:qq图片20140426020150.jpg
如图,我想根据第一个日期的读数时间和第二日期的读数时间求读数间隔小时 我上面代码是直接用上一行读数时间减去下一行读数时间。但可悲的是,代码调用错误,我想知道错在哪里了?还有就是该怎么改正过来,并且我还想知道怎么用
第一个日期的读数时间和第二日期的读数时间求读数间隔小时 ? 求好心人指点我需要设置上面类型的列属性。DataColChanged代码又要怎么写才能达到我要的效果。
不要怪我求知欲太强,哎
他生之时我道未成,我道成之时他已无踪。恨不逢时。
Select Case e.DataCol.Name
Case "读数时间","读数间隔时间"
Dim dr As DataRow
Dim drs As List(of DataRow)
Dim tp2 As New TimeSpan
dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc")
If dr Is Nothing Then
e.DataRow("读数间隔时间") = e.DataRow("读数间隔时间")
dr = e.DataRow
End If
drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey"), "[_SortKey]")
For i As Integer = 1 To drs.Count - 1
drs(i)("读数间隔时间") = drs(i)("读数时间") - drs(i-1)("读数时间")
tp2 = drs(i)("读数间隔时间")
dr("读数间隔时间") = tp2.TotalSeconds()
Next
End Select
用以上代码加上把读数时间改为双精度小数拓展类型为时段列后,可以得出读数间隔时间,但会弹出调用的目标发生了异常。 求大神解决小小弟的问题啊,到底要什么样的DataColChanged代码才能实现我想要的这个功能。
[此贴子已经被作者于2014-4-26 23:29:12编辑过]