| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2058 人关注过本帖
标题:还是统计相关问题
取消只看楼主 加入收藏
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:10 
还是统计相关问题
年休假汇总表.rar (7.66 KB)

数据表中“工作年限”“年休假天数”“本年应休”“合计”“年休假剩余”是需要计算的,计算方法如下:
1、工作年限=当年年份-工作时间(年份)-1
2、员工工作年限已满1年不满10年的,年休假5天;已满10年不满20年的,年休假10天;已满20年的,年休假15天。
   注意:年休假天数要根据月份算,举个例子吧:假设某人2000年8月入职工作,在2001年的10月统计年休假天数,那么他的年休假天数为5+5*(2/12)
3、本年应休天数=年休假天数+上年未休天数
4、合计=一月至十二月休假天数的和
5、年休假剩余=本年应休-合计
拜托各位大神了。。。。
搜索更多相关主题的帖子: 工作 计算方法 数据表 
2012-11-14 11:17
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:0 
以下是引用bccn201203在2012-11-14 13:24:41的发言:


假如张三是2011年10月份参加工作的,到2012年11月30日,如果按照楼主的公式计算,张三工作年限为[0],因此,楼主的公式是没有科学性,看样子,楼主比半夜鸡叫的土财主还要狠。
不好意思,我贴出来的计算方法的确有问题,现在我更正一下,工作年限=当年的年月(含年份月份)-工作时间(含年份月份)-1

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-11-14 15:04
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:0 
以下是引用bccn201203在2012-11-14 13:31:27的发言:

按照楼主的公式1:工作年限=当年年份-工作时间(年份)-1
上述示例是不成立的,也就是说该职工是没有年休假的。
工作年限和退休年龄的计算方法是一样的,必须考虑到该人参加工作的年月日,与当前的年月日。
按照上面的公式,休假天数不足一天的如何处理。
这个精确到月份就行,不用考虑天数

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-11-14 15:09
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:0 
回复 10楼 wjp456789
非常感谢!

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-11-14 16:39
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:0 
现在的问题就是如何将月份跟年份转换了一起进行计算,坐等各位大神结果。。。

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-11-14 17:10
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:0 
以下是引用月沐庭轩在2012-11-14 19:30:18的发言:

我是用了replace语句。
USE 年休假汇总表
SCAN
    REPLACE  工作年限 WITH f工作年限(工作时间)
    REPLACE  年休假天数 WITH f年休假天数(工作年限)
    REPLACE  本年应休 WITH ALLTRIM(STR(VAL(年休假天数)+VAL(上年未休)))
    REPLACE  合计 WITH ALLTRIM(STR(VAL(一月)+VAL(二月)+VAL(三月)+VAL(四月)+VAL(五月)+VAL(六月)+VAL(七月)+VAL(八月)+VAL(九月)+VAL(十月)+VAL(十一月)+VAL(十二月)))
    REPLACE  年休假剩余 WITH ALLTRIM(STR(VAL(本年应休)-VAL(合计)))
ENDSCAN
BROWSE
FUNCTION f工作年限(工作时间)
当前总月份=YEAR(DATE())*12+MONTH(DATE())
参加工作总月份=VAL(LEFT(ALLTRIM(m.工作时间),4))*12+VAL(RIGHT(ALLTRIM(m.工作时间),2))
f工作年限=ALLTRIM(STR(INT((当前总月份-参加工作总月份)/12)))
RETURN f工作年限
ENDFUNC
FUNCTION f年休假天数(工作年限)
f年休假天数=""
DO CASE
CASE VAL(m.工作年限)>=20
    f年休假天数="15"
CASE VAL(m.工作年限)>=10
    f年休假天数="10"
CASE VAL(m.工作年限)>=1
    f年休假天数="5"
ENDCASE
RETURN f年休假天数
ENDFUNC
首先要谢谢你,不过我看了下,还是存在几个不足:
1、“合计”的运行结果都是整数
2、“年休假天数”也没有达到我想要的结果,可能你们还没有理解我的意思,我再举个例子吧,某人2000年2月开始工作,2010年1月统计休假天数,那么他工作年限不足10年,9年11个月份,那么他首先有5天的休假,然后多出来的11个月也要计算天数,即(11/12)*5,总的天数就是5+(11/12)*5。如果2010年4月统计休假天数,那么他满足的10年的工作年限,享受10天的休假,然后多出来的2个月也要计算,即(2/12)*10,总的天数就是10+(2/12)*10。

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-11-15 09:55
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:0 
以下是引用Kerberos在2012-11-15 09:55:04的发言:

首先要谢谢你,不过我看了下,还是存在几个不足:
1、“合计”的运行结果都是整数
2、“年休假天数”也没有达到我想要的结果,可能你们还没有理解我的意思,我再举个例子吧,某人2000年2月开始工作,2010年1月统计休假天数,那么他工作年限不足10年,9年11个月份,那么他首先有5天的休假,然后多出来的11个月也要计算天数,即(11/12)*5,总的天数就是5+(11/12)*5。如果2010年4月统计休假天数,那么他满足的10年的工作年限,享受10天的休假,然后多出来的2个月也要计算,即(2/12)*10,总的天数就是10+(2/12)*10。
说错了,第一种情况应该是5-1/12)*5

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-11-15 10:23
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:0 
回复 35楼 月沐庭轩
谢谢你啊!第一个问题已经解决,第二个问题我昨天问了人事部的人,她说这个涉及到进厂时间,我回家算了算感觉还是不对,今天她不在,所以等我下次问问她然后再咨询你哈!谢谢你的代码啊,写的真好,我也挺喜欢用replace的。

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-11-16 09:34
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:0 
回复 38楼 月沐庭轩
好冷。。。

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-11-16 14:03
Kerberos
Rank: 5Rank: 5
来 自:江苏扬州
等 级:职业侠客
帖 子:227
专家分:355
注 册:2012-9-11
收藏
得分:0 
回复 35楼 月沐庭轩
你好,上次的问题我已经基本问清楚,是这么回事:
  首先,判断员工进厂工作时间有没有满一年(进厂工作时间=现年月-进厂时间),如果满一年,就是按你上面的方法算,如果没有满一年,假设为进厂工作月份,则年休假天数为(进厂工作月份/12)*5。

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-11-19 09:39
快速回复:还是统计相关问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027398 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved