标题:求用VFP解决考勤统计表的方法
只看楼主
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
你统计的需求或标准,叙述精准,自然会有人帮你的。

只求每天有一丁点儿的进步就可以了
2015-09-15 14:06
wengjl
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:108
帖 子:2175
专家分:3785
注 册:2007-4-27
得分:0 
一天中为什么是打卡三次呢?上下班应该是2次,中途有进出,应该是一天4次或6次的

只求每天有一丁点儿的进步就可以了
2015-09-15 14:09
沙枣
Rank: 4
来 自:宁夏银川
等 级:业余侠客
威 望:5
帖 子:103
专家分:221
注 册:2015-5-31
得分:0 
回复 楼主 jsfchqf
你是不是想用VFp语言控制EXCEL表实现所需的功能,如果是这样的话,基本不可实现,因为EXCEL表单元格的数据类型与VFP的数据类型有较大不同,且每个单元格的类型都可以改变,而VFP的每一列只能有一种数据类型,这样就会因为EXCEL表的数据类型不规则,在两个工作表间传递数据时,因数据类型不匹配而导致程序中断。即使做出程序来,也可能因为不同时期产生的EXCEL表数据类型异常变动而发生中断。
    如果先将EXCEL数据读入VFP数据库中,在VFP中处理完毕后,重新输出到EXCEL中,倒是较为稳妥的办法,但这样做程序就会比较复杂。
2015-09-15 15:53
沙枣
Rank: 4
来 自:宁夏银川
等 级:业余侠客
威 望:5
帖 子:103
专家分:221
注 册:2015-5-31
得分:0 
回复 楼主 jsfchqf
    我研究了一下你的问题,确实有几分复杂。如我前面所说,我先将sheet2的数据读入VFP中,在VFP处理成需要的格式后,再由程序控制写入sheet1中。根据你给出的样本数据,编了一段程序,可以实现你的要求,能够真正满足工作要求,前提条件是你的考勤数据工作表sheet2中所有单元格的数据必须是“字符”,否则程序可能出错。出于程序复杂程度考虑,我没有在程序中设置不同类型数据相互转换和容错功能,只是根据你提供的样本数据制作了这个程序,在xp/vfp6.0测试,完全正常。
    使用方法:VFP下do 程序1,按照提示选择你要处理的“EXCEL文档”即可,注意EXCEL文档中sheet2存放考勤数据,sheet1存放统计结果,这一点是死的,否则即可能出错。
    有一点出入的是,我没有按照你的每人三行的格式来设置数据,因为有人一天的考勤次数可能达到3或3次以上,我都给你列出来了,没有取舍。
例表格式及考勤数据.rar (14.99 KB)


   

[ 本帖最后由 沙枣 于 2015-9-18 08:37 编辑 ]
2015-09-17 18:31
久久旺达
Rank: 2
等 级:论坛游民
威 望:1
帖 子:201
专家分:12
注 册:2013-4-10
得分:0 
楼主的考勤数据 能不能编成这样的 一般一天的考勤次数是四次  上班签到 下班签退(上午7:30-8:00签到 11:00-12:20签退  下午13:00-14:20签到 17:00-18:20签退) 但是员工在签到签退的时候要多签 在一个时间段签了多次  导致导出的数据很多 在时间段里面重复很多,不知道能不能按照沙枣老师的程序  能够计算出一个员工五天内的签到次数和缺签的次数?谢谢
2015-09-18 15:56
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:190
帖 子:3125
专家分:8340
注 册:2015-3-25
得分:0 
我们公司的考勤打卡记录,好像就是有6次的。
早上,中午,晚上,一般来说,最少要有6次,因为有的公司是3班上班的,
有的单位,中午下班是要打卡的,他们打卡时间是早上8:30,12:00,下午14:00,18:00,如果加班,可能是18:30到24:00,为了满足不同需求,一般来说,都要有6次。
2015-09-18 16:18
沙枣
Rank: 4
来 自:宁夏银川
等 级:业余侠客
威 望:5
帖 子:103
专家分:221
注 册:2015-5-31
得分:0 
回复 15楼 久久旺达
每个员工一天难于保证规则地签到4次,我们单位就用自动刷卡机,有的人明明刷过卡了,过了一会儿,又记不清刷过没有,又会刷一次,有的时候,读卡机不争气,只刷一次数据没有传到服务器上,导致员工迟到或旷工,于是员工一生气就连刷几次,在上班的高峰期就出现过这样的问题。还有中间出去办事、执行公务出入大门的,都会产生刷卡数据,因此,一天有多次刷卡数据是免不了的。
    所以,要规范员工的刷卡数据,只有用程序进行“筛选”,剔除那些重复没用的数据,这一点比较容易办到。

[ 本帖最后由 沙枣 于 2015-9-18 17:03 编辑 ]
2015-09-18 17:02
久久旺达
Rank: 2
等 级:论坛游民
威 望:1
帖 子:201
专家分:12
注 册:2013-4-10
得分:0 
沙枣老师 看你说的就是我想的问题 那麻烦你给做个提示 怎么筛选出这些重复数据进行删除呀 最好你能帮着写一些程序 手工筛选很麻烦  谢谢
2015-09-19 08:22
沙枣
Rank: 4
来 自:宁夏银川
等 级:业余侠客
威 望:5
帖 子:103
专家分:221
注 册:2015-5-31
得分:0 
回复 18楼 久久旺达
   应先生请求,既然动手做了,干脆就做到底。结合你的要求,我又做了程序2、程序3,程序2按照每天上午上班一次,上午下班一次,下午上班一次,下午下班一次的规则处理数据。程序3按照每天上午上班一次,午休一次,下午下班一次的规则处理数据。程序1是列出全部的考勤数据,不进行取舍。你可以根据实际需要,取用合适的程序。
    上午上班时间以每天12:00之前最早一次时间计算,中午下班及午休按照12:00-14:00之间计算,可以刷一次、两次、若干次,下午下班以17:00以后的时间为准,全天每个时段的刷卡次数可任意,程序会自动进行合理取舍。因每个单位情况不同,时间段设置较宽,以适应各种不同的情况。本程序没有进行迟到、早退、旷工等情况的判别,因为现有的刷卡数据没有区分进单位,还是出单位,例如11:00刷卡,可能是早退,也有可能是出去开会,还有可能是第一次进厂,要差别出迟到早退等情况,还得更详尽的数据信息才行。
     使用方法:VFP命令窗口下,do 程序1/程序2/程序3,选中你要处理的Excel文档即可,在xp/VFP6.0下测试通过,有什么问题再说。
例表格式及考勤数据.rar (26.59 KB)


[ 本帖最后由 沙枣 于 2015-9-20 15:30 编辑 ]
2015-09-20 11:17
中国龙王
Rank: 5Rank: 5
等 级:贵宾
威 望:16
帖 子:484
专家分:283
注 册:2006-5-17
得分:0 
哈哈...去建一个有365个字段的表来搞定他

不要为了打发无聊而做无聊的事!不要在虚幻的世界里做虚幻的事!
2015-09-20 17:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-457137-1-1.html




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

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