以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  各位高手,如何计算教龄?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96733)

--  作者:xhydxs
--  发布时间:2017/2/27 12:52:00
--  各位高手,如何计算教龄?
如果参加工作时间(或连续工龄计算时间)月份大于退休时间月份,则教龄=退休时间年-参加工作时间年(或连续工龄计算时间年)-1;如果参加工作时间(或连续工龄计算时间)月份等于退休时间月份,则教龄=退休时间年-参加工作时间年(或连续工龄计算时间年)
--  作者:xhydxs
--  发布时间:2017/2/27 12:54:00
--  
Select Case e.DataCol.name
    Case "连续工龄计算时间"
        If e.DataRow.IsNull("参加工作时间") And e.DataRow.IsNull("连续工龄计算时间") Then
            e.DataRow("教龄") = Nothing
        Else
            e.DataRow("教龄") = e.DataRow("退休时间").year - e.DataRow("连续工龄计算时间").year + 1
        End If
       
    End  Select
    Select Case e.DataCol.name
        Case "参加工作时间"
            If e.DataRow.IsNull("参加工作时间") And e.DataRow.IsNull("连续工龄计算时间") Then
                e.DataRow("教龄") = Nothing
            Else
                \'输入参加工作时间后 如果连续工龄计算时间有数值 就不执行计算工龄
                If e.DataRow.Isnull("连续工龄计算时间") = True Then
                    e.DataRow("教龄") = e.DataRow("退休时间").year - e.DataRow("参加工作时间").year + 1
                   
                End If
            End If
        End  Select

--  作者:有点色
--  发布时间:2017/2/27 13:09:00
--  

参考代码

 

If e.DataCol.name = "出生日期" Then
    If e.newvalue <> Nothing Then
        Dim y As Integer = e.NewValue.year
        If format(e.newvalue, "MMdd") <= Format(Date.Today, "MMdd") Then
            e.DataRow("年龄") = Date.Today.Year - y
        Else
            e.DataRow("年龄") = Date.Today.Year - y -1
        End If
    Else
        e.DataRow("年龄") = Nothing
    End If
End If


--  作者:xhydxs
--  发布时间:2017/2/27 13:29:00
--  
图片点击可在新窗口打开查看