Foxtable(狐表)用户栏目专家坐堂 → [求助]为什么合同期限值不对?


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

主题:[求助]为什么合同期限值不对?

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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
[求助]为什么合同期限值不对?  发帖心情 Post By:2018/3/25 1:57:00 [只看该作者]

这是代码:
If e.DataCol.Name = "终止日期" Then '如果更改的是终止日期列内容
    If e.DataRow.IsNull("终止日期") Then '判断终止日期列是否为空
        e.DataRow("合同期限") = Nothing  '如果为空,则清除合同期限
    Else
        '否则计算起始日期与终止日期间的间隔时间
        Dim y,m,d As Integer
        Dim dt1 As Date = e.DataRow("起始日期")
        Dim dt2 As Date = e.DataRow("终止日期")
        DateYMD(dt1,dt2,y,m,d)
        e.DataRow("合同期限") = y
    End If
End If
如果修改才能得到正确的值?如:2018年03月01日~2021年02月28日,应该是得到3;可是它计算得到的是2。终止日期是:2021年03月01日时却可以计算得到3.

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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/3/25 15:02:00 [只看该作者]

以下是引用老鼠在2018/3/25 1:57:00的发言:
这是代码:
If e.DataCol.Name = "终止日期" Then '如果更改的是终止日期列内容
    If e.DataRow.IsNull("终止日期") Then '判断终止日期列是否为空
        e.DataRow("合同期限") = Nothing  '如果为空,则清除合同期限
    Else
        '否则计算起始日期与终止日期间的间隔时间
        Dim y,m,d As Integer
        Dim dt1 As Date = e.DataRow("起始日期")
        Dim dt2 As Date = e.DataRow("终止日期")
        DateYMD(dt1,dt2,y,m,d)
        e.DataRow("合同期限") = y
    End If
End If
如果修改才能得到正确的值?如:2018年03月01日~2021年02月28日,应该是得到3;可是它计算得到的是2。终止日期是:2021年03月01日时却可以计算得到3.
 
其实我想要的结果就是:周年的计算(2017年01月01日~2017年12月31日)=1周年;而不应该是:(2017年01月01日~2018年01月01日)=1周年

[此贴子已经被作者于2018/3/25 15:02:20编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1135 积分:11099 威望:0 精华:2 注册:2008/9/1 10:45:00
  发帖心情 Post By:2018/3/25 15:35:00 [只看该作者]

终止日期 = 终止日期+1天

然后再计算


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/25 15:54:00 [只看该作者]

If e.DataCol.Name = "终止日期" Then '如果更改的是终止日期列内容
    If e.DataRow.IsNull("终止日期") Then '判断终止日期列是否为空
        e.DataRow("合同期限") = Nothing  '如果为空,则清除合同期限
    Else
        '否则计算起始日期与终止日期间的间隔时间
        Dim y,m,d As Integer
        Dim dt1 As Date = e.DataRow("起始日期")
        Dim dt2 As Date = e.DataRow("终止日期").AddDays(1)
        DateYMD(dt1,dt2,y,m,d)
        e.DataRow("合同期限") = y
    End If
End If

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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/3/25 16:29:00 [只看该作者]

首先感谢!其次出现这个错误提示窗口内容:.NET Framework 版本:2.0.50727.5477
Foxtable 版本:2018.3.1.1
错误所在事件:表,聘用明细, DataColChanged
详细错误信息:
调用的目标发生了异常。
未找到类型“Date”的公共成员“Addadys”。


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


加好友 发短信
等级:小狐 帖子:366 积分:3658 威望:0 精华:0 注册:2008/11/2 21:50:00
  发帖心情 Post By:2018/3/25 16:34:00 [只看该作者]

问题已经解决,感谢!但我却不明白也找不到AddDays()这个代码的意义????

[此贴子已经被作者于2018/3/25 16:35:10编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/25 22:15:00 [只看该作者]

以下是引用老鼠在2018/3/25 16:34:00的发言:

问题已经解决,感谢!但我却不明白也找不到AddDays()这个代码的意义????

[此贴子已经被作者于2018/3/25 16:35:10编辑过]

 

3楼已经说明了问题,addDays的意义,请参考

 

http://www.foxtable.com/webhelp/scr/0260.htm

 

http://www.foxtable.com/webhelp/scr/1337.htm

 

 


 回到顶部