Foxtable(狐表)用户栏目专家坐堂 → [求助]如何实现计算工龄


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

主题:[求助]如何实现计算工龄

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


加好友 发短信
等级:婴狐 帖子:7 积分:129 威望:0 精华:0 注册:2012/7/18 9:39:00
[求助]如何实现计算工龄  发帖心情 Post By:2016/2/2 16:46:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统.zip




如何实现以下功能:

1、当“离职时间”栏为空时,“员工类型”栏自动显示“在岗”;当“离职时间”栏不为空时,“员工类型”栏为自动显示为“离职”。
2、当“离职时间”栏为空时,“工龄”栏应显示为2.2年;当“离职时间”栏不为空时,“工龄”栏则为“离职时间”-“入职时间”=?.?年

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/2 16:56:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统.table


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


加好友 发短信
等级:婴狐 帖子:7 积分:129 威望:0 精华:0 注册:2012/7/18 9:39:00
  发帖心情 Post By:2016/2/2 19:26:00 [只看该作者]

显示文件版本过高,无法打开啊!

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/2 19:26:00 [只看该作者]

你升级到最新版即可打开。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/2 19:27:00 [只看该作者]

datacolchanged事件代码

 

If e .DataCol . Name = "身份证号码" Then
    If e .DataRow . IsNull( "身份证号码" ) Then
        e .DataRow ( "出生日期" ) = Nothing
        e .DataRow ( "性别") = Nothing
    Else
        e .DataRow ( "出生日期" ) = ReadBirthday ( e. DataRow ("身份证号码" ))
        e .DataRow ( "性别") = ReadSex (e .DataRow ( "身份证号码" ))
    End If
End If

Select Case e.DataCol.name
    Case "入职时间","离职时间"
        If e.DataRow.IsNull("入职时间") Then
            e.DataRow("工龄") = Nothing
        Else
            If e.DataRow.IsNull("离职时间") Then
                Dim tp As TimeSpan = Date.today - CDate(e.DataRow("入职时间"))
                e.DataRow("工龄") = Math.Round(tp.TotalDays / 365.2422,2)
                e.DataRow("员工类型") = "在职"
            Else
                Dim tp As TimeSpan = cdate(e.DataRow("离职时间")) - CDate(e.DataRow("入职时间"))
                e.DataRow("工龄") = Math.Round(tp.TotalDays / 365.2422,2)
                e.DataRow("员工类型") = "离职"
            End If
        End If
End Select

If e.DataCol.Name = "离职时间" Then
    If e.DataRow.isnull("离职时间") = False Then
        e.DataRow("员工类型") = "离职"
    Else
        e.DataRow("员工类型") = "在职"
    End If
End If


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


加好友 发短信
等级:婴狐 帖子:7 积分:129 威望:0 精华:0 注册:2012/7/18 9:39:00
  发帖心情 Post By:2016/2/2 19:33:00 [只看该作者]

已经可以打开了!太感谢了!我冒昧问一下,我想把DataColChanged这个写入事件中,可不知道要加在哪里!主要想实现如果到了明年,需要重新计算年龄、工龄列,但是除非你重新输入出生日期,否则上面的代码是不会重算年龄的。触发DataColChanged,效果就像你重新输入了出生日期和入职时间一样
[此贴子已经被作者于2016/2/2 19:34:00编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/2/2 19:35:00 [只看该作者]

做一个按钮,重置列即可

 

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

 

 

 


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


加好友 发短信
等级:婴狐 帖子:7 积分:129 威望:0 精华:0 注册:2012/7/18 9:39:00
  发帖心情 Post By:2016/2/2 19:48:00 [只看该作者]

谢谢!图片点击可在新窗口打开查看

 回到顶部