Foxtable(狐表)用户栏目专家坐堂 → [求助]截至日期的计算方法


  共有8871人关注过本帖树形打印复制链接

主题:[求助]截至日期的计算方法

帅哥哟,离线,有人找我吗?
蓝野明
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:4 积分:91 威望:0 精华:0 注册:2012/2/19 10:44:00
[求助]截至日期的计算方法  发帖心情 Post By:2012/2/19 17:43:00 [只看该作者]

发放日期                截至日期                       有效天数

 

2012-02-19        求截止日期表达式                     3

 

 

或者其他方法

 

拜谢!!!


 回到顶部
帅哥哟,离线,有人找我吗?
狐哥
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:719 积分:5181 威望:0 精华:1 注册:2008/9/24 10:41:00
  发帖心情 Post By:2012/2/19 17:46:00 [只看该作者]

示例三

再例如下面的表格,完成日期等于起始日期加上执行天数:

我们可以在该表的DataColChanged事件中加入下面的代码:

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

上面的代码多处使用了e.DataRow和e.DataCol,为了让代码看上去简洁一点,我们可以用变量来代替它们:

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

采用何种编码风格,完全看个人的偏好。

示例三

上面的例子是根据开始日期和执行天数计算完成日期,如果反过来,要根据开始日期和完成日期计算执行天数,可以将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


 回到顶部
帅哥哟,离线,有人找我吗?
蓝野明
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:4 积分:91 威望:0 精华:0 注册:2012/2/19 10:44:00
  发帖心情 Post By:2012/2/20 8:55:00 [只看该作者]

再请问这些代码需要添加到哪里?如何操作的呢?

 


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/2/20 9:02:00 [只看该作者]

只能用代码,设置在DataColChanged事件,看看这段帮助的示例三:

 

http://www.foxtable.com/help/topics/1452.htm

 

 

搞不定,就将文件传上来,我帮你设置一下。

[此贴子已经被作者于2012-2-20 9:12:37编辑过]

 回到顶部