以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于工期时间逻辑计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=137795) |
-- 作者:ideaplayer -- 发布时间:2019/7/16 0:18:00 -- 关于工期时间逻辑计算 如附件图片所示, “签约日期”,“工期”,“实际发货日期”这三列手动填写,请问其他几项如何实现自动计算填写。其中发货状态仅有两个状态:已发货和未发货。 代码怎么写? 代码放在哪个位置? |
-- 作者:有点蓝 -- 发布时间:2019/7/16 8:47:00 -- 到表格datacolchanged事件处理,参考: |
-- 作者:ideaplayer -- 发布时间:2019/7/16 17:17:00 -- 还请帮看看有什么问题,前半部分可以执行,后半部分没有执行的效果。什么原因,谢谢。 Dim dc As DataCol = e.DataCol Dim dr As DataRow = e.DataRow If dc.Name = "预付款_日期" OrElse dc.Name = "工期" Then If dr.IsNull("预付款_日期") OrElse dr.IsNull("工期") Then dr("合同发货日期") = Nothing Else dr("合同发货日期") = dr("预付款_日期").AddDays(dr("工期")) End If End If Select Case e.DataCol.Name Case "预付款_日期","实际发货日期" Dim dr2 As DataRow = e.DataRow If dr2.IsNull("预付款_日期") OrElse dr2.IsNull("实际发货日期") Then dr2("实际交期") = Nothing Else Dim tp As TimeSpan = dr2("实际发货日期") - dr2("预付款_日期") dr2("实际交期") = tp.TotalDays End If End Select
|
-- 作者:有点蓝 -- 发布时间:2019/7/16 17:26:00 -- 看看:http://www.foxtable.com/webhelp/topics/1517.htm Dim tp As TimeSpan = cdate(dr2("实际发货日期") )- cdate(dr2("预付款_日期") )
|
-- 作者:ideaplayer -- 发布时间:2019/7/16 17:33:00 -- 另外想增加一个条件判断。 如果时间列“实际发货时日期”为空,则“发货状态”为未发货,反之为已发货。 帮助文件以及看了,但是还是整不出来。 还请帮忙别写上面的时间计算及发货状态标记的全部语句,万分感谢。 |
-- 作者:有点蓝 -- 发布时间:2019/7/16 20:12:00 -- Select Case e.DataCol.Name Case "预付款_日期","实际发货日期" Dim dr2 As DataRow = e.DataRow If dr2.IsNull("预付款_日期") OrElse dr2.IsNull("实际发货日期") Then dr2("实际交期") = Nothing Else Dim tp As TimeSpan = cdate(dr2("实际发货日期") )- cdate(dr2("预付款_日期") ) dr2("实际交期") = tp.TotalDays End If End Select Select Case e.DataCol.Name Case "实际发货日期" If e.DataRow.IsNull("实际发货日期") Then e.DataRow("发货状态") = "未发货" Else e.DataRow("发货状态") = "已发货" End If End Select |
-- 作者:ideaplayer -- 发布时间:2019/7/17 0:56:00 -- 太感谢了 |