有表A,DataColChanged设置:
If e.DataCol.Name = "入院时间" Then
e.DataRow("天数") = (Date.Today - CDate(e.DataRow("入院时间"))).TotalDays
End If
If e.DataCol.Name = "入院时间" OrElse e.DataCol.Name = "天数" Then
If e.DataRow.IsNull("入院时间") OrElse e.DataRow.IsNull("天数") Then
e.DataRow("今日时间") = Nothing
Else
e.DataRow("今日时间") = e.DataRow("入院时间").AddDays(e.DataRow("天数"))
End If
End If
Select Case e.DataCol.Name
Case "入院时间","至今出院时间"
Dim dr As DataRow = e.DataRow
If dr.IsNull("入院时间") OrElse dr.IsNull("至今出院时间") Then
dr("至今住院天数") = Nothing
Else
Dim tp As TimeSpan = dr("至今出院时间") - dr("入院时间")
dr("至今住院天数") = tp.TotalDays+1
End If
End Select
[
至今出院时间]是表达式列,I表达式是:sNull([出院时间],[今日时间])
现在问题是,当输入[出院时间]值时,"至今住院天数"列不能变更,需重置[ 至今出院时间]才可,在帮助中参考“表达式列的特殊性”,对本例的代码还是不知如何写,