以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  日期计算 (工期)报错  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=185750)

--  作者:yangze531
--  发布时间:2023/3/14 17:05:00
--  日期计算 (工期)报错
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:表,日期计算,DataColChanged
详细错误信息:
调用的目标发生了异常。
从类型“Double”到类型“Date”的转换无效。

有报错提示框,但是内容是粘贴文本复制出来。
图片点击可在新窗口打开查看
DataColChanged

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
        End If
End Select

--  作者:有点蓝
--  发布时间:2023/3/14 17:09:00
--  
参考:http://www.foxtable.com/webhelp/topics/1517.htm

Dim tp As TimeSpan =cdate( dr("结束时间")) - cdate(dr("开始时间"))

--  作者:yangze531
--  发布时间:2023/3/14 17:42:00
--  
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:表,日期计算,DataColChanged
详细错误信息:
调用的目标发生了异常。
列“2023-03-18”不属于表 日期计算。

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 = CDate( dr("结束时间")) - CDate(dr("开始时间"))
            Dim tp As TimeSpan = CDate(CurrentTable.Current (dr("结束时间"))) - CDate(CurrentTable.Current (dr("开始时间")))
           dr("工期") = tp.TotalDays
        End If
End Select

--  作者:有点蓝
--  发布时间:2023/3/14 20:13:00
--  
照抄2楼代码,看不懂就不要乱用
--  作者:yangze531
--  发布时间:2023/3/15 10:37:00
--  
没报错,但是也没计算工期

图片点击可在新窗口打开查看



--  作者:有点蓝
--  发布时间:2023/3/15 10:52:00
--  
没有赋值啊,dr("工期") = tp.TotalDays呢,躲迷藏去了?
--  作者:yangze531
--  发布时间:2023/3/15 11:03:00
--  
图片点击可在新窗口打开查看