Foxtable(狐表)用户栏目专家坐堂 → [求助]在职时间和在职月数计算[已解决]


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

主题:[求助]在职时间和在职月数计算[已解决]

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
[求助]在职时间和在职月数计算[已解决]  发帖心情 Post By:2013/5/28 10:49:00 [显示全部帖子]

[求助]在职时间和在职月数计算[已解决]
现在用以下代码可以正确计算在职员工的,在职在职时间和在职月数。大家帮忙看看以下满足需求,需要怎么来修改代码,谢谢!
现在需要改成:
1.如果员工状态为在职,【今天日期】减去【入职日期】
2.如果员工状态为离职,【离职日期】减去【入职日期】

Select Case e. DataCol .name
    Case "入职日期"
        If e .DataRow . IsNull( "入职日期" ) Then
             e .DataRow ( "在职时间" ) = Nothing
             e .DataRow ( "在职月数" ) = Nothing
        Else
            Dim y,m,d As Integer
            Dim dt1 As Date  = e .DataRow ( "入职日期" )
            Dim dt2 As Date = Date .Today ()
            DateYMD(e.DataRow("入职日期"),Date.Today,y,m,d) 
            e.DataRow("在职时间") = y & "年" & m & "月" & d & "日"
            e .DataRow ( "在职月数" ) = ( dt2 . Year - dt1 . Year ) * 12 + dt2 . Month - dt1 . Month
        End If
End Select


[此贴子已经被作者于2013-5-28 12:41:58编辑过]

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/5/28 12:41:00 [显示全部帖子]

Select Case e. DataCol .name
    Case "入职日期"
    Select Case e. DataRow("员工状态")
    Case "在职"
        If e .DataRow . IsNull( "入职日期" ) Then
             e .DataRow ( "在职时间" ) = Nothing
             e .DataRow ( "在职月数" ) = Nothing
        Else
            Dim y,m,d As Integer
            Dim dt1 As Date  = e .DataRow ( "入职日期" )
            Dim dt2 As Date = Date .Today ()
            DateYMD(e.DataRow("入职日期"),Date.Today,y,m,d) 
            e.DataRow("在职时间") = y & "年" & m & "月" & d & "日"
            e .DataRow ( "在职月数" ) = ( dt2 . Year - dt1 . Year ) * 12 + dt2 . Month - dt1 . Month
        End If
   Case "离职"
    If e .DataRow . IsNull( "入职日期" ) Then
             e .DataRow ( "在职时间" ) = Nothing
             e .DataRow ( "在职月数" ) = Nothing
        Else
            Dim y,m,d As Integer
            Dim dt1 As Date = e .DataRow ( "入职日期" )
            Dim dt2 As Date = e .DataRow ( "离职日期" )
            DateYMD(e.DataRow("入职日期"),e.DataRow("离职日期"),y,m,d) 
            e.DataRow("在职时间") = y & "年" & m & "月" & d & "日"
            e .DataRow ( "在职月数" ) = ( dt2 . Year - dt1 . Year ) * 12 + dt2 . Month - dt1 . Month
        End If
End Select
End Select


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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/5/28 12:42:00 [显示全部帖子]

谢谢 Bin 帮忙,已解决!

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


加好友 发短信
等级:童狐 帖子:224 积分:2808 威望:0 精华:2 注册:2012/3/14 15:55:00
  发帖心情 Post By:2013/5/28 13:47:00 [显示全部帖子]

谢谢 don 精简代码。

 回到顶部