| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2058 人关注过本帖
标题:还是统计相关问题
只看楼主 加入收藏
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
wjp456789
Rank: 5Rank: 5
来 自:四川成都
等 级:职业侠客
威 望:1
帖 子:345
专家分:330
注 册:2012-6-25
收藏
得分:0 
自己修改相关的条件

我是来向高手学习的!
2012-11-15 10:06
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
不到5年的也用参加工作的月份数计算休假天数吗?

相互学习,互相交流,共同提高。
2012-11-15 10:08
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
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
第一个问题,可以设置str()函数的小数位,这样就可以把小数点弄出来。
很奇怪,你的表的字段怎么都是字符型呢,为什么不把数字弄成数值型的呢?你这样弄,白增添了调试程序的麻烦。
第二个问题,我查看了《职工带薪年休假条例》,没有你说的那么复杂,带薪年休假,只有三种,就是五天、十天、十五天。其第三条规定: 职工累计工作已满1年不满10年的,年休假5天;已满10年不满20年的,年休假10天;已满20年的,年休假15天。国家法定休假日、休息日不计入年休假的假期。是不是你公司有特殊规定?如果有特殊规定,请你按照你公司的规定,详细写一个条件吧。
21楼代码,我已修改,应该可以解决你的第一个问题。

[ 本帖最后由 月沐庭轩 于 2012-11-15 17:41 编辑 ]

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

想学好VFP,想做VFP高手,想帮助更多的人解决VFP问题!
2012-11-16 09:34
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 

可用 repl all .. with .., 按条件代入, 一句代码即可~ 速度快, 也容易理解~


repl all 字段1 with 表达式;
        ,字段2 with 表达式;
        ,字段3 with 表达式
2012-11-16 11:52
月沐庭轩
Rank: 9Rank: 9Rank: 9
来 自:京城
等 级:贵宾
威 望:17
帖 子:393
专家分:1106
注 册:2011-7-24
收藏
得分:0 
回复 37楼 茵梦湖
太好了!!!

坚持学习vfp,QQ:306805680
2012-11-16 11:59
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.072689 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved