1.2系统功能
本系统应能方便地实现员工基本信息与工资的浏览、
注册新员工资料、根据某一关键字查询员工工资、打印工资报表的功能,系统各主要功能的要求如下;(1).浏览所有员工工资情况:包括此员工的一些基本信息,基本工资,加班奖金等。(2).注册新员工:为企业单位新进的员工输入基本资料和工资情况并保存。(3).查询功能:按照员工的身份证号或者其它唯一性信息来查询此员工的工资情况。(4).打印功能:打印员工的资料表、工资单。
1.3数据流图
数据流图是交流信息的工具,它能将对现有系统的认识或目标系统的构想描绘出来,它通常作为分析和设计的工具,能帮助我们完成更详细的设计步骤。数据流图是描绘系统的逻辑模型,以图形的形式表示出来,一下是工资管理系统的数据流图,如图1所示:
图1
工资管理系统的数据流图
2.系统结构设计系统结构设计
系统结构设计的基本目的就是用概括的方式确定系统如何完成预定的任务。具体的说,就是要确定系统由那些功能模块组成,以及这些模块之间的关系。通常,设计出初步的结构后还要进行多次修改,才能使其合理,接着进行数据库的设计。
2.1系统的主要结构
系统的运行是从欢迎界面表单开始,然后出现功能表单,接受用户的操作,操作完毕后用户可以从功能表单退出系统。系统的功能主要分成个模块:员工基本信息以及工资情况浏览、新员工报道注册新账户、根据身份证号查询员工工资、打印工资表和退出系统。每个功能模块又可细化为如下的子功能:(1).浏览每个员工的一些基本情况和工资详细情况,包括基本工资和奖金。(2).查看员工加班情况对应给予相应的奖金。(3).为新的员工输入基本信息并预设基本工资。(4).打印输出工资报表功能。(5).退出功能用来实现退出本管理系统。工资管理系统的功能结构框架图如图2所示:
图2
功能结构框架图
2.2数据库设计
一个数据库包含许多表,表之间又有关联,设计数据库一般需要一下几个步骤:(1).确定所需的表。通过研究前阶段所获得的信息,可将工资管理系统使用2个数据表来表示,分别为员工基本情况工资表、加班情况奖金表、注册新员工表。(2).确定各表的字段。首先分析数据项,分析数据项的目的是找出真正需要放入数据表的数据项,即确定数据表中的字段,然后取出多余的字段或加入遗漏的字段。经过分析,得出工资管理系统的各数据表所需的字段。a.员工基本情况工资表:此表包含了员工的、性别、身份证号、工龄、基本工资。索引字段为身份证号,其为主索引。b.加班情况奖金表:此表用来储存员工的加班情况和所对应的奖金数目。c.注册新员工表:用来储存新员工的基本资料以及预设的基本工资。(3).确定各个表之间的关联关系。a.员工基本情况工资表和加班情况奖金表通过存在一对多的关系。b.员工基本情况工资表和新员工注册表存在一对一的关系。(4).表结构设计。
员工基本情况工资表如图3所示:
图3员工基本情况工资表
加班情况奖金表如图4所示:
图4加班情况奖金表
3.系统详细设计系统详细设计
详细设计阶段的目标是确定应该怎样具体地实现系统的各项要求。设计表单、菜单、报表和程序完成所要求的功能。
3.1系统主表单
系统的主表单是进入系统后用户所见到的第一界面,它将给用户留下一个深刻的印象,所以应尽可能设计得简洁大方。本系统的主表单运行效果如图5所示:
图5欢迎界面
Label1的caption属性为工资管理系统,command1的caption属性为欢迎进入,其clickevent代码为:thisform.release/*关闭当前表单*/doform功能表.scx/*执行功能表表单*/
数据录入(新员工注册)3.2数据录入(新员工注册)
在此,数据录入包括了、身份证号、性别、工龄、基本工资预设等。运行新员工注册表单的效果如图6所示:
图6
新员工注册
1.“添加”为command1,其clickevent代码为:sele1appendblankthisform.refreshthis.enabled=.F./*在新注册员工.dbf中追加thisform.command2.enabled=.T.一条空白记录*/thisform.command3.enabled=.T.2.“保存”为command2,其clickevent代码为:iflen(alltrim(thisform..value))=0orlen(alltrim(thisform.身份证号.value))=0orlen(alltrim(thisform.工龄.value))=0;orlen(alltrim(thisform.性别.value))=0then=messagebox("、身份证号、工龄和性别不能为空!")elsesele2locaallfor身份证号=alltrim(thisform.身份证号.value)ifnoteof()=messagebox("身份证号不能为重复!")sele1elsesele1/*选择工作区1*/usesele2/*选择工作区2*/appeform注册新员工表/*给注册新员工表导入数据*/sele1