2.4创建日常处理功能 该考勤系统的日常处理功能主要由考勤操作、加班操作、日终处理操作组成,分别由Kqact,Jbact,Rzact 3个表单来完成。 copyright paper51.com
2.4.1创建考勤操作表单 paper51.com 在项目管理器中新建一个表单,命名为Kqact。设置其数据环境为“员工信息”数据表(Yuangong),“考勤记录”数据表(Kaoqin),“部门信息”数据表(Bumen)。其中“员工信息”数据表以“所在部门”字段为表达式和“部门信息”数据表的“部门编号”字段建立联系。 http://www.paper51.com
表单显示也有两种状态,考勤状态和非考勤状态,表单在初始化时处于非考勤状态,单击“考勤”(Cmdok)按钮进入考勤状态,单击“保存” (Cmdok)按钮回到非考勤状态,为此,添加两个表单的方法属性Modpre,Modadd。 paper51.com Modpre方法属性的作用将各栏数据清空,使员工编号、考勤状况两个下拉列表框不可用,使备注栏只读。 paper51.com Modadd方法属性的作用是员工编号、考勤状况两个下拉列表框可用,使备注栏可写。 copyright paper51.com 由于表单中“Cmdok”按钮在表单中有两种作用,一种是表单处于非考勤系统状态时使表单进入考勤状态,一种是在表单处于考勤状态时使表单进入浏览状态,而在两种状态“Cmdok”按钮的提示语句应该是不同的,“Cmdcancel”按钮也有相同的情况,所以应该在表单刷新时做出调整。 copyright paper51.com 如果考勤的时间过了上班时间,而未下班时,则不可能是正常的上行政班了,只可能是迟到或者病假等了,所以在“Cmb考勤状况”收到焦点前要改变其数据源,将行政班从其数据源中去掉,在这儿假设上午上班时间是8点,下班时间是12点,下午上班时间是2点,下午下班时间是6点。 paper51.com “Cmdok”按钮的作用是在表单处于非考勤状态时使表单进入考勤状态,根据当前时间判断考勤时段,根据当前日期、考勤时段以及该时段考勤员工数目组成考勤编号,并在表单中显示相应的数据。在表单处于考勤状态时首先判断各栏数据的填充情况,接着判断表单中显示的员工是否需要考勤,如果一切无误,则将表单中的数据插入数据表中,同时使表单进入非浏览状态。 paper51.com
“取消”(Cmdcancel)按钮的作用是在考勤状态时取消考勤,使表单进入非考勤状态,并改变两个按钮的图标,在非考勤状态时退出表单 http://www.paper51.com 2.4.2 创建加班操作表单 内容来自www.paper51.com 在项目管理器中新建一表单,命名为Jbact。 http://www.paper51.com 将“加班记录”数据表(Jiaban),“员工信息”数据表(Yuangong),“部门信息”数据表(Bumen)加入到数据环境中。其中员工信息数据表以“所在部门”字段作为表达式与部门信息数据表的“部门编号”字段建立联系。 copyright paper51.com 添加一个表单方法属性Modpre来确定表单的非加班处理状态,其作用是清空表单中各栏数据,使按钮控件回到初始状态。 http://www.paper51.com 访表单的工作原理是首先在表单的员工编号栏选择要进行加班操作的员工,如果该员工正在加班状态,则禁用开始按钮,单击“结束”按钮结束加班;如果该员工还没有开始加班,则禁用结束按钮,单击“开始”按钮开始加班操作。 内容来自www.paper51.com 2.4.3 创建日终处理表单 内容来自www.paper51.com 在项目管理器中创建一表单,命名为Rzact。 内容来自www.paper51.com 把“日终处理记录”数据表、“考勤记录”数据表、“员工信息”数据表、“部门信息”表 copyright paper51.com 其中,以“员工信息”数据表的“所在部门”字段作为表达式与“部门信息”数据表的“部 内容来自论文无忧网 www.paper51.com 门编号”字段建立关联。 内容来自www.paper51.com “Cmdok”按钮的作用是在表单处于非处理状态时,首先判断当前时间,如果一天已经结束,则使表单进入日终处理状态,具体在表单中的表现是使日终处理编号自动加1,使处理内容单选按钮组处于可用状态,使备注栏可写;在表单处于非处理状态时,则首先读入员工信息数据表中一项数据,再读入部门信息数据表中的相应数据,查看该员工今天的应该考勤状态,再读入考勤记录数据表查询该员工在当天应该考勤的时段是否考勤,如果没有考勤就写入数据,一个员工处理完毕,员工信息数据表指针下移一位。 内容来自www.paper51.com
2.5创建信息管理功能 paper51.com 信息管理功能包括员工信息管理功能、部门信息管理功能、考勤记录管理功能、加班记录管理功能,分别有Ygadmin、Bmadm、Kqadm、Jbadm 4张表单完成。 http://www.paper51.com 2.5.1 创建员工信息管理功能 http://www.paper51.com 在项目管理器中创建一表单,命名为Ygadmin。 内容来自www.paper51.com 将“员工信息”数据表、“部门信息”数据表添加到表单的数据环境中,并用“员工信息”数据表的“所在部门”字段作为表达式和“部门信息”数据表的“部门编号”字段建立关联。 http://www.paper51.com 从数据环境中添加需要显示的字段到表单中,将移动记录工具栏类和命令按钮工具栏类实例化,并重新命名为Ygadmmr和Ygadmabg。 paper51.com 该表单明显应该有3种状态,浏览状态、新增状态和修改状态,而这3种状态表现在表单上实际也就是两种状态,文本框控件的是否只读以及工具栏是否可用。为了更好的控制表单的这两种状态,新建两个方法属性:Modmod及Modpre。其中Modmod方法属性使表单进入浏览状态,Modmod方法属性使表单进入非浏览状态。同时,在新建工具栏中曾经提到过,如果要全部使用在类中定义的按钮的代码,还需要添加一个表单属性Oldrecord,并将其初始化为1。 http://www.paper51.com
表单在初始化时先将数据环境中员工信息数据表取消过滤条件,然后使表单进入浏览状态,这只需要在表单的Init事件中进行设置即可。 内容来自www.paper51.com 在表单中选择某一个部门时,要在表单的部门名称和上班制度栏显示相应的信息,添加Cmb所在部门的Valid事件代码:THISFORM.REFRESH() paper51.com 从员工信息管理表单的效果图中可以看到生日栏是只读的,而且在Modmod方法属性中也没有将其只读属性去掉,这也意味着生日栏是不可填写的。这是因为将从填入的身份证号中提取生日信息,因为现在的18位身份证号的从第七位起就是生日的年月日。 copyright paper51.com 命令按钮工具栏中Cmdadd按钮的作用是在表单的数据缓冲区中新建一个记录,使员工编号自动加1,并表单进入非浏览状态。 copyright paper51.com
到此,员工信息管理表单的主窗体部分创建完成。下面创建输入查询条件窗口,完成员工信息管理功能中的查询功能。 paper51.com 2.5.2创建部门信息管理功能 paper51.com 在项目管理器中新建一表单,命名为Bmadm。将“部门信息”数据表添加到表单的数据环境中。 copyright paper51.com 从表单的数据环境中将需要在表单中显示的字段拖放到表单中。将“移动记录工具栏”类和“命令按钮工具栏”类实例化,并重新命名为Bmadmmr和Bmadmabg。 内容来自www.paper51.com
命令按钮工具栏中“新增”(Cmdadd)按钮的作用是在表单的数据缓冲区内新建一条记录,使部门编号自动加1,在表单中显示部门编号,再使表单进入到非浏览状态。 http://www.paper51.com
命令按钮工具栏中的“打印”(Cmdpri)按钮的作用是将表单中当前记录的部门编号作为参数传递给“部门信息”标签(Bminfo)并以预览的方式查看打印结果。 http://www.paper51.com
命令按钮工具栏中的“保存”(Cmdsave)按钮的作用是判断表单中各数据栏的填写情况,如果无误则将缓冲区的数据写入数据表中。 http://www.paper51.com 2.5.3 创建考勤记录管理表单 copyright paper51.com 在项目管理器中新建一表单,命名为Kqadm。 内容来自论文无忧网 www.paper51.com
将“考勤记录”数据表、“员工信息”数据表、“部门信息”数据表添加其数据环境中。用“考勤记录”数据表中的“员工编号”字段作为表达式和“员工信息”数据表中的“员工编号”字段建立关联,用“员工信息”数据表的“所在部门”字段作为表达式和“部门信息”数据表中“部门编号”字段建立关联。 paper51.com
表单在初始化时应该是处于浏览状态的,与考勤操作表单相同,要使显示日期的标签控件显示系统日期。 内容来自论文无忧网 www.paper51.com
由于可以通过考勤操作表单添加记录,所以命令按钮工具栏的“新建”(Cmdadd)按钮隐藏。 http://www.paper51.com
命令按钮工具栏的“修改”(Cmdmod)、“删除”(Cmddel)、“取消”(Cmdcancel)、“退出”(Cmdexit)按钮的代码可使用基类中定义好的代码。 内容来自论文无忧网 www.paper51.com
“查询”(Cmdser)按钮的作用是调用一个输入查询条件的表单,表单的查询功能将主要通该输入查询条件表单完成。 内容来自www.paper51.com “查询”(Cmdser)按钮的Click事件代码如下: 内容来自www.paper51.com DO FORM KQSER copyright paper51.com “打印”(Cmdpri)按钮的作用是将表单中当前记录的考勤编号作为参数传递给考勤记录表单,以预览方式查看浏览结果。 http://www.paper51.com
“打印”(Cmdpri)按钮的Click事件代码如下: http://www.paper51.com REPORT FORM KQBYDAY FOR 考勤编号=THISFORM.Txt 考勤编号.VALUE PREVIEW paper51.com 2.5.4 创建加班记录管理表单 paper51.com 在项目管理器中新建一表单,命名为Jbadm,将“加班记录”数据表、“员工信息”数据表和“部门信息”数据表添加到表单的数据环境中。用“加班记录”数据表的“员工编号”字段作为表达式和“员工信息”数据表的“员工编号”字段建立关联,并用“员工记录”数据表的“所在部门”字段作为表达式和“部门信息”数据表的“部门编号”建立关联。 paper51.com 从数据环境中添加要在表单中显示的字段,将“移动记录工具栏”类和“命令按钮工具栏”类实例化,重新命名为Jbadmmr和Jbadmabg。 内容来自论文无忧网 www.paper51.com 添加一个表单属性Oldrecord,并将其值初始化为1。添加两个方法属性Modpre和Modmod,分别用来控制表单的浏览状态和非浏览状态。 copyright paper51.com
命令按钮工具栏中“修改”(Cmdmod)、“删除”(Cmddel)、“取消”(Cmdcancel)、“退出(Cmdexit)按钮的代码可以沿用基类的代码。 copyright paper51.com 命令按钮工具栏中的“查询”(Cmdser)按钮的功能是调用输入查询条件表单,完成表单的查询功能。 copyright paper51.com 命令按钮工具栏中的“打印”(Cmdpri)按钮的功能是将表单中当前记录的加班编号作为参数传递给加班记录报表,并以预览方式查看打印结果。 paper51.com “保存”按钮(Cmdsave)的作用是判断表单中栏的输入情况,如果输入无误,则将缓冲区的数据写入数据表中。 paper51.com 在项目管理器中新建一表单,命名为Jbser,将加班记录数据表添加到表单的数据环境中。 内容来自www.paper51.com 在项目管理器中新建一表单,命名为Jbserout,设置其数据环境为加班记录数据表、员工信息数据表和部门信息数据表。用加班记录数据表的“员工编号”字段作为表达式和员工信息数据表的“员工编号”字段建立关联,用员工信息数据表的“所在部门”字段作为表达式和部门信息数据表的“部门编号”字段建立关联。向表单中添加一个标签控件、一个表格控件和两个按钮控件。 内容来自论文无忧网 www.paper51.com 2.5.5 创建日终处理记录查询结果表单 http://www.paper51.com 日终处理记录查询结果表单,设置其数据环境为日终处理记录本数据表。向表单中添加一个标签控件、一个表格控件、两个按钮控件。标签控件按需进行设置,表格控件用表格控件生成器,按钮控件设置按照与前面类似表单的类似按钮进行设置。 http://www.paper51.com 但是表格有几个很重要的属性,不能设置为其他的值。AutoCenter属性要设为“.T.”,MdiForm属性一定要设置为“.T.”,ShowWindows属性要设置为“1-在顶层表单中”,WindowType属性要设置为“1-模式”表单。 内容来自www.paper51.com 2.6创建系统打印功能 http://www.paper51.com 系统的打印功能主要包括加班记录报表打印、考勤记录按日期报表打印、考勤记录按员工报表打印、员工信息报表打印、日终处理记录报表打印,员工信息标签打印和部门信息标签打印。 内容来自论文无忧网 www.paper51.com 2.6.1 创建员工信息及日终处理记录报表 http://www.paper51.com 在项目管理器中新建一报表,命名为Yginfo,添加其数据环境为员工信息数据表。从数据环境中将要在报表中显示的字段拖放到报表中。 paper51.com 利用报表控件工具栏在表单中添加相应字段的字段名,并利用矩形控件和线条控件制造成一个矩形。 http://www.paper51.com 单击VFP主窗口中“报表”主菜单下“标题/总结”子菜单,在弹出的窗口中选择“标题”复选框,单击确定回到报表设计器,在新增的报表的标题栏输入要报表的标题。同时新建一个域控件,在域控件的表达式中输入“_DATE()”,即可显示报表的打印日期。在页注脚区添加一个域控件,在域控件的表达式中输入“”页码”+ALLTRIM(STR(_PAGENO))”,该表达式先用“_PAGENO”来获取页码数,再用STR()函数将其转化为字符型,最后用ALLTRIM函数将页码中空格去掉。 内容来自www.paper51.com
2.7数据备份模块的设计 内容来自www.paper51.com 有时系统会因为各种原因而崩溃,为了保证数据安全,必须不时的将数据进行备份,数据模块就是为此而设计的。 内容来自论文无忧网 www.paper51.com 2.8系统帮助模块的设计 内容来自论文无忧网 www.paper51.com 说明系统的设计者,版本好,及系统的内存等信息 http://www.paper51.com 2.9系统菜单的设计 http://www.paper51.com 2.9.1 创建系统菜单 内容来自www.paper51.com 在项目管理器中新建一个菜单,命名为Mainmenu,将其作系统的菜单,其主菜单有日常操作、信息管理、信息查询、信息打印、系统功能等,系统的所有功能将通过该菜单来完成。 内容来自论文无忧网 www.paper51.com
菜单结构创建完成,单击VFP主窗口中“文件”主菜单下“保存”菜单将创建好的菜单保存,单击“菜单”主菜单下“生成”子菜单,将菜单生成可执行的菜单文件。 copyright paper51.com 由于菜单是要内嵌在表单中,单击“显示”主菜单下“常规选项”子菜单,选中“顶层菜单”复选框即可。 内容来自论文无忧网 www.paper51.com 2.9.2 创建系统主菜单 内容来自论文无忧网 www.paper51.com 在项目管理器中新建一表单,命名为Kqmain。将所有数据表添加到表单的数据环境,把员工信息数据表、部门信息数据表、考勤记录数据表、加班记录数据表的打开方式设置为独占式,即在数据环境设计器中这些数据表的Execlusive属性设置为“.T.”,向表单中添加一个命令按钮组控件作为系统的工具栏。 内容来自论文无忧网 www.paper51.com
|