以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]截至日期的计算方法 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=16620) |
-- 作者:蓝野明 -- 发布时间:2012/2/19 17:43:00 -- [求助]截至日期的计算方法 发放日期 截至日期 有效天数
2012-02-19 求截止日期表达式 3
或者其他方法
拜谢!!! |
-- 作者:狐哥 -- 发布时间:2012/2/19 17:46:00 -- 示例三 再例如下面的表格,完成日期等于起始日期加上执行天数: 我们可以在该表的DataColChanged事件中加入下面的代码: If e.DataCol.Name = "起始日期" OrElse e.DataCol.Name = "执行天数" ThenIf e.DataRow.IsNull("起始日期") OrElse e.DataRow.IsNull("执行天数") Then e.DataRow("完成日期") = Nothing Else e.DataRow("完成日期") = e.DataRow("起始日期").AddDays(e.DataRow("执行天数")) End If End If 上面的代码多处使用了e.DataRow和e.DataCol,为了让代码看上去简洁一点,我们可以用变量来代替它们: Dim dc As DataCol = e.DataColDim 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 采用何种编码风格,完全看个人的偏好。 示例三 上面的例子是根据开始日期和执行天数计算完成日期,如果反过来,要根据开始日期和完成日期计算执行天数,可以将DataColChanged事件代码设置为: Select Case e.DataCol.NameCase "开始日期","完成日期" 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 |
-- 作者:蓝野明 -- 发布时间:2012/2/20 8:55:00 -- 再请问这些代码需要添加到哪里?如何操作的呢?
|
-- 作者:狐狸爸爸 -- 发布时间:2012/2/20 9:02:00 -- 只能用代码,设置在DataColChanged事件,看看这段帮助的示例三:
http://www.foxtable.com/help/topics/1452.htm
搞不定,就将文件传上来,我帮你设置一下。 [此贴子已经被作者于2012-2-20 9:12:37编辑过]
|