企业人事管理系统vb毕业论文

更新时间:2024-05-13 07:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业设计

设计(论文)题目 企业人事管理系统 专 业 (班 级) 计算机及其应用专业

姓 名 (学 号) 俞 志 平

指 导 教 师 胡 东 辉

2008年8月20日

摘 要

21世纪,随着全球的经济的蓬勃发展,企业规模越来越大,企业员工数量急剧增加,有关人员管理的各种信息也成倍增长。面对庞大的信息量,就需要有人事信息管理系统来提高企业管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量。

本系统以此为目标,能够初步的完成企业人员的基本信息、考勤信息、工作业绩、工资信息等方面的管理。本系统的开发顺应了现在单位制度的新要求,有利于推动单位人事信息管理工作走向科学化、规范化,大大提高了人事信息管理的效率和质量。该系统具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。实现过程中使用了面向对象技术、图形用户接口、消息响应、数据库技术、可视化开发等现代软件编制技术,并在界面上参照WINDOWS的标准应用程序,使得系统能够跟WINDOWS达到最佳的兼容性,并且使用户也能够快速的熟悉本系统的使用。

本套软件使用Visual Basic 6.0作为开发工具。通过系统规划、系统分析、系统设计、原代码编辑,后期调试等阶段,力争使系统界面标准、统一、友好、方便。

II

目 录

摘 要 .................................................................................................................... II 目 录.................................................................................................................... III 第1章 绪论.......................................................................................................... 1 1.1 选题背景 ..................................................................................................... 1 1.2 系统目标 ..................................................................................................... 1 1.3 系统的设计思想 ......................................................................................... 2 第2章 系统需求分析.......................................................................................... 4 2.1 系统现状分析 ............................................................................................. 4 2.2 系统功能设计 ............................................................................................. 6 第3章 系统概要规划.......................................................................................... 9 3.1 建立业务模型 ............................................................................................. 9 3.2 数据分析 ................................................................................................... 10 3.3 计算机配置方案 ....................................................................................... 10 第4章 数据库设计............................................................................................ 12 4.1 数据库设计 ............................................................................................... 12 4.2 数据流程图 ............................................................................................... 16 4.3 数据字典 ................................................................................................... 18 第5章 系统详细设计........................................................................................ 20 5.1系统项目文件和公共文件 ........................................................................ 20 5.2 主控制平台的设计和实现 ....................................................................... 23 5.3 用户登录模块 ........................................................................................... 25 5.4系统管理模块 ............................................................................................ 27 5.5基础数据管理模块 .................................................................................... 36 5.6 部门信息管理模块 ................................................................................... 39 5.7 职员信息管理模块 ................................................................................... 42 5.8 考勤信息模块查询 ................................................................................... 46 第6章 结论与展望............................................................................................ 47 第7章 总结........................................................................................................ 48 致 谢.................................................................................................................. 49 参考文献.............................................................................................................. 50

III

第1章 绪论

1.1 选题背景

企业的人事管理系统业务大致经过如下的管理流程:

(1) 新职员进公司以后,经过人事部门的专门人员将新职员的基本信息进行记录,包括职员的家庭信息和工作、教育经历信息,生成人事档安。

(2) 如果新员工尚未分配部门,那么他每个工作日的工作表现由人事处统一管理,直到该员工分配部门后,再归属该部门领导管理。

(3) 由专门的人员管理出勤个退勤信息并按月进行汇总,包括请假、加班和旷工记录等。

(4) 每个月月底或者月初,由该职员的直接领导对起进行考核,填写职员考核表,博爱阔职员的工作业绩和奖惩记录。

(5) 每个月月初,职员考核表与考勤汇总信息上交给人事部门最高管理者,作为年终考核的依据,同时根据这些信息的工资项目,填写工资表,并将工资表送到财务部。

伴随着全球经济一体化的进程,人事管理日趋复杂,人力资源成了现代企业生存和发展的重要因素。企业人事部门传统的档安手工管理繁琐、效率低下而且容易出错,已经无法适应现代企业日益庞大的人力资源队伍的管理需求。随着计算机技术的迅猛发展,办公自动化成为现实,利用计算机实现企业人事管理势在必行。

企业人事管理信息系统,综合运用人事管理相关领域的知识,结合计算机技术,科学的管理企业的人事挡安、绩效考核等信息,具有检索迅速、操作方便、存储量大、保密性高、成本低等特点,可以大大地提高工作效率;同时可以引导企业按照科学的管理理念对人力资源进行规范化的管理。

1.2 系统目标

(1) 尊重传统的企业人事管理制度和文化,满足企业不同管理层的职员和企业普通职员对人事管理内容的不同需求。

(2) 通过人似管理系统的实现,使企业的人事管理更加科学化。 (3) 提供灵活、方便的操作。

(4) 节约人事管理的成本,提高企业人事管理的效率。 (5) 对系统提供必要的权限管理。

(6) 为企业实现整体信息化的其他相关系统提供必要的数据支持。

在中小型企业,人事部门传统的手工管理主要包括人事挡安管理、职员的考勤记录、考勤数据统计、绩效考评以及原始工资核算。

综上所诉,在业务处理上,企业人事管理信息系统应该满足以下需求:

1)业务上满足企业人事管理职能的其本需求,能够方便地进行部门、职员和考评管理。

1

2)为考勤管理系统和工资管理系统提供数据支持。

3)与传统的手工管理相比,要添加基础数据的管理和用户权限的设置。 4)所有的截面都要有信息的浏览功能,同时要保障数据的安全、可靠。 5) 完善的报表功能,可以打印需要的报表。

1.3 系统的设计思想

信息系统好似先进的科学技术和现代管理结合的产物,信息系统建设具有一定的复杂性,它包括系统内容、技术手段和用户需求的复杂性。因此,信息系统的建设哦遵循正确的方法和步骤。目前比较流行和成熟的开发方法有结构化生命周期法、原型法、面向对象的方法和计算机辅助软件工程。

结构化生命周期法(Structure Approach)是基于信息系统产生、发展、成熟和更新的生命周期,用一组规范的步骤、准则和工具进行系统的开发。这种方法源于结构化程序设计思想,首先出现于20世纪70年代,主要包括结构化系统分析和结构化系统设计。目前已提出的各类结构化方法不下几十种,但它们的基本思想和主要特点是相同的。

原型法(Prototyping Approach)始于20世纪80年代,指在投入大量的人力、财力和物力前,在限定的时间内,用最经济的方法 ,开发出一个可实际运行的系统原型,使用户尽早看到未来系统的概貌。在原型系统的运行中,用户发现问题,并提出修改意见,技术人员完善原型,使它逐步满足客户的要求。其最大优势就是开发时间短、见效快、费用少,但是 可能导致系统结构不良,系统效率低下。因此,只适用于规模很小的系统。

面向对象的方法(Object-Oriented Approach)的雏形出现与20世纪80年代中期,它基于面向对象技术面包括面向对象的分析、面向对象的设计和面向对象的编程。对象是最基本的概念,它相当于现实世界的某类事物,也是描述该事物的属性数据和作用于这些数据上的操作。把信息系统处理的问题涉及的领域为问题空间,对象是问题空间的事物的抽象体。

计算机辅助软件工程(Computer-Aided Software Engineering, CASE)是一种先进的开发技术,是系统开发工具与方法的结合,解决了整个系统开发效率的问题。它的目标是为了开发人员提供优化的、集成的、高效的开发工具,使系统分析、设计以及程序实现和维护等各个环节实现自动化。目前具有代表性的昌平是Rational 公司提供的一套面向对象的可视化建模与系统开发工具 Rational Rose。

本系统采用结构化生命周期法进行系统开发,这种方法的基本思想是建立面向对象用户的观念,严格区分工作阶段,自顶向下地完成系统的研制工作,并充分的考虑变化的情况。工作成果文档化、标准化。具体的开发步骤为:

(1) 系统总体规划:对企业环境、目标、现行系统的状况进行初步调查,根据企业发展战略制定系统的目标,分析新系统的信息要求,确定系统的功能和系统规模;同时还要根据系统的环境因素,研究建设新系统的必要性和可能性,并从技术和经济等方面研究其可行性。系统规划有多种方法,本系统采用企业战略规划(BSP),主要包括建立企业业务模型、进行数据分析建立基本数据类、对系统软硬件配置进行总体规划三部分。对整个企业的信息系统来说,系统总体规划阶段要合理划分企业各个子系统,确定子系统的边界。本系统是企业信息系统的一个独立的子系统,故这里只确定系统边界即可,不需要再划分子系统。

2

(2) 系统分析:根据系统规划的方案所确定的范围,对现行系统进行详细调查,描述现行系统的业务流程,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求。提出新系统的逻辑模型,并按照自顶向下的原则,分层次的用开发 工具进行表述,注意不同层次之间的对应关系。

(3) 系统设计:根据系统说明书中规定的功能要求,考虑实际条件,具体设计实现逻辑模型的技术方案,设计新系统的物理模型。这一步包括总体设计和详细设计。总体设计包括得到系统的功能模块结构,数据库设计以及编码设计;详细设计则是依据总体设计的结论,对各个功能模块及子模块的流程进行设计。 (4) 系统实施:在系统设计的基础上,将设计意图转化为可执行的人机信息系统。这一阶段的关键问题是选择合适的编程语言。主要工作有两个:一是进行程序的饿编写与测试,二是进行新旧系统的转换工作。

(5) 系统运行和维护:投入进行后,需要经常进行维护和评价,记录系统的运行情况,根据一定的要求对系统进行必要的修改,评价系统的工作质量和工作效率。

3

第2章 系统需求分析

2.1 系统现状分析

系统分析是根据系统规划阶段建立的业务模型和C-U矩阵,并在现有资料的基础上深入地调查研究,进行功能分析,最终确定新系统的逻辑功能结构。系统分析可以采用业务流程图和数据流程图的方式来表达系统分析的结果。

根据人事管理的业务模型C-U矩阵中得到的数据类,可以画出该系统的工作流程,如图2-1所示:

确定组 高层管 织结构 理人员 组织结果清单 登录部 门信息 部门信息 修改部 门信息 4

新职员 员职 退出 记勤 录 查询出 勤信息 部门 领导 考勤情况清单 工作/教育经历登记表 登记/修改职员工作/教育经历数据 工作/教育经历信息 人事管理人员 家庭基本情况档案 家庭情况登记表 登记/修改职员家庭信息 人事管理人员 基本情况登记表 登记/修改职员基本 信 息 职员基本信息档案 5

部门 领导 工资管 理系统 各类汇总报表 考核信 息汇总

人事管理人员 考核 档案 职员考核表 录入职员 考核数据 修正考 核数据 图2-1人事管理系统业务流程图

2.2 系统功能设计

系统功能设计的主要是建立系统模块结构,在模块化结构系统中,由于各个模块之间基本是相互独立的,所以每个模块都可以独立的被理解、编程、调试和修改,这样就使得复杂的工作变的相对简单、层次清晰,同时模块的相对独立也能有效的防止模块错误的蔓延,从而提高系统的可靠性。

首先依据系统分析阶段得到的数据流程图和数据字典,以数据流程图中的处理功能为出发点,抽取各个主要功能模块能建立模块结构图。本系统的模块结构图如图2-2所示。从数据流程图转化为系统模块结构时,有三个问题需要注意: (1) 模块结构图的层次对应于数据流程图的层次。 (2) 添加模块。抛开具体业务本身,考虑到信息安全的问题,往往要添加登录块,登录成功的用户才允许使用系统;为方便系统管理与维护,要添加系统管理模块,用来管理系统用户的相关信息。

(3) 由人工操作到计算机管理的转化过程中,为了便于计算机处理数据,往往需要实际添加唯一性标识(字符),如对学生信息的处理往往加上学号来标识学生,这个过程称作编码。编码(如学号)需要单独的数据管理界面来管理,因此,一般的应用程序都会有基础数据管理模块,并且,只允许系统管理员使用,用来录入和维护系统编码。

6

人事管理信息系统 用户 登录 系统管 理 基础数 据 职员信息管理 用户管 理 修改密 码 职员基本 信息管理 职员家 庭信息管理

职员工作/ 教育经历 信息管理 报表 部门信息管 理 考勤信息查 询 考评信息管 理 帮助信 息 图2-2系统模块结构图

1.登录模块

登录模块输入用户名和密码,如果用户名正确和密码正确,则进入主控制平台;否则提示用户明确的错误信息。 2.系统管理模块

(1)用户管理子模块:系统管理员进行用户权限设置和用户浏览,可以更改用户密码和用户权限,同时为保障系统健壮,进行输入检验,给予必要的信息提示。 (2) 修改密码子模块:任何用户登录后都可以修改自己的密码 3.系统管理模块

系统管理员浏览职务、民族和文化程度的编号和名称,可以对这些信息进行添加、删除和修改,普通用户不可以使用该功能。 4.部门信息管理模块

系统管理员和人力资源的主管可以进行数据的添加、删除和修改。普通用户只能浏览信息。

5.职员信息管理模块

(1) 职员管理信息子模块:可以设置和查看某个职员的家庭成员、工作/教育经历,可以进行条件查询。系统管理员和人力资源主管可以进行数据添加、删除和修改,普通用户可以修改自己的家庭成员、工作/教育经历信息。

7

(2) 报表子模块:可以提供职员基本信息、职员就职信息和职员通信录报表。 6.考勤信息查询模块

该模块使用考勤管理信息系统的数据,所以用户可以进行条件查询,并提供更新考勤信息的功能。 7.考评信息查询模块

人力资源主管根据职员的工作表现对数据进行更新,其他用户只能按照时间和 进行查询。

8.帮助信息模块

显示系统的开发版本和系统说明信息。

8

第3章 系统概要规划

3.1 建立业务模型

新信息系统的建立是在现行业务基础上经过改建或重建而得到的。因此,在进行新系统的规划、分析和设计工作之前,必须对现行系统做全面系统做全面、充分的调查研究和分析,在此基础上建立企业模型。业务模型是对业务结构和业务活动本质的、概括的认识,可用“业务范围——业务过程——具体业务处理”这样的层次结构来对其进行描述。业务模型的建立可以分为三个阶段 (1) 现行业的调查和分析

(2) 提出一个表示全部业务的模型

(3) 扩展上述模型,使它能表示出各项具体的业务活动,最终确定为业务模型。 根据对人事管理的业务流程的调查和分析,得到一般企业现行的认识管理业务模型如表所示。

表3-1 人事管理业务模型 业务管理 人 事 管 理 职员考勤管理 业务过程 部门信息管理 职业信息管理 具体业务处理 公司成立之初,确定组织结构及部门组成 明确各个部门的任务和功能,并存档 企业部门发生变化时,随时修改部门信息 新职员进入公司后,人事部门的专门人员对新职员的基本信息进行记录 职员的家庭信息和工作、教育经历信息,生成人事档案 当员工所在部门发生变化或产生人事变动时,修改相应的职员基本信息 管理日常出勤和退勤信息 按月进行汇总 职员考评管理 月底(或者月初),职员的直接领导对其进行考核 领导填写职员考核成绩,包括职员的工作业绩和奖惩记录 随时对考评情况进行修正 绩效工资管理 月初,职员考核表与考勤汇总信息上交给人事部门最高管理者,作为年终考核职员的依据 同时根据考核信息和工资项目,填写绩效工资表,保送财务部门

9

3.2 数据分析

在建立了较为完整、稳定的业务模型之后,需要根据业务模型进行数据分析。基本 方法是按照业务过程进行数据分类和组织。数据分类后,进行信息体系结构的设计:即结合业务过程与数据类,建立系统的饿功能/数据类矩阵(C-U矩阵)。数据分类得到的结果将用于系统分析和系统设计阶段。

根据表2-1的业务模型,得到本系统需要建立的数据类有:部门信息数据、职员基本信息数据、职员家庭信息数据、职员经历信息数据、职员考勤信息数据、职员考评细腻系数据和汇总数据。人士管理系统C-U矩阵如表3-2所示。从C-U矩阵中可以看出,本系统中基本信息数据、职员家庭信息数据和职员经历信息数据管理业务功能相对集中,可以作为一个单独的模块。绩效工资管理没有产生数据,因此这一功能可以作为本系统对外的功能,只提供相关数据。此外,考虑到考勤管理对实时性要求较高,工资管理涉及到财务部门,而且业务比较杂,在人事管理信息化的过程中,一般作为两个单独的系统——考勤管理系统和工资管理系统来实现(目前一般的财务系统也包含了工资管理的功能)。本系统不包含考勤管理和工资管理的详细业务,只提供考勤信息的查询,为工资里系统提供必要的数据支持。

表3-2 人事管理系统C-U矩阵 数据 部门信类 息 业务过程 部门信息管理 C 职员信息管理 U 职员考勤管理 U 职员考勤管理 U 绩效工资管理 U 职员基本 信息 C U U U 职员家庭 信息 C 职员经历 信息 C 职员考勤 信息 C U 职员考评 C U 汇总 C C U 注:C(Creat)为产生并使用对应数据类;U(Use)为使用对应数据。

3.3 计算机配置方案

在总体规划的后期,需要建立计算机的配置方案。确立配置方案需要综合考虑的客观约束条件、新系统的处理方式、联机存储量、系统所需要硬件资源以及系统所需软件。本系统针对中小型企业的人事管理业务,同时考虑到开发成本和安全性的问题,因此,该系统设计成一个单用户运行系统。综合考虑以上问题,本系统的配置方案如下:

1. 分布方案

本系统采用客户机/服务器的运行方式,数据集中在存储在服务器上。对服务器硬件要求如下:

(1) 处理器:Inter core2 2.2GHz或更高 (2) 内存: 1024MB后更高 (3) 磁盘空间:500GB或更高

10

普通的PC均作为客户机使用,但为达到较好的显示效果和较高的效率,建议: (1) 处理器:Inter core2 双核系列 (2) 内存: 1024MB。

(3) 网卡: 100/1000bit/s 自适应。

(4) 显卡: SVGA显示适配器,显存512MB或更高。

2. 软件环境

(1) 操作系统:Windows /XP/Vista/7 (2) 数据库: Microsoft SQL Server 2003

11

第4章 数据库设计

系统设计是根据系统分析阶段所提出的新系统的逻辑模型,建立起新系统的物理模型。一般包括总体设计和详细设计两个阶段。总体设计要确定新系统在计算应该由哪些程序模块组成,它们之间用什么方式连接在一起以构成一个最好的系统机内结构,进行数据库的详细设计以及编码设计。详细设计完成输入/输出界面和每个模块详细功能的设计。系统设计阶段是开发管理信息系统的关键环节,因此系统设计要满足系统逻辑模型的功能要求,并以尽可能提高系统的性能为目标。

4.1 数据库设计

数据库设计是在DBMS的支持下,按照应用的要求设计出合理的数据库物理结构。本系统采用SQL Server 2003数据库,根据系统分析和模块设计中得到的功能和相应的数据库存储,本系统数据库的数据项目和数据结构如下: 1. 数据库

(1) 数据库名称:人事信息库 (2) 标识:DBManpower。

2. 数据库表结构

(1)表名:用户信息表。 标识:tbUser

数据来源:用户管理模块的录入。 子段名 UserId UserPassword UserKind 是否主键 是 否 否 字段类型 Char Char 字段长度/B 10 8 20 是否允许为空 否 否 否 用户名 用户密码 用户类型:普通用户,人力资源管理者,系统管理员 备注 (2) 表名:职务编码信息表

标识:tbDuty

数据来源:基础数据管理模块的录入 字段名 Dutyid DutyName 是否主键 是 否 字段类型 Char Char 字段长度/B 8 20 是否允许为空 否 否 备注 职员编码 职务名称 (3)表名:民族编码信息表。 标识:tbNaion

数据来源:基础数据管理模块的录入。 字段名

是否主键 字段类型 字段长度/B 12

是否允许为空 备注

NationId NationName 是否 否 Char Vaechar 3 20 否 否 民族编码 民族名称 (4)表名:文化程度编码信息表。

标识:tbEdu

数据来源:基础数据管理模块的录入。 字段名 EduId EduName 是否主键 是 否 字段类型 Char Varchar

(5)表名:部门信息表。

字段长度/B 2 20 是否允许为空 否 否 文化程度编码 文化程度名称 备注 标识:tbDep。

数据来源:部门信息管理模块的录入。 字段名 DeoId 是否主键 是 字段类型 Char 字段长度/B 8 是否允许为空 否 部门编号:前两位代表一级部门,3、4位代表部门,5、6位代表三级部门,7、8位备用 DepName Describe

(6)表名:职员基本信息表。

否 否 Varchar Varchar 30 100 否 是 部门名称 部门只能描述 备注 标识:tbEmployee

数据来源:职员基本信息管理模块的录入。 字段名 DmpId EmpName Gender Age NationId Birthday PoliticalParty MaritalCon DepId 是否主键 是 否 否 否 否 否 否 否 否 字段类型 char vachar char int char datetime vachar vachar char 字段长度/B 是否允许为空 8 30 2 4 3 8 20 6 8 否 否 是 是 是 是 是 是 是 职业编号 职员姓名 性别 年龄 民族编号 生日 政治面貌 婚姻状况 所在部门编备注 13

号 HireDate EduId FamilyPlace IdCard Email Officephone Homephone Mobile State 否 否 否 否 否 否 否 否 否 datetime char vachar vachar vachar vachar vachar vachar vachar 8 2 20 20 30 20 20 20 20 是 是 是 否 是 是 是 是 否 入职时间 文化程度编号 籍贯 身份证号 电子邮箱 办公电话 家庭电话 手机号码 在职人员;兼职人员;试用人员;离职人员;返聘人员 Residence Postcode DutyId RecorId PELocation EmpIdRecord 否 否 否 否 否 否 vachar vachar char char vachar char 100 10 8 10 50 8 是 是 是 是 是 是 居住地址 邮政编码 职务编号 档案编号 户口所在地 信息录入员编号 (7)表名:职员家庭信息表 标识:tbFamilyMember

数据来源:职员家庭信息管理模块的录入。 字段名 Id EmpId Name Gender Age Relationship WorkingOrg Tel

(8)表名:职员工作/教育经历信息表。

是否主键 是 否 否 否 否 否 否 否 字段类型 char char vachar char int vachar vachar vachar 字段长度/B 是否允许为空 8 8 30 2 4 2 50 20 否 否 否 是 是 是 是 是 家庭成员编号 职员编号 家庭成员姓名 家庭成员性别 家庭成员年龄 与本人关系 所在单位 联系电话 备注 标识:tbWorkExp

14

数据来源:职员工作/教育经历信息管理模块的录入。 字段名 Id EmpId StarTate EndDate WorkOrg Position EduId WorkDescri 是否主键 是 否 否 否 否 否 否 否 字段类型 char char datetime datetime vachar vachar char vachar 字段长度/B 19 8 8 8 50 10 2 300 是否允许为空 否 否 是 是 是 是 是 是 编号 职员编号 开始日期 终止日期 工作单位/就读单位 职务 学历 工作描述/获奖经历 (9)表名:职员考勤信息表

备注 标识:tbWorkRecrod。

数据:考勤信息管理系统中的数据导入本系统。 字段名 char RecordMonth Empld Depld 是否主键 是 是 是 否 字段类型 char char char char int Int Int Int Int Int Int Int Int Int 字段长度/B 是否允许为空 4 2 8 8 4 4 4 4 4 4 4 4 4 4 否 否 否 是 是 是 是 是 是 是 是 是 是 是 考勤年份 考勤月份 职员编号 所在部门编号 DaysPresiMonth 否 LeaveDays AbsentDays VacDays ErrandDays LateDays Ot1Days Ot2Days Ot3Days 否 否 否 否 否 否 否 否 当月全勤天数 请假天数 旷工天数 申请休假天数 出差天数 迟到天数 早退天数 工作日加班天数 周末加班天数 节假日加班天数 (10)表名:职员考评

备注 LeaveEarlyDays 否 标识:tbEvauation

数据来源:职员考评信息管理模块的录入 字段名 是否主键 字段类型 字段长度/B 是否允许为备注 15

空 EvaYear EvaMonth Empld WorkCok WorkDes WorkEva

是 是 是 否 否 否 char Char char Int Varchar varchar 4 2 8 4 400 300 否 否 否 是 是 是 考评年份 考评月份 职员编号 工作难度系数 工作量记录 工作评价 4.2 数据流程图

在人事管理系统中,并非所有的业务都能由计算机来完成,因此设计人员必须围绕着信息处理业务,根据业务流程图,弄清系统需要产生什么样的信息输出,为了得到这样的输出应该对什么数据进行处理,输入数据向输出数据所进行的 转换过程是 什么。这个过程就是进行数据抽取,建立数据流程图的 过程。数据流程图描述了新系统的全部的数据处理逻辑和数据的流动过程,构成了新系统的逻辑模型。

根据业务流程图,去掉其中信息不能完整的和本系统处理以外的环节,并将业务处理比较集中的功能作为一个高层模块,得到本系统高层数据流程图,如3-1所示:

16

高层管 理人员 新 职 员 职员出 /退勤记录 部门 领导

考核档案 录入/修正职员考核数据 考核信息汇总 工资管 理系统 查询出 勤记录 部门 领导 职员信息档案 登录/修改职员基本信息 人事管 理人员 部门信息表 登录/修改 部门信息 图4-1 人事管理高层数据流程图

高层数据流程图中有些功能不可在分,进一步的设计可以作为一个单独的模块。有些功能比较复杂,应该进行进一步的分解,直到每个子模块功能独立,不可再分。对高层数据流程图中职员信息管理功能进行分解,得到职员基本信息管理二级数据流程图,如图3-3所示。

17

基本情况登记表 登记/修改职员基本信职员基 本 信 息 生成 报表 家庭情况登记表 职 新职员 登记/修改 员 职员家庭信息 通 讯 员 工作/教育经历登记表 登记/修改职员工作/教育经历数 据 家庭基本情况档工作/教育经历信息 人事管 理人员 图4-2 职员基本信息管理数据流程图

对比各个数据流程图和业务流程图,从业务过程抽取数据流的过程中,有些

纯人工的操作要删除,如确定组织结构及部门组成;有些环节不属于本系统的处理范围要去掉,如关于工资处理的部分;此外,如果有初期调研没有得到的常规业务要增加到数据流程图中。综合以上各个步骤的分析,最终得到用数据流程图表达的新系统的逻辑功能结构。

4.3 数据字典

数据流程图并不能完整地描述软件需求,因为它没有描述数据流程图上各个

成分的具体内容。实际应用中,数据流程图往往与数据字典是在数据流程图基础上,进一步定义和描述流程图上各个工具,它包括对一切动态数据和静态数据的数据结构和相互关系等的说明,是数据分析和数据管理的重要工具。数据字典中常常包括对数据元素、数据结构、数据流的来源去处、数据存储、处理功能和外

18

部实体的说明。

这里针对各个处理功能,在数据字典中建立对处理功能的说明如下:

(1) 部门信息管理,起功能是设置和管理部门信息。在权限范围内可以进行数据的添加、删除和修改。

(2) 职员信息管理,其功能是设置和管理职员档案信息,包括基本信息管理、家庭成员、信息管理、工作/教育经历信息管理。业务流程源于手工管理阶段的人时档案,同时可以生成职员信息清单供打印。用户在权限范围内可以进行数据的添加、删除和修改。

(3) 考勤信息查询,其功能是提供用户考勤统计值。所有系统用户均可以按照时间和部门查询全部考勤信息,使管理更加透明化。

(4) 考评信息管理,其功能是进行职员的工作绩效考评,同时将数据作为工资管理系统的某些工资项目的计算依据。系统用户在权限范围内可以进行数据的添加、删除和修改。

19

第5章 系统详细设计

5.1系统项目文件和公共文件

1.主题框架

新建一个VB工程的标准EXE工程,建立系统的主体框架。 2.添加模块

添加模块,并将其命名为ModulePeople.bas 3.系统公共变量自定义 如表5-1:

5-1 系统公共变量自定义 变量名称 gUserName gUserKing gEmployeed gLoginSucceeded BLUE WHITE 变量类型 string String String Boolean Const Const 说明 用户名,用来显示状态信息 用户类型,用来设定用户权限 职员编号 登录成功标志 值为:&HFF00000,蓝色 值为:&H80000005,白色 4.Main函数 系统启动函数。处理流程:以对话框模式启动登录窗体,如果启动失败,给出提示信息。

Sub Main()

Dim fLogin As New frmLogin '启动登录窗体 fLogin.Show vbModal '装入并显示模式窗体。 If Not gLoginSucceeded Then

MsgBox \系统启动失败,请重试!\警告\End If Unload fLogin End Sub

5.ConnectString 函数

设置数据库连接字符串函数,本函数无参数,返回值为数据库连接字符串。

Public Function ConnectString() As String

ConnectString = \End Function

6.ExecutSQL函数

设置SQL语句的执行语句,ADO数据集rst和是否允许数据集更新的布尔型变量。处理流程:创建到数据源的连接,根据布尔型变量的实参值,确定执行SQL语句的方式并执行SQL语句。如果SQL语句执行成功,返回值为TRUE,结果存储于形参数据集rst相对应数据集内;否则,返回值为false。

20

Public Function ExecuteSQL(ByVal SQL As String, rst As ADODB.Recordset, _ Optional enableWrite As Boolean = True) As Boolean Dim con As ADODB.Connection Dim sTokens() As String On Error GoTo Execute_Error sTokens = Split(SQL)

Set con = New ADODB.Connection con.Open ConnectString '打开数据库 Set rst = New ADODB.Recordset If enableWrite Then '读写方式

rst.Open Trim$(SQL), con, adOpenStatic, adLockOptimistic Else '只读方式

rst.Open Trim$(SQL), con, adOpenStatic, adLockReadOnly End If

ExecuteSQL = True Exit Function Execute_Error: ExecuteSQL = False Exit Function End Function

7.DBExist函数

判断数据库中是否存在指定记录,参数为将要执行的SQL语句。处理流程:创建到数据源连接,执行SQL语句(不允许数据集更新),检索记录。如果存在指定记录,返回记录数;否则,返回值为0。

Public Function DBExist(ByVal SQL As String) As Integer Dim con As ADODB.Connection Dim sTokens() As String Dim flag As String Dim rst As ADODB.Recordset sTokens = Split(SQL)

Set con = New ADODB.Connection con.Open ConnectString '打开数据库 flag = ExecuteSQL(SQL, rst, False) '判断该记录是否存在

If rst.RecordCount <> 0 Then DBExist = rst.RecordCount Else DBExist = 0 End If

con.Close '关闭数据库 End Function

21

8.txtlsNull 函数

判断输入到TextBox的内容是否为空,参数为TextBox事例。处理流程:如 果TextBox文件为空,返回值为True,否则,返回值为False,并设置该TextBox获得焦点,背景色设置为蓝色。

Public Function txtIsNull(txt As TextBox) As Boolean If Trim(txt.Text) = \ txtIsNull = True txt.SetFocus txt.BackColor = BLUE Else

txtIsNull = False End If End Function

9.lsOverStringLen 函数

判断输入内容是否超过给定值,,参数为需要处理的字符串和给顶长度值。处 理流程:判断字符串长度不超过给定时返回值为True,否则,返回值为false。 Public Function IsOverStringLen(ByVal str As String, lenthText As Integer) As Boolean

If Len(Trim(str)) > lenthText Then IsOverStringLen = True Else

IsOverStringLen = False End If End Function

10.viewData 函数

在Datagrid中显示数据,参数为SQL语句和将要显示数据的Datagrid。处理流程:执行SQL语句,当检索到的记录数不为0时,将相应的数据集设置为Datagrid数据源,并返回记录数,否则给出提示信息“还没有数据!”,返回0。

Public Function viewData(ByVal txtSQL As String, dgAll As DataGrid) As Integer Dim rstData As ADODB.Recordset Dim result As String '检索需要的信息

result = ExecuteSQL(txtSQL, rstData, False) '设置datagrid的数据源

If rstData.RecordCount <> 0 Then Set dgAll.DataSource = rstData viewData = rstData.RecordCount Else

MsgBox \还没有数据!\警告\ viewData = 0 End If End Function

22

5.2 主控制平台的设计和实现

1.总体布局

系统主控平台才用简单、直观的布局,通过菜单实现对系统各个模块的调用和对各个窗体的显示。设置状态栏用来显示当前日期、时间和当前用户信息。 2.主控制平台的界面效果(如图5-1所示)

3.窗体和控件特殊属性(见表5-2)

表5-2 窗体和控件特殊属性 控件名称 frmMain Lb1 控件属性 StratUpPosition BoderStyle 设置 2 0 4.程序设计

(1)添加菜单和状态栏:根据总体设计中对各个模块的设计,使用菜单编辑器和StatusBar控件创建系统菜单和状态栏。菜单项目有: 1)系统管理→用户管理、修改密码。 2)基础数据管理。 3)部门信息管理。

4)职员信息管理→职员信息管理、报表→职员基本信息报表、职员就职信息报表、职员通讯录。 5)考勤信息查询。 6)考评信息管理。

23

7)帮助。 8)退出。

(2)窗体加载事件。 处理流程:调用初始化过程initial,设置系统权限:当用户不是系统管理员时,“用户管理”和“基础数据管理”菜单不可使用。

Private Sub Form_Load()

Call initial '调用初始化过程 Call purview '设置部分权限 End Sub

(3)初始化过程initial。

处理流程:加载背景图片,设置状态栏。

Private Sub initial() '加载背景图片 Dim strpath As String strpath = \

frmMain.Picture = LoadPicture(App.Path & strpath) '设置状态栏显示系统信息 StatusBarUser.Panels.Add (1)

StatusBarUser.Panels.Item(1).Width = 7201.13 StatusBarUser.Panels.Add (2) StatusBarUser.Panels.Add (3)

StatusBarUser.Panels.Item(1).Style = sbrText StatusBarUser.Panels.Item(2).Style = sbrDate StatusBarUser.Panels.Item(3).Style = sbrTime

StatusBarUser.Panels.Item(1).Text = \当前系统用户是\,您是\End Sub

(4)权限设置函数purview:

处理流程:判断当前用户类型,设置部分权限。

Private Sub purview()

Select Case gUserKind '设置系统权限 Case \系统管理员\

Me.subMenuClient.Enabled = True Me.menuDataMange.Enabled = True Case Else

Me.subMenuClient.Enabled = False Me.menuDataMange.Enabled = False End Select End Sub

(5)单击各个菜单或子菜单时显示相应的窗体。

24

基本语法是:From.Show。各个子菜单与窗体的对应关系如表5-3所示

表5-3 菜单编辑器

菜单名称 subMenuClient subMenuPassword menuDataMange menuDept menuEmloyee subMenuEmployee subRpt subRptBasic subPostion subRptRecord menuQuery menuValue help exit menuSystem 标题 用户管理 修改密码 基础数据管理 部门信息管理 职员信息管理 职员信息管理 报表 基本信息 入职信息 通讯录 考勤信息查询 考评信息查询 帮助 退出 系统管理 (6)退出系统。

处理流程:询问用户是否要以其他用户名登录,如果用户选择“确定”,卸载当前窗体并加载登录对话框;否则卸载全部窗体。

str = MsgBox(\是否要改变用户重新登录?\删除当前记录\ If str = vbOK Then Unload Me frmLogin.Show

frmLogin.txtPassword = \ frmLogin.txtUserName = \ Else End End If End Sub

5.3 用户登录模块

1.登录模块的IPO图 输入:用户名和密码 处理:

(1)登录窗体启动

25

(2)输入用户名和密码。

(3)如果用户名或密码为空,处理终止,并进行错误信息提示。

(4)以输入的用户名为关键字,检索用户信息表(tbUser)的用户名和密码字段。 (5)通过检索结果判断该用户名是否存在,如果用户名不存在,处理终止,并进行错误信息提示。

(6)如果用户名存在,比较检索到的密码字段与输入的密码是否相等。如果不相等则处理终止,并进行错误信息提示。 (7)如果输入的密码正确,将该用户名和用户类型分别保存在全局变量gUserName和gUserKind中。 (8)进入主控制台。 输出;主控制平台。

2.登录模块的窗体设计(如图5-2所示)

图5-2 用户登录模块的窗体效果

3.件的特殊属性设计(表5-4所示)

表5-4 窗体和控件特殊属性 控件名称 frmLogin

控件属性 类型 设置 登录对话框 3.程序设计

(1)用户身份验证 处理流程(这里允许职员设置自己的用户名,但考虑到使用者的习惯和系统安全,不牵制使用职员的姓名作为用户名,可以通过系统管理员进行这个个性化用户名设置,因此这里不使用ComboBox控件): 1) 开始用户身份验证。 2) 检索用户名是否为空

3) 若为空则给出错误信息提示,设置TextBox获得焦点,处理终止。 4) 以输入的用户名为关键字,检索用户信息表的用户名和秘密那字段。 5) 如果不存在该用户名,处理终止,并提示错误信息。

6) 比较输入的密码与从数据库中检索出的密码字段值是否相等,如果不相等,设置密码TextBox获得焦点,处理终止,并提示错误信息。

7) 进入主控制台并将用户名和用户类型赋给全局变量gUserName和gUserKind。

Private Sub cmdOK_Click() Dim txtSQL As String

Dim rstLogin As ADODB.Recordset

26

Dim flag As String gUserName = \gUserKind = \

If Trim(txtUserName.Text = \

MsgBox \用户名不能为空!\警告\ txtUserName.SetFocus Else

txtSQL = \& \

flag = ExecuteSQL(txtSQL, rstLogin, False) If rstLogin.EOF = True Then

MsgBox \没有这个用户,请重新输入!\vbOKOnly + vbExclamation, \警告\

txtUserName.SetFocus Else

If Trim(rstLogin.Fields(1)) = Trim(txtPassword.Text) Then gUserName = Trim(txtUserName.Text) gUserKind = Trim(rstLogin.Fields(2)) gLoginSucceeded = True rstLogin.Close Me.Hide

frmMain.Show Else

MsgBox \密码不正确,请重新输入!\vbOKOnly + vbExclamation, \警告\

txtPassword.SetFocus txtPassword.Text = \ End If End If End If

miCount = miCount + 1 If miCount = 3 Then Me.Hide Exit Sub End If End Sub (2)“取消”按钮:卸载当前窗体(Unload Me),退出此次登录。

5.4系统管理模块

系统管理模块包括用户管理和修改密码两个子模块。用户管理模块只有系统管理员可以使用,一般用户不能使用,修改密码模块面向任何用户,提供修改登录者密码的功能。

27

1. 用户管理子模块

(1) 用户管理子模块的IPO图。 输入:用户名、密码和用户类型。 处理流程:

1) 仅当用户类型为系统管理员时可用。 2) 用户信息管理窗体启动。

3) 从用户信息表(tbUser)中读取全部记录并显示在表格控件dgUser中。 4) 根据系统管理员的选择(添加、修改和删除)进行相应处理,具体如步骤5)~7)

5) 添加操作:

?输入用户名、密码和用户类型。

?从用户信息表(tbUser)中检查是否有相应的用户名。

?如果用户不存在,根据数据库中对应字段的定义,检验输入值是否合法,如果

输入有错误则进行错误信息提示,添加处理终止。

?如果输入正确,执行SQL语句,向用户信息表(tbUser)中插入一条记录。 6) 修改操作:

? 通过以下两种方式或得用户名、密码和用户类型:手动输入或者在表格中单击任意单元格,窗体的控件中自动显示被点击记录的用户名、密码和用户类类型。

? 从用户信息表(tbUser)中检查是否有相应的用户名。

? 如果用户名存在,根据数据库中对应字段的定义,检验输入值是否合法,如果输入有错误则进行错误信息提示,修改处理终止。

? 如果输入正确,执行SQL语句,更新用户信息表(tbUser)中应该用户名所对应的记录值。

? 提示用户修改成功信息,刷新界面表格中的数据。 7) 删除操作:

? 通过以下两种获得用户名、密码和用户类型:手动输入或者在表格中单击任

意单元格,窗体的文本框中自动显示被点击记录的用户名、密码和用户类型。 ? 从用户信息表(tbUser)中检查是否有相应的用户名。 ? 如果用户名不存在则进行错误信息提示,处理终止。

? 如果用户名存在,执行SQL语句,删除用户信息表(tbUser)中该用户名所

对应的记录。

? 提示用户删除成功信息,刷新界面表格中的数据。 输出:对用户信息表(tbUser)进行更新。

(2) 用户管理子模块的窗体设计(如图5-3所示)。 (3) 窗体和控件特殊属性设计(见表5-5)

表5-5 窗体和控件特殊属性 控件名称 cboUser 控件属性 Style 设置值 2 (4) 窗体设计。

1)窗体公共变量定义(见表5-6所示)

表5-6窗体公共变量定义

28

变量名称 TxtSQL txtTest rstUser results result str

图5-3 用户管理子模块的窗体效果

变量类型 string string ADODB.Rercordset Boolean string string 说明 更新操作SQL语句 检验数据库中是否存在记录的SQL语句 用户信息数据集 ExexuteSQL ViewData MsgBox 2)窗体加载事件:

处理流程:初始化用户类型列表、调查viewDataUser函数显示表格数据。

Private Sub Form_Load()

cboUser.AddItem (\系统管理员\ cboUser.AddItem (\人力资源主管\ cboUser.AddItem (\普通用户\ Call viewDataUser End Sub

3)记录:每次只能添加一条记录,取值于界面上各控件的内容。 处理流程:

? 顺序检验输入的用户名和密码不能为空,且不能超过数据库中允许的最大

29

长度,否则,处理终止,并给出错误信息,设置相应的TextBox背景变色并获得焦点。

? 检验次用户名在用户信表中是否存在,如果存在,并给出错误信息。 ? 向数据库中添加记录,并提示用户添加成功。 ? 刷新表格中数据。

Private Sub cmdDel_Click()

If txtIsNull(txtUser) Then '检验删除记录是否选定

MsgBox \请选择删除的记录!\警告\ Exit Sub End If

'提示警告信息

str = MsgBox(\是否删除当前记录?\删除当前记录\If str = vbOK Then

txtTest = \UserId from tbUser where UserId ='\+ Trim(txtUser.Text) + \

'检验此用户名是否已经存在 If DBExist(txtTest) = 0 Then

MsgBox \无此用户!\警告\ txtUser.BackColor = BLUE Else

txtSQL = \from tbUser where UserId='\+ Trim(txtUser.Text) + \

results = ExecuteSQL(txtSQL, rstUser, True)

MsgBox \删除成功!\警告\ txtUser.Text = \

txtPassword.Text = \ Call viewDataUser End If End If End Sub

4)修改记录:可以修改用户密码和用户类型,用来重新设置用户权限。 Private Sub cmdModify_Click()

If txtIsNull(txtUser) Then '检验修改记录是否选定

MsgBox \请选择需要修改的记录!\警告\

Exit Sub End If

str = MsgBox(\是否修改当前记录?\删除当前记录\提示警告信息

If str = vbOK Then

txtTest = \UserId from tbUser where UserId ='\+

30

Trim(txtUser.Text) + \

'检验此用户名是否已经存在 If DBExist(txtTest) = 0 Then MsgBox \无此用户,请添加此用户或重新输入用户名!\vbOKOnly + vbExclamation, \警告\

txtUser.BackColor = BLUE Else If IsOverStringLen(txtPassword.Text, 8) Or Trim(txtPassword.Text) = \ MsgBox \密码不能为空且不能超过8位!\vbOKOnly + vbExclamation, \警告\

txtPassword.SetFocus

txtPassword.Bac?Color = BLUE Exit Sub End If

txtSQL = \ txtSQL = txtSQL + \UserPassword = '\+ Trim(txtPassword.Text) txtSQL = txtSQL + \

txtSQL = txtSQL + \where UserId='\+ Trim(txtUser.Text) + \ results = ExecuteSQL(txtSQL, rstUser, True)

MsgBox \修改成功!\警告\ Call viewDataUser End If End If End Sub

5)记录:删除指定记录,关键字取决于用户名TextBox。 处理流程:

? 判断窗体上的用户文本框内容是否为空,如果为空,给出错误信息,处理

终止。

? 提示警告信息:“是否删除当前记录?”,如果不存在,处理终止,并给于

提示信息,用这种方式使用户确认输入的信息无误。 ? 执行SQL语句,删除指定用户名的记录。 ? 提示删除成功信息。

? 清空各个TextBox,刷新表格数据。

6)记录:可以修改用户密码和用户类型,用户重新设置用户权限。关键字取值于用户名TextBox。 处理流程:

? 判断窗体上的用户名TextBox内容是否为空,如果为空,给出错误信息,

处理终止。 ? 提示警告信息:“是否修改当前记录?”,如果选择“确定”,进行以下处

理。

? 检验次用户名在用户信息表中是否存在,如果不 存在处理终止,并给出错

误信息,并将用户名TextBox背景色设置为深蓝色。

31

? 利用公共函数检验输入的密码是否合法(不能为空且位数不能超过数据库

中允许最大值),如果不合法,处理终止,设置密码TextBox获得焦点,背景色深蓝色。

? 生成并执行SQL语句,更新用户信息表的密码字段。 ? 提示修改成功信息,刷新表格数据。 Private Sub cmdModify_Click()

If txtIsNull(txtUser) Then '检验修改记录是否选定

MsgBox \请选择需要修改的记录!\警告\

Exit Sub End If

str = MsgBox(\是否修改当前记录?\删除当前记录\提示警告信息

If str = vbOK Then

txtTest = \UserId from tbUser where UserId ='\+ Trim(txtUser.Text) + \

'检验此用户名是否已经存在 If DBExist(txtTest) = 0 Then MsgBox \无此用户,请添加此用户或重新输入用户名!\vbOKOnly + vbExclamation, \警告\

txtUser.BackColor = BLUE Else If IsOverStringLen(txtPassword.Text, 8) Or Trim(txtPassword.Text) = \ MsgBox \密码不能为空且不能超过8位!\vbOKOnly + vbExclamation, \警告\

txtPassword.SetFocus

txtPassword.BackColor = BLUE Exit Sub End If

txtSQL = \ txtSQL = txtSQL + \UserPassword = '\+ Trim(txtPassword.Text) txtSQL = txtSQL + \

txtSQL = txtSQL + \where UserId='\+ Trim(txtUser.Text) + \ results = ExecuteSQL(txtSQL, rstUser, True)

MsgBox \修改成功!\警告\ Call viewDataUser End If End If End Sub

7)Datagrid的RowColChang事件

本系统中利用TextBox来更新数据库,重要的一点就是可以随意选择表格中而

32

需要修改的记录而不需要复杂的输入。当点击Datagrid表格中的任意记录时,各个TextBox需要显示该记录的对应信息,可以使用Datagrid的RowColChang事件完成次功能:

Private Sub dgUser_RowColChange(LastRow As Variant, ByVal LastCol As Integer)

If result <> 0 Then

txtUser.Text = dgUser.Columns(0).Text txtPassword.Text = dgUser.Columns(1).Text cboUser.Text = dgUser.Columns(2).Text End If End Sub

8)viewDataUser函数:将信息数据在Datagrid表格中显示。 处理流程:生成SQL语句(检索用户信息表中的全部数据),调用viewData函数。

Private Sub viewDataUser() '检索所有的用户信息 txtSQL = \UserId as 用户名,UserPassword as 用户密码,UserKind as 用户类型 \

txtSQL = txtSQL + \result = viewData(txtSQL, dgUser) End Sub

9)当TextBox内容改变时将TextBox背景色恢复为白色代码(如表5-7所示)

表5-7 恢复TextBox背景色代码设计 TextBox控件 txtPassword txtUser

事件 Chang Chang 代码 txtPassword.BackColor=WHITE txtUser.BackColor=WHITE 10)“退出”按钮:卸载窗体,语法为Unload ME。 2.修改密码子模块

(1)修改密码子模块的IPO图。 输入:原密码、新密码和确认密码 处理流程:

1)修改密码窗体启动,输入原密码、新密码和确认密码。

2)从用户信息表(tbUser)检查该用户的原密码是否与输入的原密码相同。 3)如果不同则进行信息提示,处理中止。

4)如果相同,检验新密码是否为空,如果为空则尽心信息提示,处理终止。 5)如果新密码非空,检验输入的确认密码和新密码是否相同。 6)如果不同则进行信息提示,处理终止。

7)更新用户信息(tbUser)中的用户密码字段。 输出::对用用户信息表(tbUser)的密码字段进行修改。 (2)修改密码子模块的窗体设计 (见图5-8)

33

图5-4 修改密码子模块窗体效果图

(3)窗体和控件特殊属性设计(见表5-8)

表5-8 窗体和控件特殊属性 控件名称 frmPassword

控件属性 类型 设置 登录对话框 (4)程序设计如下:

1)窗体公共变量定义(见表5-9)

表5-9 窗体公共变量定义 变量名称 txtSQL rstPass results 变量类型 String ADODB.Rexordset Boolean 说明 更新操作SQL语句 用户信息数据集 ExecuteSQL函数返回值 2)“确定”按钮:更新用户密码。 处理流程:

? 以用户名为关键字,检索用户信息表中与用户名对应的密码字段(用户名已

在登录成功时被赋给Public变量gUserName)。

? 将输入的原密码与检索到的密码相比较:如果不相等,提示用户“原密码不

正确!”,设置原密码TextBox获得焦点,背景色为蓝色,处理终止。

? 如果相等,检验新密码TextBox不能为空且值不能超过用户信息表的用户密

码字段的允许长度,否则提示用户相应信息,设置新密码TextBox获得焦点,背景色为蓝色,处理终止。

? 调用公共函数txtNull检验确认密码TextBox不能为空,否则提示用户相应

的信息,处理终止。

? 更新用户表中的用户密码字段。 Private Sub cmdOK_Click()

Dim strPass As String '检索该用户输入的原密码是否正确

txtSQL = \\

results = ExecuteSQL(txtSQL, rstPass, False) strPass = rstPass.Fields(0)

If StrComp(Trim(strPass), Trim(txtOldPass.Text)) <> 0 Then MsgBox \原密码不正确!\警告\ Me.txtOldPass.SetFocus

34

txtOldPass.BackColor = BLUE Exit Sub Else

'检验新密码不能为空

If txtIsNull(txtNewPass) Then MsgBox \请输入新密码,密码不能为空!\vbOKOnly + vbExclamation, \警告\

Exit Sub Else

If IsOverStringLen(txtNewPass.Text, 8) Then

MsgBox \密码不能超过8位!\警告\

txtNewPass.SetFocus

txtNewPass.BackColor = BLUE Exit Sub End If End If

'密码必须确认

If txtIsNull(txtPasswordSure) Then

MsgBox \请确认新密码!\警告\ Exit Sub End If

'检验两次输入的新密码是否

If StrComp(Trim(txtPasswordSure.Text), Trim(txtNewPass.Text)) <> 0 Then

MsgBox \两次输入密码不一致!\警告\

txtPasswordSure.SetFocus

txtPasswordSure.BackColor = BLUE Exit Sub End If

'更新数据库 txtSQL = \tbUser set UserPassword = '\+ Trim(txtNewPass.Text) txtSQL = txtSQL + \ results = ExecuteSQL(txtSQL, rstPass, True)

MsgBox \密码修改成功!\警告\ Unload Me End If End Sub

2)当TextBox内容改变时将TextBox背景色恢复为白色 3)“取消”按钮:卸载本窗体,语法为Unload ME

35

5.5基础数据管理模块

1. 基础数据管理模块IPO图

输入:职务、民族或者文化程度的编号和名称。 处理流程:

(1)当用户类型为系统管理员时该彩单可用。 (2)基础数据管理窗体启动。 (3)从职务编码信息表(tbDuty)中读取全部记录,显示在表格控件dgBasicData中。

(4)当鼠标单击标签,标签改变时,从相应的数据库表中读取全部记录,显示在表格中。

(5)根据系统管理员的选择(添加、修改和删除)进行相应处理,具体步骤(6)~(8)。

(6)添加操作:

? 输入编号和名称

以编号为关键字,检索与标签对应的职务(tbDuty)或民族(tbNation)或文化程度(tbEdu)编码信息表中是否存在该记录。

? 如果记录已经存在则进行错误信息提示,添加处理终止

? 如果记录不存在,根据数据库中对应字段的定义,检验输入值是否合法,如

果输入有错误 则进行错误信息提示,添加处理终止。

? 如果输入正确,执行SQL语句,向标签对应的数据库中插入记录 ? 提示用户添加成功,刷新窗体表格中的数据 (7)修改操作:

? 通过以下两种方式或得修改记录:手动输入或者在表格单击任意单元格,窗

体的文本框中自动显示被点击记录的编号和名称。

? 以编号为关键字,检验与标签对用的职务(tbDuty)或民族(tbNation)或

文化程度(tbEdu)编码信息表中是否存在该记录。 ? 如果记录不存在则进行错误信息提示,处理终止。

? 如果记录存在,根据数据库中对应字段的定义,检验输入值是否合法,如果

输入有错误,则进行错误信息提示,修改处理终止。

? 如果输入正确,执行SQL语句,更新与标签对应的数据库表。 ? 提示用户修改成功信息,刷新截面表格中的数据。 (8)删除操作

? 通过以下两种方式或得修改记录:手动输入或者在表格单击任意单元格,窗

体的文本框中自动显示被点击记录的编号和名称。

? 以编号为关键字,检验与标签对用的职务(tbDuty)或民族(tbNation)或

文化程度(tbEdu)编码信息表中是否存在该记录。 ? 如果记录不存在则进行错误信息提示,处理终止。

? 如果记录存在,检验职员基本信息表中是否存在该编码。

? 如果存在该编码,为保证数据完整性,不予删除,并提示错误信息;否则根

据当前标签,更新对应的职务(tbDuty)或民族(tbNation)或文化程度(tbEdu)编码信息表。

36

? 提示用户删除成功信息,刷新截面表格中的数据, 输出:据选择的标签分别对职务bDuty)或民族(tbNation)或文化程度(tbEdu)编码信息表进行更新。

2. 基础数据管理模块的窗体设计(如图5-5所示)

图5-5 基础数据管理模块的窗体效果

3. 程序设计

(1) 窗体加载。

处理流程:置中窗体;设置编号和名称标签显示职务信息;调用viewData函数使表格中显示职务信息表全部数据。 Private Sub Form_Load() '置中窗体

Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 2

lblId.Caption = \职务编号\ lblName.Caption = \职务名称\

'窗体第一次加载,表格中显示职务信息 txtSQL = \DutyId as 职务编号,DutyName as 职务名称 from tbDuty order by DutyId\

result = viewData(txtSQL, dgBasicData) End Sub

(2) 删除记录,关键字取决于* *编号TextBox。 处理流程:

1)输入值的合法性检验:调用公共函数txtIsNull检验编号文本框不能为空,否则处理终止。

37

本文来源:https://www.bwwdw.com/article/rsy7.html

Top