需求分析:公司旧的考勤系统,缺 “就餐”功能模块,不能查询和统计每天的就餐人数。故需开发一个简易的“刷ID卡的就餐系统”,三 部 分组成,一部分为人事资料的增删改查,二部分为处理从“刷卡就餐机”采集的Text文档,三部分为生成-------就餐人数统计EXCEL表。

1、解决方案结构

刷ID卡的就餐系统-LMLPHP

2、主程序窗口

刷ID卡的就餐系统-LMLPHP

3、人事资料管理窗口

刷ID卡的就餐系统-LMLPHP

4、就餐类型定义窗口

刷ID卡的就餐系统-LMLPHP

5、刷卡就餐数据处理窗口,用到了线程知识点

刷ID卡的就餐系统-LMLPHP

6、生成报表窗口,导出Excel文档

刷ID卡的就餐系统-LMLPHP

7、生成的Excel表格效果图,带自动汇总

刷ID卡的就餐系统-LMLPHP

8、在程序实现过程中,趟过的坑

坑1:刚开始,用Sqlite 数据库做后台,刷卡的数据写入数据库时出现数据丢失,单表只能插1000行------>更换为 Access数据库

坑2:数据库(SQLite)存储数据的时候,开头是0的字符串0000---->0(sql中),需要将数据类型String----->Text

坑3:Access中语句  between …… and……   ---时间格式应用  # ,或者用 ‘ 引用

坑4:Access语法 左连接查询------结果1902条,内连接---------数据有 1863条,在此种情况下,应采用左连接查询

---左连接
select t1.CardNo as CardNo,t1.CardTime as CardTime,t1.MachineId as MachineId,t2.EmpId as EmpId,t2.Name as Name
from T_DinnerRec as t1 left join T_Employee as t2 on t1.CardNo=t2.CardNo
order by t2.EmpId
---内连接
select t1.CardNo as CardNo,t1.CardTime as CardTime,t1.MachineId as MachineId,t2.EmpId as EmpId,t2.Name as Name
from T_DinnerRec as t1 inner join T_Employee as t2 on t1.CardNo=t2.CardNo
order by t2.EmpId

坑N:……
9、总结:一个小Project下来,收获很多,贵在坚持和执着,才能达成目标!继续追梦。MARK.

05-11 19:35