1、少一天的问题你可以自己解决的,在代码中加1就行:
Select Case e.col.Name
Case "开始日期","结束日期"
Dim dr As Row = e.Row
If dr.IsNull("开始日期") = False AndAlso dr.IsNull("结束日期") = False Then
Dim tp As TimeSpan = dr("结束日期") - dr("开始日期")
dr("生产周期") = tp.TotalDays + 1
End If
End Select
Select Case e.col.name
Case "开始日期","生产周期"
Dim dr As Row = e.Row
If dr.IsNull("开始日期") = False AndAlso dr.IsNull("生产周期") = False Then
dr("结束日期") = dr("开始日期").AddDays(dr("生产周期") - 1)
End If
End Select
Select Case e.col.name
Case "结束日期","生产周期"
Dim dr As Row = e.Row
If dr.IsNull("结束日期") = False AndAlso dr.IsNull("生产周期") = False Then
dr("开始日期") = dr("结束日期").AddDays(-dr("生产周期") + 1)
End If
End Select
2、其他问题,我觉得你想得太多,设计程序考虑周全是应该的,但像你这样考虑,就没有啥意义的了,人有思维的,偶尔输错,发现生产周期等于负数,就会发现并纠正的;没有必要为了几乎不会发生且容易识别的错误,而多写很多代码。