以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于计算剩余天数 的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=147145)

--  作者:有点蓝
--  发布时间:2020/3/10 20:37:00
--  
Case "剩余天数","要求完成日期"

改为

Case "要求完成日期"

要接收数据的列不要放到case里,不然赋值后又会触发事件,事件判断有Case "剩余天数",又会继续执行,一直.....。在事件里给本表的任何列赋值都会再次触发datacolchanged事件,事件里再赋值又会再次触发....

--  作者:有点蓝
--  发布时间:2020/3/10 22:26:00
--  

Select Case e.DataCol.Name
    Case "要求完成日期"
        Dim dr As DataRow = e.DataRow
        If  dr.IsNull("要求完成日期") Then
            dr("剩余天数") = Nothing
        Elseif dr.isnull("确认人") 
            Dim tp As TimeSpan =  CDate(dr("要求完成日期") ) - Date.today
            dr("剩余天数") = tp.TotalDays
        End If
End Select

然后到项目事件afteropenproject事件
DataTables("某表").DataCols("要求完成日期").RaiseDataColChanged("确认人 is null")