以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]工龄代码?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=131069)

--  作者:老鼠
--  发布时间:2019/2/15 15:31:00
--  [求助]工龄代码?
要求:没有离退日期的以当前计算机系统时间为依据计算工龄。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:有点甜
--  发布时间:2019/2/15 15:34:00
--  

比如

 

Select Case e.DataCol.Name
        Case "离退日期"
        If e.DataRow.IsNull("离退日期") Then
            Dim y,m,d As Integer
            Dim dt1 As Date = e.DataRow("入职日期")
            Dim dt2 As Date = Date.Today
            DateYMD(dt1,dt2,y,m,d)
            e.DataRow("工龄") = format(y, "00") & "年" & format(m, "00") & "月"
        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("工龄") = format(y, "00") & "年" & format(m, "00") & "月"
        End If
End Select


--  作者:有点甜
--  发布时间:2019/2/15 15:35:00
--  

需要重新计算的时候,重置列

 

DataTables("基础信息").DataCols("离退日期").RaiseDataColChanged()


--  作者:老鼠
--  发布时间:2019/2/15 15:53:00
--  
首先感谢老师的指导,如果我还要加入一个入职日期为空时,工龄为空。又应当如何修改代码呢?
--  作者:有点甜
--  发布时间:2019/2/15 15:55:00
--  
Select Case e.DataCol.Name
    Case "离退日期","入职日期"
        If e.DataRow.IsNull("入职日期") Then
            e.DataRow("工龄") = Nothing
           
        Else
            If e.DataRow.IsNull("离退日期") Then
                Dim y,m,d As Integer
                Dim dt1 As Date = e.DataRow("入职日期")
                Dim dt2 As Date = Date.Today
                DateYMD(dt1,dt2,y,m,d)
                e.DataRow("工龄") = format(y, "00") & "年" & format(m, "00") & "月"
            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("工龄") = format(y, "00") & "年" & format(m, "00") & "月"
            End If
        End If
End Select