SHR薪酬公式怎么取未入职或离职天数
本帖最后由 zhangmeiling_kingdee 于 2015-10-19 17:10 编辑

取入职日期和当前的薪资期间比较,如是当月入职或离职,需要取到当前当月不在职的天数
如果 取年月间相差月数("[入职日期]" ,取当前年("") ,取当前月("")) =0 那么 未入职或离职天数 = 取当前日("[入职日期]") - 1 +(取某月包含天数("[离职日期]") - 取当前日("[离职日期]"))  其余 未入职或离职天数  = 0

如设置上述公式系统会报错,测试是由于取年月间相差月数("[入职日期]" ,取当前年("") ,取当前月(""))函数引起的

试用其他函数其他 = 取相差年数("2014-01-27" ,"取当前年("")"),又无法取到复合函数的值。
file:///C:/Documents%20and%20Settings/Administrator/Application%20Data/Foxmail/FoxmailTemp(100)/Catch5A4B(08-31-09-51-43).jpg

微信扫一扫
分享
举报
您需要登录后才可以回帖 登录 | 注册

  • 你需要登录才可以查看 登录 | 注册
  • 本帖最后由 张美玲 于 2016-9-18 20:14 编辑

    公式设置错误
    错在几点:1、 函数中引用人事项目,外面不要加双引号,可以再看一下公式设置指南,里面有解释为什么。("[入职日期]")
    2、取年月间相差月数(),这个函数之能带两个参数,且应该是日期类型的,你带了三个,后面两个都不是日期字符串而是数字
    3、感觉逻辑是混乱的,本意应该是要取当月入职的或离职的员工的不在职天数,可是结果中却是将它们加了起来

  • 试算正确,如图
    取未入职或离职天数.png
  • 本帖最后由 张美玲 于 2018-06-21 17:16 编辑

    取当前月()函数,中如果没有带参数或者传入参数为空,则返回系统当前月。
    所有,会出现如果离职日期为空,返回的月是当前月。也可以通过新增一个取日期中月的函数,参照取当前月()函数(管理员登陆,打开开发平台-核算函数),改为如果没有带参数或者传入参数为空,则返回0.0。或者在判断条件中加入条件:[离职日期]<>""
    把函数体改为:
    public double FunGetMonth(String fromDate) {
    java.util.Date dt = null;
    try {
    if (fromDate == null || "".equals(fromDate.trim())) {
    return (double)0.0;
    } else {
    java.text.SimpleDateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd");
    dt = df.parse(fromDate);
    }
    java.util.Calendar cal = java.util.Calendar.getInstance();
    cal.setTime(dt);
    return (double)(cal.get(java.util.Calendar.MONTH) + 1);
    } catch (Exception ex) {}
    return (double)0.0;
    }
  • 本帖最后由 qiongzhou_zhao@kingdee.com 于 2015-9-18 16:04 编辑

    感谢
  • 现场通过这个方式处理
    1、如果 取当前年([离职日期]) = 取当前年(取薪酬期间起始日期())  并且 取当前月([离职日期]) = 取当前月(取薪酬期间起始日期()) 那么 离职天数 = 取某月包含天数(取薪酬期间起始日期()) - 取当前日("离职天数")

    2、如果 取当前年([离职日期]) = 取当前年(取薪酬期间起始日期())  并且 取当前月([离职日期]) = 取当前月(取薪酬期间起始日期()) 那么 离职天数 = 取某月包含天数(取薪酬期间起始日期()) - 取当前日("离职天数")

    3、未入职或离职天数 =  未入职天数 + 离职天数

    回复

    张美玲: 绝世好贴!: 5
    这个方式更好!32个赞! 发表于 2015-09-23
  • 郑先生 略知一二 8
    2015-11-10 显示全部楼层
    关于薪酬公式,学习了
  • 本帖最后由 cs_8065000154@8065000154 于 2015-11-20 16:54 编辑
    qiongzhou_zhao@kingdee.com 发表于 2015-9-18 16:06
    现场通过这个方式处理
    1、如果 取当前年([离职日期]) = 取当前年(取薪酬期间起始日期())  并且 取当前月([ ...

    这公式看半天 愣是没看懂 是不是写错了  感觉应该是下面这个吧
    1、如果 取当前年([离职日期]) = 取当前年(取薪酬期间起始日期())  并且 取当前月([离职日期]) = 取当前月(取薪酬期间起始日期()) 那么 离职天数 = 取某月包含天数(取薪酬期间起始日期()) - 取当前日([离职日期])

    2、如果 取当前年([入职日期]) = 取当前年(取薪酬期间起始日期())  并且 取当前月([入职日期]) = 取当前月(取薪酬期间起始日期()) 那么 未入职天数 = 取当前日([入职日期])
    3、未入职或离职天数 =  未入职天数 + 离职天数
  • 189xxxx3916 驾轻就熟 10
    2016-08-19 显示全部楼层
    当月入职当月离职,搞定了吗 ? 公式是如何设置的 ?