Foxtable(狐表)用户栏目专家坐堂 → 关于工龄的问题


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

主题:关于工龄的问题

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


加好友 发短信
等级:幼狐 帖子:135 积分:946 威望:0 精华:0 注册:2012/8/26 23:34:00
关于工龄的问题  发帖心情 Post By:2013/1/24 11:32:00 [只看该作者]

请教一下高手,使用说明有教,但是不太适用,不是我想要的功能
     条件是这样的:
          工龄满1年不满10年,年休假5天
          工龄满10年不满20年,年休假10天
          工龄满20年,年休假15天
     但是,所有年休假都要次年才能享受,比如2012-5-1入职 至 2013-5-1 工龄满一年了,但是不享受年休假,要2014年到了才有5天年休假。
     我想要它根据系统的时间自动的运算,比如入职时间列输入2012-1-24,至今工龄列就自动运算为1年,年休假列为0天,如果到了次年2014年,年休假列会自动运算为1天。不知道怎么设置代码? 

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/24 12:03:00 [只看该作者]

 请上传一个你的数据表,再谈代码怎么设置。

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


加好友 发短信
等级:幼狐 帖子:135 积分:946 威望:0 精华:0 注册:2012/8/26 23:34:00
回复:(lin_hailun)?请上传一个你的数据表,再...  发帖心情 Post By:2013/1/24 12:49:00 [只看该作者]


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


[此贴子已经被作者于2013-1-24 12:58:24编辑过]

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


加好友 发短信
等级:幼狐 帖子:135 积分:946 威望:0 精华:0 注册:2012/8/26 23:34:00
  发帖心情 Post By:2013/1/24 13:12:00 [只看该作者]

麻烦看一下,谢谢!


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/24 14:07:00 [只看该作者]

 看看是不是这样?

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



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


加好友 发短信
等级:幼狐 帖子:135 积分:946 威望:0 精华:0 注册:2012/8/26 23:34:00
  发帖心情 Post By:2013/1/24 18:47:00 [只看该作者]

对的,就是这样,谢谢你!

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


加好友 发短信
等级:幼狐 帖子:198 积分:1655 威望:0 精华:0 注册:2013/1/11 15:10:00
  发帖心情 Post By:2013/1/24 19:44:00 [只看该作者]

Select Case e.DataCol.Name
    Case "入职时间"
        If e.DataRow.IsNull("入职时间") = False Then
            Dim rzrq As Date = CDate(e.NewValue)

            Dim tp As TimeSpan = Date.Today - CDate(e.NewValue)
            e.DataRow("工龄") = tp.TotalDays \ 365.2422

            Dim nYear As Integer =
Date.Today.Year - rzrq.Year
            Select Case nYear
                Case 0 To 1
                    e.DataRow("年休假") = 0
                Case 2 To 9
                    e.DataRow("年休假") = 5
                Case 10 To 19

                    e.DataRow("年休假") = 10
                Case Else
                    e.DataRow("年休假") = 20
            End Select
        End If
End Select   按年计算可能符合楼主的要求,我刚才看了林大的代码,修改了下,因为发现 2011.05.02的算出来没有假期 改成这样工龄准确了, 假期规则应该也可以

[此贴子已经被作者于2013-1-25 15:45:15编辑过]

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2013/1/25 15:14:00 [只看该作者]

以下是引用dreamyuan在2013-1-24 19:44:00的发言:

Select Case e.DataCol.Name
    Case "入职时间"
        If e.DataRow.IsNull("入职时间") = False Then
            Dim rzrq As Date = CDate(e.NewValue)
            e.DataRow("工龄") = Date.Today.Year - rzrq.Year
            Select Case e.DataRow("工龄")
                Case 0 To 1
                    e.DataRow("年休假") = 0
                Case 2 To 9
                    e.DataRow("年休假") = 5
                Case 10 To 19

                    e.DataRow("年休假") = 10
                Case Else
                    e.DataRow("年休假") = 20
            End Select
        End If
End Select   按年计算可能符合楼主的要求,我刚才看了林大的代码,修改了下,因为发现 2011.05.02的算出来没有假期


看了下,工龄不能这样算了,必须按照实际工作的天数去算,2011.05.02,是有5天假期的,测试了一下。

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


加好友 发短信
等级:幼狐 帖子:198 积分:1655 威望:0 精华:0 注册:2013/1/11 15:10:00
  发帖心情 Post By:2013/1/25 15:30:00 [只看该作者]

呵呵,我是按楼主的要求做的(比如2012-5-1入职 至 2013-5-1 工龄满一年了,但是不享受年休假,要2014年到了才有5天年休假)

 回到顶部