以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]如何实现计算工龄  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=80817)

--  作者:jalifox
--  发布时间:2016/2/2 16:46:00
--  [求助]如何实现计算工龄
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统.zip




如何实现以下功能:

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

--  作者:大红袍
--  发布时间:2016/2/2 16:56:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:统.table


--  作者:jalifox
--  发布时间:2016/2/2 19:26:00
--  
显示文件版本过高,无法打开啊!
--  作者:大红袍
--  发布时间:2016/2/2 19:26:00
--  
你升级到最新版即可打开。
--  作者:大红袍
--  发布时间: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
--  发布时间:2016/2/2 19:33:00
--  
已经可以打开了!太感谢了!我冒昧问一下,我想把DataColChanged这个写入事件中,可不知道要加在哪里!主要想实现如果到了明年,需要重新计算年龄、工龄列,但是除非你重新输入出生日期,否则上面的代码是不会重算年龄的。触发DataColChanged,效果就像你重新输入了出生日期和入职时间一样
[此贴子已经被作者于2016/2/2 19:34:00编辑过]

--  作者:大红袍
--  发布时间:2016/2/2 19:35:00
--  

做一个按钮,重置列即可

 

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

 

 

 


--  作者:jalifox
--  发布时间:2016/2/2 19:48:00
--  
谢谢!图片点击可在新窗口打开查看