资源描述
*实践教学* 兰州理工大学计算机与通信学院2014年秋季学期RFID技术课程设计题 目: 基于高频RFID职工考勤系统 专业班级: 计算机科学与技术(物联网方向)1班 姓 名: 高 磊 学 号: 12280102 指导教师: 薛建彬 成 绩:_ 目录目录- 2 -摘要- 3 -前言- 4 -一、 基本原理- 5 -1.1 RFID技术特点- 5 -1.1.1读写器- 6 -1.1.2电子标签- 7 -1.2 RFID系统工作原理- 8 -二、 系统分析与建模- 9 -2.1系统需求分析- 9 -2.2系统功能特点- 9 -2.3系统UHL建模- 10 -三、系统设计- 11 -3.1 OURSRFIDRP实验平台系统概述- 11 -3.1.1系统整体布局结构设计- 11 -3.1.2 结构和硬件描述- 12 -3.2系统功能模块- 13 -3.3数据库设计- 13 -四、详细设计- 15 -4.1 考勤系统功能描述- 15 -4.2 系统模块设计- 20 -4.3 公共模块设计- 25 -总 结 27致 谢28参考文献29附录源代码30 摘要RFID(Radio Frequency Identification)即射频识别技术,又称电子标签、无线射频识别,是一种通信技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触.它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速运动物体,并可同时识别多个标签,操作快捷方便。RFID是一种简单的无线系统,只有两个基本器件,该系统用于控制、检测和跟踪物体。系统由一个阅读器和很多标签组成。本设计是以员工考勤管理系统为例,基于高频RFID技术之上,将RFID技术应用于信息化的考勤管理系统,系统采用cs模式系统架构。实现员工考勤自动化管理。关键字:高频RFID、考勤管理系统、c/s模式前言近年来,自动识别技术在全球范围内得到了迅速的发展,在许多服务领域、货物销售与后勤分配方面、在商业部门、生产企业和材料流通领域均得到了快速的普及和推广。自动识别的任务和目的是提供关于个人、动物和物品的信息。射频识别是一种自动无线识别和数据获取技术,它的基本原理是电磁理论。RFID识别的缺点是标签成本相对较高,而且一般不能随意扔掉,而多数条码扫描寿命结束时可扔掉。RFID使用的领域:物料跟踪、运载工具和货架识别等非接触数据采集和交换的场合由于RFID标签具有可读写能力,对于需要频繁改变数据内容的场合尤为适用。由于射频识别技术的优点,RFID技术已被广泛应用于诸如工业自动化、商业自动化、交通运输控制管理、汽车和火车等交通监控、高速公路自动收费系统、物品监控管理、流水线自动化控制、图书或档案管理系统、门禁系统、金融交易、参处管理、畜牧管理,车辆防盗等等。一、 基本原理1.1 RFID技术特点无线射频识别即RFID(Radio Frequency IDentification)技术,又称电子标签、无线射频识别,是一种非接触的自动识别技术,可通过无线电讯号识别特定目标并读写相关数据,而无需识别系统与特定目标之间建立机械或光学接触。它基本由三部分组成:标签(Tag)、阅读器(Reader)和天线(Antenna) 1.RFID电子标签(Tag,或称射频标签):由芯片及内置天线组成。芯片内保存有一定格式的电子数据,作为待识别物品的标识性信息,是射频识别系统真正的数据载体。内置天线用于和射频天线间进行通信。2.阅读器:读取或读/写电子标签信息的设备,主要任务是控制射频模块向标签发射读取信号,并接收标签的应答,对标签的对象标识信息进行解码,将对象标识信息连带标签上其它相关信息传输到主机以供处理。3.天线:标签与阅读器之间传输数据的发射、接收装置。RFID射频识别是英文Radio Freqency Identification的缩写,它是一种非接触式的自动识别技术,它通过射频信号自动识别目标对象并获取相关数据,识别工作无须人工干预,可工作于各种恶劣环境。RFID技术可识别高速运动物体并可同时识别多个识别卡,操作快捷方便。1.1.1读写器读写器在RFID系统中扮演着重要的角色,读写器主要负责与电子标签的双向通信,同时接受来自于主机系统的控制指令。读写器的频率决定了RFID系统工作的频段,其功率决定了射频识别的有效距离。读写器根据使用的结构和技术不同可以是读或读写装置,是RFID系统信息控制和处理中心。读写器通常由射频接口、逻辑控制单元和天线三部分组成。1、射频接口模块具有以下主要任务:产生高频发射能量,激活电子标签并为其提供能量;对发射信号进行调制,用于将数据传输给电子标签;接收并调制来自电子标签的射频信号。在射频接口中有两个分隔开的信号通道,分别用于来往于电子标签与读写器两个方向的数据传输。传送往电子标签的数据通过发射器分支通道,而来自于电子标签的数据则通过接收器分支通道接收。2、逻辑控制单元也称为读写模块,其具有以下主要任务:与应用系统软件进行通信,并执行从应用系统软件发送来的指令;控制与电子标签的通信过程;信号的编码与解码;对读写器和标签之间传输的数据进行加密和解密;执行防冲突算法;对读写器和标签之问的身份进行验证。3、天线是一种能将接收到的电磁波转换为电流信号,或者将电流信号转换成电磁波的装置。在RFD系统中读写器必须要通过天线来发射能量,形成电磁场,通过电磁场来对电子标签进行识别。1.1.2电子标签电子标签是指由IC芯片和无线通信天线组成的超微型的小标签,其内置的射频天线用于和读写器进行通信。系统工作时,读写器发出查询(能量)信号,电在标签(无源)收到查询(能量)信号后将其一部分整流为直流电源供电子标签内的电路工作,另一部分能量信号被电子标签内保存的数据信息调制后反射回读写器。电子标签是射频识别系统真正的数据载体。电子标签的内部结构如图1.4所示。其内部各模块功能如下所述:天线:用来接收由读写器送过来的信号,并把所要求的数据送回给读写器;电压调节器:把由标签读写器送过来的射频讯号转换成DC电源,并经大电容储存能量,再经稳压电路以提供稳定的电源;调制器:逻辑控制电路所送出的数据经调制电路调制后加载到天线送给读写器;解调器:把载波去除取出真正的调制信号;逻辑控制单元:用来译码读写器所送过来的信号,并依其要求回送数据给读写器;存储单元:包括EEPROM与ROM,做为系统运行及存放识别数据的位置。1.2 RFID系统工作原理RFID系统的基本工作原理是:由读写器通过发射天线发送特定频率的射频信号,当电子标签进入发射天线有效工作区域时产生感应电流,从而获得能量被激活,使电子标签将自身编码信息通过内置射频天线发送出去;读写器的接收天线接收到从标签(射频卡)发送来的调制信号,经天线调节器传送到读写器信号处理模块,经解调和解码后将有效信息送至后台主机系统进行相关处理:主机系统根据逻辑运算判断该卡的合法性,识别该标签的身份,针对不同的设定做出相应的处理和控制,最终发出指令信号控制读写器完成不同的读写操作。二、 系统分析与建模2.1系统需求分析基于RFID技术的考勤管理系统使用的考勤记录是通过考勤机进行采集,或通过本地计算机进行采集,记录经保存存储到数据库。管理软件应用有其特殊性,员工通常只是负责考勤信息的提供(通过刷卡),劳资、财务或管理基层才是真正使用这些考勤信息的用户。本系统是人力资源管理系统的一个子系统,可将考勤数据传递给薪资管理系统,它也可独立运行。因此,本系统除了要提供基本的考勤记录外,还要提供相应的员工信息并对允许的缺席情况进行记录,以便能够统计出每个员工真正违反考勤纪律的次数和情况。通常对于这样与劳资、财务分配密切相关的系统,均应采取一些必要的安全措施,以保证只有一定权限范围的人员才能登陆系统,因此系统必须采取相应的安全措施,以确保许可范围内的人员的口令安全阎。由于本系统的功能比较专一,因此需求分析也比较集中,由此可以得出本系统的下列需求:(1)对员工进行信息管理;(2)考勤记录的获取;(3)对员工因公或因私等情况的登记;(4)对考勤记录进行处理,统计,形成报表;(5)对登录口令的安全性保护;(6)对数据库的维护;(7)不同情况下,各种信息的查询。2.2系统功能特点以非接触式IC卡射频识别技术、计算机软件等为核心,构建一套新颖的考勤系统。在本系统中,非接触式IC卡作为身份识别,实现了考勤管理的电子化。因为射频IC卡与考勤机之间利用射频方式迸行数据传输,所以考勤机对IC卡的操作可以在瞬间完成,员工在上下班时,只需将个人的考勤卡在读写器前一晃,读写器即自动、快速、准确地记录员工的卡号和刷卡时间等信息,数据经计算机处理后保存,管理者可随时查询员工出勤情况,统计、汇总考勤报表,系统能准确反映出职工和部门的出勤情况,为管理人员提供准确的考勤数据,并能生成打印报表。2.3系统UHL建模首先对项目进行需求调研,依据项目的业务流程图和数据流程图以及项目中涉及的各级操作人员,通过分析,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,再画出系统的用例图,同时,勾画系统的概念层模型,描述概念层类图和活动图。1、确定系统范围和边界。考勤管理系统用于企事业人事部门的日常管理活动。它和薪资系统存在系统边界,薪资系统从该系统得到薪资信息。2、定义活动者。根据系统的职责范围和需求可以确定活动者。考勤管理涉及到的角色包括执行考勤工作的考勤管理人员,参加考勤的公司所有职员。考勤管理人员:管理企业的考勤普通员工:员工刷卡考勤、查询信息 3、定义用例由考勤管理人员首先制定考勤规则,主要包括考勤项目的管理、奖惩措施的制定和奖惩指标的量化定义;普通员工通过提出请假、销假和加班的申请,并通过管理人员的审核,每逢月末,管理人员将考勤机中的考勤数据导入到本系统,结合请假、销假和加班的审核数据,形成月末考勤数据的个人和部门汇总,以此为依据,根据制定的奖惩规则,计算出本月的员工考勤奖惩金额并提交给薪资管理系统。三、系统设计3.1 OURSRFIDRP实验平台系统概述OURSRFIDRP实验平台是由UHF超高频读写器模块、HF高频读写器模块、LF低频读写器模块、HF高频原理机模块、ACTIVE RFID模块、OMAP3530嵌入式网关组成。3.1.1系统整体布局结构设计 图 系统整体结构布局图3.1.2 结构和硬件描述由于本设计为高频RFID员工考勤管理系统,所以我们再次只介绍HF高频读写器模块。HF模块介绍LED灯显示说明:D1:绿色,电源启动指示灯,在430下完程序后,如果430正常运行,灯亮。D2:红色,ISO14443A协议指示灯,D3:黄色,ISO14443B协议指示灯D4:红色,ISO15693协议指示灯D5:红色,tag-it指示灯D6:红色,预留(1)系统运行简要说明: :上电后,430先通过并口访问7970芯片,在没有读到卡时,程序运行在串口读写模式,并每隔0.5s向串口发送一个“D”,直到有写操作为止。:当有卡读写时,针对相应的卡,程序进入不同的协议中,并且点亮相应的LED灯。(2)API 调用说明 :上电后,配置完内部寄存器,程序进入串口读写程序,可以进行人机交互。:当读到不同协议的卡时,程序退出串口读写程序,进入相应的协议子程序中(目前支持14443A协议和15693协议)。读完卡后,退出相应的协议子程序,进入串口读写程序。3.2系统功能模块在安全性方面,本系统应通过由口令认证功能的用户登录模块来保证该登录人员的合法性。在用户登录成功后,完全是对数据库的操作。管理软件可以通过读写器下载数据,对获得的记录处理后存储到数据库中。根据前面的需求分析得出此套考勤管理软件应具备登录功能、员工信息管理功能、IC卡读取功能,员工日常排班管理功能、班次管理功能、出差、请假登记管理功能、考勤数据管理功能、各种统计报表管理功能、数据库管理功能、信息查询管理功能,以及考勤机操作管理功能等。3.3数据库设计从功能需求可以知道存在大量的数据库访问操作,因此,数据库设计的重要性尤为明显。为建立一个好的数据库,需要从以下这些方面进行考虑p6J数据库冗余度小;函数依赖性明确;数据库的表命名体现表的内容;表中各属性的名称及类型体现该属性的含义;建立好的索引;选定适当的键;设定各字段的约束规则;表在减少冗余时应考虑实际使用时的方便性。主要的表有:(字段类型略)员工表(卡号,员工号,姓名,性别,部门代号,);考勤操作人员表(卡号,员工号,姓名,口令,操作权限);部门表(部门代号,部门名称);请假类型表(请假类型代码,请假类型,工资发放率);请假登记表(卡号,部门代号,请假类型代码,开始日期,结束日期);班种表(班种代号,班种名称);出差登记表(卡号,部门代号,开始日期,结束日期); ,加班登记表(卡号,部门代号,开始日期,结束日期)考勤组表(考勤组代号,考勤组名);原始刷卡数据表(卡号,刷卡日期,刷卡时间,)等。卡号为各表的主关键字,其它的代号为各表的主关键字或外关键字。四、详细设计4.1 考勤系统功能描述 介绍员工考勤应用系统是主要是针对员工上班出勤情况的一个统计。计算机的介入使员工出勤情况的记录和统计工作变得十分简单。 主要功能模块(1) 用户登录模块用户身份验证流程图否否是开始登录界面系统主界面退出用户信息是否正确是否继续登录 图4-1 登录界面流程图(2) 信息管理功能在这个功能模块中,又有员工信息的添加、修改、删除,以及部门的添加和删除。员工信息添加流程图 员工信息添加系统主界面输入员工基本信息添加权限是否合法检查信息是否合法添加是否成功否是否否 图4-2 员工信息添加流程图(3) 射频卡分配功能射频卡分配流程图是是寻卡射频卡分配界面读出卡序列号输入工号两次输入工号是否一致是否寻到合法卡否否将数据写入卡中分配成功图4-3 射频卡分配流程图(4) 、员工出勤情况记录功能出勤情况主要由考勤机来记录,然后由系统自动统计和分析,但是也有人工添加的功能,以备特殊情况的处理。但以智能考勤为主。智能考勤流程图是是寻卡考勤界面登记出勤员工信息生成一条统计信息是否在考勤时间内是否寻到合法卡否否退出图4-4 智能考勤流程图(5) 邮件发送功能邮件发送可以更加方便的使得领导和员工之间相互交流和联系,比如在员工缺勤次数答到一定次数时领导可以及时通知他。 邮件发送的流程图 图4-5 邮件发送流程图(6) 、查询功能查询功能方便用户根据某项条件快速的找到自己所需要的信息,例如符合条件的员工信息,符合条件的IC卡信息和符合条件的员工考勤信息等。考勤信息查询流程图图4-6 考勤信息查询流程图(7) 、数据库管理功能数据库管理功能能帮助一些不会使用SQL Server 2005关系型数据库的用户方便的对数据进行附加、恢复、备份和压缩。4.2 系统模块设计l 信息管理模块信息管理模块包含员工信息维护,部门信息编制,部门信息删除,还有员工信息添加,员工信息删除和员工信息修改。l 考勤管理模块 考勤管理模块包含人工考勤,以备遇到特殊情况,智能考勤方便用户使用RFID卡进行考勤,这样既节省时间,有不需用人工参与,提高了工作效率,减少了出错的可能。考勤时间设置是针对考勤系统启动的时间,在所设定的时间段内,考勤系统正常工作,超过这个时间段,系统就关闭。 信息管理模块部门编制部门删除员工信息修改员工信息添加员工信息删除bmshc.csygtj.csygshc.csygxxxg.csbmtj.cs 图4-7 信息管理模块图 人工考勤智能考勤时间设置Kaoqin.csZhinenkq.csKqsj.cs考勤管理模块图4-8 考勤管理模块图l 射频卡管理模块 射频卡是用户主要标识信息的载体,它存储唯一标识用户信息的工号,这样每一个员工手持一张RFID卡出勤时,由阅读器读出工号信息,然后将信息添加进考勤信息登记表。 射频卡管理模块射频卡挂失ShepinkfpShepinkjhShepinkags射频卡激活射频卡分配 图4-9 射频卡管理模块图l 用户管理模块在用户管理模块中,管理员可以添加系统用户,领导和员工可以修改密码,也可以在使用中更换权限。 用户管理模块用户添加修改密码用户删除修改权限Xiugaiqx.csShanchu.csGaimi.csYonhutj.cs 图4-10 用户管理模块图l 查询管理模块 在查询管理模块中,所有用户都可以根据自己的要求和条件查询信息,可以按工号、姓名、员工所在部门、员工所属职务等条件查询员工信息。可以根据月份、员工基本信息、出勤次数、缺勤次数、请假次数等查询一个月中员工的考勤信息。可以根据RFID卡的卡序列号信息、员工基本信息等查询员工所持RFID卡的基本信息。考勤信息查询员工信息查询射频卡信息查询Kaoqincx.csShepinkcx.csYuangoncx.cs查询管理模块 图4-11 查询管理模块图l 数据库管理模块数据库管理模块中是一些基本的数据库操作,如附加、还原、备份。数据库管理模块数据库备份数据库还原数据库附加数据库压缩Sjkbf.csSjkhy.csSjkfj.csSjkys.cs 图4-12 数据库管理模块图l 系统管理模块系统管理模块是对系统框架、布局的一个自定义操作,各个用户可以根据自己的需求与喜好更换系统布局,这可以提高工作人员工作时候的情绪,使工作人员在一个舒心的环境下工作。在系统模块中,我还提供了帮助文档,这能使工作人员尽快的熟悉系统。 系统管理模块修改密码重新登录邮件发送网上搜索Gaimi.csYoujia.csDenglu.cs 图4-13 系统管理模块图4.3 公共模块设计l 动态库设计 程序编制一般需经编辑、编译、连接、加载和运行几个步骤。在我们的应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在连接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。 动态库OUR_MIFARE.dll是用VC6.0+开发,已编译成Release实体,用于WIN98、NT、2000、XP、2003环境下。OUR_MIFARE.dll是此系统使用的USB接口射频卡读写器的配套文件,必须和读写器一起使用。还必须将硬件底层驱动的动态库ICUSB.DLL放在与OUR_MIFARE.dll同一个目录下,否则不能使用。为了在使用时可以随时更换USB接口,OUR_MIFARE.dll在调用ICUSB.DLL时采用的是动态调用的方法。u 读卡函数piccreadex读卡函数piccreadex的功能是一次性读整个区的第0块、第1块、第2块共3块的信息,并且返回卡序列号。它的原始声明是unsigned char _stdcall piccreadex(unsigned char ctrlword,unsigned char *serial,unsigned char area,unsigned char keyA1B0,unsigned char *picckey,unsigned char *piccdata0_2)。它返回unsigned char值,并将卡本块的数据传值到*piccdata指向的数组中。当返回值为0时,表示操作成功,读出的数据有效;当返回值为8时,表示寻卡错误,根本就没有卡在感应区,*serial无效。u 写卡函数Piccwriteex写卡函数Piccwriteex的功能是一次性写整个区的第0块、第1块、第2块信息。它的原始声明是unsigned char _stdcall piccwriteex(unsigned char ctrlword,unsigned char *serial,unsigned char area, unsigned char keyA1B0,unsigned char *picckey,unsigned char *piccdata0_2)。它返回unsigned char值,并将卡本块的数据传值到*piccdata指向的数组中。当返回值为0时,表示操作成功,写卡数据有效;当返回值为8时,表示寻卡错误,根本就没有卡在感应区,*serial无效。五系统实现5.1 登录模块的实现 系统登录主要用来对进入RFID员工考勤应用系统的用户进行安全性检查,以防止非法用户进入该系统。在登录时,只有合法的用户才可以进入系统,同时系统根据登录用户的不同级别,给予不同的操作权限。5.2 系统主界面的实现l 系统主界面的窗体设计 进入系统主界面,如图11所示。里面包含MenuStrip菜单栏,用于显示按模块分组的各个功能项;timer控件用于控制系统每隔一段时间检查是否有数据读入;Label标签作为界面说明行文字;StatusStrip状态栏用于显示和用户相关的实时信息。5.3 系统管理模块的实现系统管理模块中包含4各部分的内容,分别是:修改密码,邮件发送,网上搜索,重新登录;网上搜索可以登录公司的主页面,以便员工更好的了解公司的内部文化。邮件发送能更好的促进领导和员工的沟通。现在将邮件发送功能做一简单介绍。l 邮件发送的实现 邮件发送窗体是用来实现领导与员工的交流、沟通功能。当一个员工缺勤次数超过规定次数时,工作人员需要即时给该员工发出一个警告。l 邮件发送窗体设计Frmstudent_email.cs为邮件发送窗体,该窗体主要用到的控件有TextBox控件,主要作用是供用户输入合法信息;Button控件执行上传附件、删除附件、发送邮件和退出等事件;ComboBox分别用来绑定已登录的用户名、员工部门和工号信息;OpenFileDialog控件的作用是作为选择附件对话框。 5.4运行截图35 总 结 在这次的嵌入式课程设计中,我收获了很多。不仅学习了相关知识,还锻炼了自己的能力。在此过程中,通过查找大量资料,请教老师,和自己的努力,我培养了独立思考的能力,在各种其它能力上也都有了提高。更重要的是,我学会了很多学习的方法,这对于我的未来是非常重要的,现在掌握这种方法能让我以后少走很多的弯路。通过这次课程设计让我们知道了,我们平时所学的知识如果不加以实践的话等于纸上谈兵。在做课程设计的过程中总会出现各种问题,在这种情况下我们都会努力寻求最佳路径解决问题,无形间提高了我们的动手,动脑能力,并且同学之间还能相互探讨问题,研究解决方案,增进大家的团队意识。现在这种锻炼对我们非常重要,在课设中我们不仅巩固了所学的知识,还能和老师一起钻研更深的知识,开阔了我们的眼界,增长了我们的见识。依靠这次学到的知识,可以使我们少受些挫折。这不仅是对我们的鞭策,同时也是我们的机遇,我们一定要好好把握这次机会,因为它可能是我们人生的转折点,完成这次课设我们的人生可能就会有所不同。嵌入式课程设计虽然结束了,也留下了很多遗憾,因为由于时间的紧缺和许多课业的繁忙,并没有做到最好,但是,最起码我没有放弃,它是我们的骄傲!相信以后我会以更加积极地态度对待我们的学习、对待我们的生活。只有我们增强了自己的能力,才能使我们在未来立于不败之地。 致 谢首先要感谢薛建彬老师的授课与指导!感谢所有支持我完成嵌入式程序设计论文的老师和同学们!薛老师严谨、细致的治学态度,坦诚、热情的处世风格,给我留下了深刻的印象,我为能成为他的学生而感到幸运。他帮我解答疑难问题,给我提供资料,给我提供查阅资料的信息,引导我该如何去思考问题,教会我解决问题的方法。同时又鼓励我自己学习,老师给我的不仅是知识,是帮助,更是学习的信心和智慧,在这里衷心感谢老师的耐心细心和一丝不苟的帮助。其次,我还要感谢实验室的其他老师,他们在学习环境上严谨的办学让我有了一次学习升华的过程,了解到很多嵌入式系统方面最新的观点、原理和实践。另外,我还要感谢各位兰州理工大学的给予指导的老师,在本文撰写的过程中为我提供了很多宝贵的学习机会。参考文献1OURS-DFID-RP实验指导书.北京奥尔斯电子科技有限公司.2012.102 石志国等著. 物联网技术与应用. 北京交通大学出版社, 2012.93 吴洪贵,孙玉娣等著. 物联网应用系统开发. 东软电子出版社,2012.114 游战清、李苏剑无线射频识别技术(RFID)理论与应用电子工业出版社,20045 Klaus Finkenzeller射频识别(RFID)技术电子工业出版社.20016 北京奥尔斯电子科技有限公司.物联网创新实验套件实验指导书2012.117 李文仲,段朝玉著.ZigBee2007/PRO协议栈实验与实践. 北京航空航天大学出版社,2009.3附录源代码 /.省略部分代码 /指定区号 myareanoID= 8;/指定为第8区 /批定密码模式 authmode = 1;/大于0表示用A密码认证,推荐用A密码认证 /指定密码 /.省略密码 if (textBox1.Text.Trim() = textBox3.Text.Trim() /指定卡数据 string strStudentNo = string.Empty; for (int k = 0; k < textBox1.Text.Length; k+) strStudentNo = textBox1.Text.Substring(k, 1); mypiccdataIDk = (byte)Convert.ToInt16(strStudentNo); status = piccwriteex(myctrlword, mypiccserial, myareanoID, authmode, mypicckey, mypiccdataID); /处理返回函数 switch (status) case 0: /成功的写入卡后,要在数据库中登记 /以下省略部分数据库操作代码 break; case 8: /没有卡时,即寻不到射频卡时的代码 break; 通过触发器更新月考勤信息统计表 当有考勤信息插入考勤信息记录表时,程序需要判断这个月此员工的考勤信息是否已有统计,如果已经存在,就根据出勤属性更新统计信息,如果不存在,则插入一条新记录,这里通过一个触发器来实现,触发器代码如下:CREATE trigger trig_monthkeer on dbo.考勤信息登记表for insertasif exists(select 工号,month(考勤时间) from inserted where 工号in(select 工号from 月考勤信息登记表) and month(考勤时间) in(select 月份from 月考勤信息登记表)begindeclare attendance char(10)declare student varchar(10)declare montime tinyintselect attendance=出勤属性,student=工号,montime=month(考勤时间) from insertedif(attendance like '按时')update 月考勤信息登记表set 出勤次数=出勤次数+1where 工号=student and 月份=montimeelse if(attendance like '请假')update 月考勤信息登记表set 请假次数=请假次数+1where 工号=student and 月份=montimeelse update 月考勤信息登记表set 缺勤次数=缺勤次数+1where 工号=student and 月份=montimeendelsebegindeclare monthtime tinyintdeclare studentID varchar(10)declare attend char(10)select attend=出勤属性,studentID=工号,monthtime=month(考勤时间) from insertedif(attend like '按时')insert into 月考勤信息登记表(月份,工号,出勤次数,请假次数,缺勤次数)values(monthtime,studentID,'1','0','0') else if(attend like '请假')insert into 月考勤信息登记表(月份,工号,请假次数,出勤次数,缺勤次数)values(monthtime,studentID,'1','0','0')else insert into 月考勤信息登记表(月份,工号,缺勤次数,出勤次数,请假次数)values(monthtime,studentID,'1','0','0')end
展开阅读全文