Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共6 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

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

1楼
yangming 发表于:2009/5/6 11:34:00
"合同开始日期"和"合同结束日期"都是日期型,合同期是表达式列,要求:用"合同结束日期-合同开始日期"+"年"
请教如何写表达式公式
2楼
八婺 发表于:2009/5/6 11:59:00
用表达式麻烦呀,还是改用代码计算吧。
可以参考一下DateDiff函数。
3楼
八婺 发表于: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
4楼
yangming 发表于:2009/5/6 12:21:00
我试试,先谢谢八婺老师,用代码相减的好做,就是如何绑到合同期我不会,呵
[此贴子已经被作者于2009-5-6 12:22:01编辑过]
5楼
yangming 发表于:2009/5/6 12:29:00
三楼的代码有个问题,不能光是计算年份,比如:20081231减去20070101,结果是一年,其实应该是二年,我要的是年月一起参与的计算,因为一般的合同期都是按入司时间减一天的
6楼
yangming 发表于: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编辑过]
共6 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03711 s, 2 queries.