Foxtable(狐表)用户栏目专家坐堂 → 请教:二个日期列的表达式相减


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

主题:请教:二个日期列的表达式相减

美女呀,离线,留言给我吧!
yangming
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
请教:二个日期列的表达式相减  发帖心情 Post By:2009/5/6 11:34:00 [只看该作者]

"合同开始日期"和"合同结束日期"都是日期型,合同期是表达式列,要求:用"合同结束日期-合同开始日期"+"年"
请教如何写表达式公式

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


加好友 发短信
等级:童狐 帖子:252 积分:1355 威望:0 精华:0 注册:2009/4/5 13:06:00
  发帖心情 Post By:2009/5/6 11:59:00 [只看该作者]

用表达式麻烦呀,还是改用代码计算吧。
可以参考一下DateDiff函数。

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


加好友 发短信
等级:童狐 帖子:252 积分:1355 威望:0 精华:0 注册:2009/4/5 13:06:00
  发帖心情 Post By:2009/5/6 12:09:00 [只看该作者]

如果用代码可以这样,DataColChanged事件。

Dim dr As DataRow = e.DataRow
if e.DataCol.Name = "合同开始日期" OrElse e.DataCol.Name = "合同结束日期" Then
    if dr.IsNull("合同开始日期") = false And dr.IsNull("合同结束日期") = false Then
        dr("合同期") = DateDiff("yyyy",dr("合同开始日期"),dr("合同结束日期")) & "年"
    End If
End If

 回到顶部
美女呀,离线,留言给我吧!
yangming
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/6 12:21:00 [只看该作者]

我试试,先谢谢八婺老师,用代码相减的好做,就是如何绑到合同期我不会,呵
[此贴子已经被作者于2009-5-6 12:22:01编辑过]

 回到顶部
美女呀,离线,留言给我吧!
yangming
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/6 12:29:00 [只看该作者]

三楼的代码有个问题,不能光是计算年份,比如:20081231减去20070101,结果是一年,其实应该是二年,我要的是年月一起参与的计算,因为一般的合同期都是按入司时间减一天的

 回到顶部
美女呀,离线,留言给我吧!
yangming
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By:2009/5/6 12:46:00 [只看该作者]

我改成这样就达到我的要求了,呵呵
Dim dr As DataRow = e.DataRow
if e.DataCol.Name = "合同开始时间" OrElse e.DataCol.Name = "合同结束时间" Then
    if dr.IsNull("合同开始时间") = false And dr.IsNull("合同结束时间") = false Then
        dr("合同期") = CInt(DateDiff("y",dr("合同开始时间"),dr("合同结束时间"))/365) & "年"
    End If
End If
[此贴子已经被作者于2009-5-6 12:46:35编辑过]

 回到顶部