目录
一、可行性分析...................................... 5
二、系统分析部分.................................... 9 1)业务流程图.................................. 9
2)数据流程图.................................. 9
3)功能分析图 ..................................10
4)数据字典 ...................................11
5)数据加工处理的描述 ...........................11
6)管理信息系统流程设想图(新系统模型).............13
三、系统设计部分 ...................................14
1)功能结构图设计...............................14
2)新系统信息处理流程设计........................14
四、系统实施部分 ....................................16 1)程序框图....................................16 2)源程序.....................................18
5)系统使用说明书...............................31
五、附录或参考资料...................................32
工资管理信息系统课程设计
引 言
本课题将设计一个应用与事业单位的工资管理系统。随着国民经济的急速发展,事业单位的工资应用体系也变的越来越复杂,单位中,部门、职务、工作效益等与工资管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但要消耗大量的人力和物力,而且极容易出错。
该系统的具体任务就是设计一个事业单位工资的数据库管理系统,由计算机来代替人工执行一系列工作,诸如增加员工添加删除、工资设置、修改、查询、统计等操作。这样就使财务人员可以快捷高效地完成工资管理任务。
1 .应用背景
人类社会正从工业时代阔步迈向信息时代,人们越来越重视信息技术对传统产业的改造,信息化水平的高低已经成为衡量一个单位现代化水平的高低。在这种环境下,传统的手工工资管理已经远远落后于信息化管理。
随着计算机技术的飞速发展,计算机在信息管理中应用的普及,利用计算机实现人事工资的管理势在必行。利用计算机管理工资信息,是适应现代化的要求、推动管理制度走向科学化、规范化的必要条件;工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,利用计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点. 例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资管理的效率, 也是管理科学化、正规化, 与世界接轨的重要条件。
该系统的具体任务就是设计一个工资的数据库管理系统,由计算机来代替人工执行一系列工作,诸如增加员工添加删除、工资设置、统计、发放、修改、查询等操作。这样就使财务人员可以快捷高效地完成工资管理任务。
设计的指导思想是一切为用户着想,界面简洁,操作尽量简单明了。计算机的资源是受到限制的,因此充分利用了Visual Basic的功能,在尽可能地减少对系统资源的占用的前提下,设计出功能丰富的软件。
2. 课题研发的目的与意义
工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生错误。手工进行工资发放工作,需要反复地进行抄写、计算,不仅花费财务人员大量的时间,而且往往由于抄写不慎,出现张冠李戴,或者由于计算的疏忽,出现工资发放错误的现象。同时工资的发放具有较强的时间限制,必须严格按照单位规定的时间完成计算和发放工作。
正是工资管理的这种重复性、规律性、时间性,使得工资管理计算机化成为可能。计算机进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而且还可以利用工资数据库对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,使会计人员从繁重的手工制作中解脱出来, 提高了会计信息的及时性、正确性、全面性。大大提高了管理水平和管理效率,产生了巨大的经济效益和社会效益。
信息时代计算机技术的发展给整个社会的生活、工作方式带来了一次革命。传统意义上的工资管理的形式和内涵都在发生着本质的变化。以前那种一个会计、一个账本的工资管理形式已经可以被计算机及财务软件所代替。计算机以及相关软件的介入使得工资的管理变得科学化、透明化、简单化。因此,根据不同单位的自身特点开发适合自己的工资管理软件是显得十分必要的。
工资管理软件隶属于财务软件(又称会计软件)。中国的财务软件起步于70年代末,经历了从自主开发、委托定点开发向标准化、通用化、商品化、专业化发展几个阶段。三十年来财务软件市场规模化、产业化发展迅速。
近年来随着市场竞争的日趋激烈,财务软件模式转向集中式管理;一些行政单位为适应财政预算管理的变革,开始对财务实行集中式管理。可以说集中式财务管理在某些单位来说是一种管理发展的趋势。这种管理模式在以前因网络、通讯技术的限制而无法实施,随着互联网技术的发展,基于网络计算,支持集中管理模式的财务软件开始出现在市场,并越来越受到希望采取集中财务管理模式的单位所喜爱。所以,在我国各级事业单位中他们更需要有一个方便、快捷、安全、透明的工资管理软件。
3. 信息系统介绍
管理信息系统就是我们常说的MIS (Management Information System ),在强调管理,
强调信息的现代社会中它越来越得到普及。MIS 是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交 织的系统。
它是一个不断发展的新型学科。管理信息系统的定义随着计算机技术和通讯技术的进步也在不断更新。在现阶段普遍认为,管理信息系统是一个由人和计算机或其他信息处理手段组成的并用于管理信息的系统。管理信息系统能进行信息收集、传输、加工、保存、维护和使用。它能实测国民经济部门或不同单位的各种运行情况,能利用过去的数据预测未来,能从全局出发辅助决策,能利用信息控制国民经济部门或不同单位的活动,并帮助实现其规划目标。管理信息系统是一门综合了管理科学、系统理论、计算机科学的系统性边缘学科。
4. 管理信息系统概述
20世纪,随着全球经济的蓬勃发展,众多经济学家纷纷提出了新的管理理论。20世纪50年代,西蒙提出管理依赖于信息和决策的思想。同时期的维纳发表了控制论,他认为管理是一个控制过程。1958年,盖尔写到:“管理将以较低的成本得到及时准确的信息,做到较好的控制。”这个时期,计算机开始用于会计工作,出现数据处理一词。
1970年,Walter T.Kennevan给刚刚出现的管理信息系统一词下了一个定义:“以口头或书面的形式,在合适的时间向经理、职员以及外界人员提供过去的、现在的、预测未来的有关企业内部及其环境的信息,以帮助他们进行决策。”在这个定义里强调了用信息支持决策,但并没有强调应用模型,没有提到计算机的应用。
1985年,管理信息系统的创始人,明尼苏达大学的管理学教授Gordon B.Davis给了管理信息系统一个较完整的定义,即“管理信息系统是一个利用计算机软硬件资源,手工作业,分析、计划、控制和决策模型以及数据库的人-机系统。它能提供信息支持企业或组织的运行、管理和决策功能。”这个定义全面地说明了管理信息系统的目标、功能和组成,而且反映了管理信息系统在当时达到的水平。
管理信息系统起初应用于最基础的工作,如打印报表、计算工资、人事管理等,进而发展到企业财务管理、库存管理等单项业务管理,这属于电子数据处理(EDP ,Electronic Data Processing)系统。当建立了企业数据库,有了计算机网络从而达到数据共享后,从系
统观点出发,实施全局规划和设计信息系统时,就达到管理信息系统的阶段。随着计算机技术的进步和人们对系统的需求进一步提高,人们更加强调管理信息系统能否支持企业高层领导的决策这一功能,更侧重于企业外部信息的收集、综合数据库、模型库、方法库和其他人工智能工具能否直接面向决策者,这是决策支持系统(DSS ,Decision Support System )的任务。
近20年间,国外大公司出现了3种变化:
● 抓管理着重于建立MIS 系统,使管理技术走向成熟。
● 信息是决策的依据,MIS 随时为经理们提供信息服务。
● 经理通过MIS 使其经营计划和具体的业务活动联系在一起。
由于以上的变化,MIS 应用得到了迅速发展。不仅大中型企业普遍建立了自己的MIS ,一些中小企业也不例外,普遍建立了公用数据网络,尤其是近年来Internet 的飞速发展,Intranet 技术得到广泛应用,为企业MIS 提供了良好的支持环境。从国际技术发展趋势看,20世纪90年代出现了几种全新的管理技术,相应的MIS 开发技术在20世纪90年代也有了新的发展。
1. 信息综合集成
MIS 在计算机网络和分布式数据库管理系统的支持下,与企业其他的系统,如OA 、CAD 、CAM 、CAPP 、在线数据采集系统集成,形成制造业的计算机集成制造系统,或者一般企事业单位的综合信息系统(CIIS ,Computer Integrated Information System ),实现办公、管理、计算、设计、控制、监测,以及决策等多功能综合。
2. Internet/Intranet
因特网(Internet )已经被广大用户所熟悉,而以因特网技术为基础的企业内部信息系统——Intranet 既可以通过接入的方式成为因特网的一部分,也可以自成体系,实现企业内部的管理。它可以克服传统MIS 存在的系统封闭、用户界面形式不统一、多种软件版本并存、维护移植困难等问题,为新一代企业MIS 的开发注入了强劲的活力。
3. 先进的软件开发工具
为了缩短软件开发的周期,提高软件的质量和标准化水平以及软件的可维护性,越来越多的软件开发公司使用先进的软件开发工具或计算机辅助软件工程工具(CASE ,
Computer-Aided Software Engineering),如各种可视化建模工具、系统分析和设计工具、软件质量测试工具、软件文档建立和管理工具等。还有各种MIS 开发平台和代码生成
工具,这些工具极大地方便了MIS 的开发。
4. 多媒体技术
随着计算机性能的提高,MIS 采用越来越多的多媒体技术,用图形、图像、声音替代原来单调的字符形式,给用户提供了一个更加生动真实的应用环境。
会计信息系统也称为电算化会计系统,它是以提供会计信息为目的的信息系统。会计信息系统主要由帐务处理、报表处理、工资核算、固定资产核算、应收应付核算、材料核算、销售核算、成本核算等子系统组成。工资核算信息系统是会计信息系统中的重要组成部分。
5. 工资管理信息系统的最终目的
工资管理信息系统的最终目的是为管理、决策服务,达到这个目标的手段无外乎以下几个方面:一是利用计算机可快速整理、传输、处理各种数据的特点,处理会计业务,从而更为全面、更为准确的提供管理、决策所需的财务信息;二是利用计算机处理数据速度快的特点,处理会计业务,从而更为快捷地提供各种管理、决策所需地财务信息;三是利用计算机对数据分类整理的优点,按管理的要求,对会计核算数据进行各种加工、处理,从而筛选出管理所需的信息;四是会计人员从繁杂的手工核算工作中解脱出来,利用他们懂财务、了解情况的优势,参与分析、参与管理、参与决策。
一、可行性分析
可行性分析的任务是明确开发应用项目的必要性和可行性。必要性来自实现开发任务的迫切性,而可行性则取决于实现应用系统的资源和条件。这项工作建立在初步调查的基础上。
系统的可行性研究在系统的整个过程中占有很重要的地位,它决定所选项目是不是可能实现或值得去实现。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。它主要包括技术、经济、运行、法律等方面的可行性:现有技术是否能够实现本系统的设计开发;经济上是否值得去实现;是否能够在一般平台下运行等。
技术可行性是指开发一个新系统所需要的技术是否具备,如支持新系统的软硬件功能以及技术人员的数量和水平。本系统是进行职工工资处理。结合实际需要,经过仔细斟酌,我选择了Microsoft Visual Basic 6.0 作为开发用户界面软件,它综合了可视化开发环境的易用性、32位优化编译技术的快速和强大、有数据引擎提供的可伸缩性等特点;选Microsoft Office Access 2000用来开发后台数据库,它具有很好的安全性与兼容性;而
且本系统对硬件的要求不高,在现有技术基础上一定能实现本系统。
经济可行性是评价一个计算机信息系统是否可行的最基本的一种方法,是对信息系统解决方案的成本有效性的量度。信息系统的开发是一种投资,因此对于用户来说,他首先关心的是:是否值得开发一个信息系统。而在效益方面,他们首先关心的是:当他们使用了这套管理信息系统后,工资处理的效率是否提高了,人力资源是否节省了。而本系统的设计和开发事实上恰好能满足他们的这些要求。还有该系统对硬件的要求不高,装有win98系统以上的计算机一般就能运行系统,所以在系统运行方面也不存在问题。
1. 开发方法
在开发方法的选择上,我选择了自顶向下的开发策略:自顶向下的开发策略是从工资管理的整体进行设计,逐步从抽象到具体,从概要设计到详细设计,体现结构化的设计思想。
自顶向下是强调由全局到局部、由长远到近期、由上层到下层,从探索、研制一种合理的信息流的模型出发,设计出适合于这种信息流的信息系统。子模块通过信息流确定,而且尽可能的要求每个局部模块优化建立在全局优化的指导下。
第一层首先分析工资管理信息系统的系统环境、系统边界、系统的总目标,然后分析系统完成总目标所应具有的功能以及实现这些功能的信息需求。
第二层是模块级。根据系统的目标、功能以及需求,导出各个模块的目标、功能以及信息需求。同理,逐级地推演更下一层地模块,即由上而下、由粗而细、逐级分解、逐层细化。
“自顶向下”是一种演绎式的分析方法,是一种整体性、系统性强的分析方法。其具体步骤如下:
分析工资核算的目标、环境和系统运行的条件;
根据总体目标确定各项具体功能;
确定需要决策的内容;
根据每项决策的内容确定所需要的信息;
为整个系统规定各个功能模块;
为要研制的各个功能模块和数据库规定先后顺序。
该方法的优点是对整个计划来讲,逻辑性很强;其缺点是难以制定这样大的方案。为了解决这一矛盾,我在参考了现有工资管理信息系统的基础上,进行总体规划。
2. 开发环境介绍
(1) 数据库技术介绍
数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。优秀的数据库设计是应用成功的基石。万万丈高楼平地起,数据库设计如同高楼的基石,是开发高品质应用的前提。
(2) 数据库的体系结构
数据的体系结构分成三级:内部级(Internal ), 概念级(Conceptual)和外部级
(External )。这个三级结构有时也称为“三级模式结构”。
外部级:最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。
概念级别:涉及到所有用户的数据定义、是全局的数据视图。全局视图的描述称为“概念模式”。
内部级:最接近于物理存储设备,涉及到实际数据存储的结构物理存储数据视图的描述称为“内模式”。
数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS 去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。
(3) 数据库管理系统(DBMS )
数据库管理系统(DBMS )是指数据库系统中管理数据的软件系统。DBMS 是数据库系统的核心组成部分。对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS 进行的。
在不同的计算机系统中,由于缺乏统一的标准,即使同种数据模型的DBMS ,它们在用户接口、系统功能方面也常常是不相同的。
用户对数据库进行操作,是由DBMS 把操作从应用程序带到外部级、概念级、再导向内部级,进而操作存储器中的数据。DBMS 的主要目标,是使数据作为一种可管理的资源处理。
DBMS 的主要功能为:
数据库定义功能:DBMS 提供数据定义语言(DDL )定义数据库的三级结构,包括外模式、概念模式、内模式及基相互之间的映象,定义数据的完整性、安全控制等约束。因此,在DBMS 中应包括DDL 的编译程序。
数据库的操纵功能:DBMS 提供数据操纵语言(DML )实现对数据库中数据的操作。基
本的数据操作分成两类四种:检索(查询)更新(插入、删除、修改)
数据库的保护功能:数据库中的数据是信息社会的战略资源,对数据的保护是至关重要的大事。DBMS 对数据库的保护主要通过四个方面实现:
数据库恢复:数据库被破坏或数据不正确时,系统有能力把数据库恢复到正确的状态。 数据库的并发控制:DBMS 的并发控制子系统能防止错误发生,正确处理好多用户、多任务环境下的并发操作。
数据库的完整性控制:保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作。
数据库的安全性控制:防止未经授权的用户蓄谋或无意地存取数据库中的数据,以免数据的泄露、更改或破坏。
数据库的存储管理:把各种DML 语句转换成低层的文件系统命令,起到数据的存储、检索和更新的作用。
(4) Access 数据库介绍
Access 数据库软件是一个关系型数据库管理系统,它为用户提供了数据库管理的工具集和应用程序的开发环境。Microsoft Office 应用软件在办公自动化方面已得到广泛的应用,而Access 2000是Office 2000系列中的重要组件之一,它是关系型数据库,特别是中小型数据库应用领域中最通用的数据库软件。
Access 是一种数据库管理系统(DBMS ), 它同Oracle 、DBASE 和Foxpro 等数据库软件系统一样,用于构造数据库应用程序并实行对数据库的统一管理。用户可以通过Access 提供的开发环境及工具集方便地构建数据库应用程序,大部分是直观地可视化地操作,无需编写程序代码便可方便地完成数据库的管理工资
它的优点是:
1. ACCESS 是真正的关系型数据库管理系统。ACCESS 具有主关键字和外部关键字定义,提供了数据库的完整性应用,避免数据遭到不合理的删除或修改。ACCESS 数据库还具有数据确认规则,以免输入的数据是非精确数据。它支持的字段类型有数字 文本、日期、货币、备注、是/否及OLE 对象和空值等。可以说,ACCESS 数据库软件提供了真正的关系型数据库管理。
2. ACCESS是面向数据库开发人员和最终用户的数据库管理系统。ACCESS 提供了
VBA(VISUAL BASIC FOR APPLICATION)语言。对于数据库开发人员。利用该语言以及系统提供的可视化和向导,便可以设计出具有一定规模、功能强大的数
据库应用系统。对于数据库的最终用户,并不需要编程,就可利用这些可视化工具和
向导进行简单的数据库设计和管理。
3.ACCESS 是开放式的数据库管理系统。
4.ACCESS 内置了大量的内部函数。ACCESS 软件包含了大量的内部函数,包括数据库、数学、财务、日期、时间、字符串等函数。
5.可视化的操作工具和方便的向导。
(5) Visual basic编程语言简介
Visual Basic 简称VB ,是微软公司推出的一种可视化编程工具,是当今世界上应用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。它开发速度快捷,具有语法简单易学的开发环境,是初学者的首选。VB 提供可视化的开发环境,使用者可以像搭积木一样构建出程序的界面,而且它提供丰富的控件组,省去了自己编写代码的实现这些效果的麻烦,这样就可以把更多的精力放在程序功能方面的实现上。本系统中使用的是Microsoft Visual Basic 6.0 中文企业版。
二、系统分析部分
1)业务流程图
2)数据流程图
数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。符号说明如下:
外部实体
处理
数据流
数据存储
数据流程图分多少层次视实际情况而定,考虑到工资管理信息系统相对较小,在这里我把数据流程图分为二层。
第一层:
第二层:
3)功能分析图
系统功能分析是在系统开发的总体任务的基础上完成的。该工资管理系统采用的是MIS 的设计方法,在设计系统之前,需要充分了解系统的功能,根据系统所要达到的要求设计具体的模块。本系统需要完成的功能主要有:
4)数据字典 数据项的定义:
数据流定义:
6)管理信息系统流程设想图(新系统模型)
通过对现行系统的需求分析,本系统数据流向是合理的,但为了便于计算机化管理,也为了使系统能够提供更多的辅助决策信息,本系统应做如下改进设想: 1. 财务处理系统未对工资分配情况进行反馈,应增加工资分配反馈环节; 2. 工资统计与工资汇总重复计算,去除工资统计环节; 3. 工资查询在财务处理系统进行查询,减少不必要环节;
根据前面的分析与评价结果,提出的新系统数据流程如图:
三、系统设计部分
1)功能结构图设计
相比原来的功能结构图,我们对其进行简化,把奖金、劳务工资等放入“更新主文件”目录,罚金、税金等放入“扣款文件”目录,基本工资放入“主文件”目录,可以看出来,现在的系统较原来更简洁,更容易让员工清楚工资发放机制。
2)新系统信息处理流程设计
现行系统的需求分析,本系统数据流向是合理的,但为了便于计算机化管理,也为了使系统能够提供更多的辅助决策信息,本系统应做如下改进设想:
1. 财务处理系统未对工资分配情况进行反馈,应增加工资分配反馈环节; 2. 工资统计与工资汇总重复计算,去除工资统计环节; 3. 工资查询在财务处理系统进行查询,减少不必要环节;
新系统信息处理流程:
四、系统实施部分
1)程序框图
登陆界面:
账号与密码都为1,输入点击登录按钮:
进入主界面:
点击员工信息,跳出如下界面:
在员工信息管理界面可以对不同部门员工进行添加、修改、删除操作,点击离开后,进入基本工资界面:
2)源程序
管理员登录界面:
工资管理登录系统图登陆窗口,进行密码验证,如果用户输入正确的用户名和密码就可正常的登陆。如果密码错误则出现错误提示,如果想关闭系统,单击取消按钮即可退出系统,其实现代码如下: Login.frm
Public EN, a, PW As String Public P As Integer
Private Sub Command1_Click(Index As Integer) Select Case Index Case 0
txtSQL = "select * from accounts where account = '" & Text1(0).Text & "'" & "and password = '" & Text1(1).Text + "'" Set rs = exesql(txtSQL) If rs.EOF = True Then
MsgBox "没有这个用户,请重新输入!", vbCritical, "警告"
With Text1(0) .SelStart = 0
.SelLength = Len(Text1(0).Text) Text1(0).SetFocus End With Else
EN = Trim(rs.Fields(0)) a = Trim(rs.Fields(1)) PW = Trim(rs.Fields(2)) P = Trim(rs.Fields(3)) Unload Me
Set login = Nothing Main.Show End If Case 1
Text1(0).Text = "" Text1(1).Text = ""
Command1(0).Enabled = False Command1(1).Enabled = False Text1(0).SetFocus Case Else Unload Me
Set login = Nothing End
End Select End Sub
Private Sub Form_Activate() Text1(0).SetFocus End Sub
Private Sub Label1_Click(Index As Integer)
End Sub
Private Sub Text1_Change(Index As Integer)
If Text1(0).Text "" Or Text1(1).Text "" Then Command1(1).Enabled = True End If
If Text1(0).Text "" And Text1(1).Text "" Then Command1(0).Enabled = True Else
Command1(0).Enabled = False End If End Sub
员工信息界面:
在员工信息管理界面可以对不同部门员工进行添加、修改、删除等功能操作,要求添加工人编号、所在部门、用户名、职务等。点击离开后,进入基本工资界面,其功能实现代码如下:
Grengl.frm
Option Explicit
Dim rs0 As New ADODB.Recordset
Dim sql0 As String
Dim a As String
Dim b As String
Dim c As Boolean
Dim d As Boolean
Private Sub Command1_Click()
Timer1.Enabled = True
Text1.Enabled = True
c = False
d = False
End Sub
Private Sub Command2_Click()
Timer1.Enabled = True
Text1.Enabled = False
c = False
d = False
End Sub
Private Sub Command3_Click()
Dim rs00 As New ADODB.Recordset
Dim sql00 As String
sql00 = "delete from yuangon where id='" & rs0.Fields(0) & "'"
Dim a As String
Dim b As String
Dim choose
a = "信息删除"
b = "" & rs0.Fields(0) & " 删除"
choose = MsgBox("删除员工信息会将其其它相关信息也一起删除, 是否删除?", vbOKCancel, "系统信息")
If choose = vbOK Then
Call data3(sql00, a, b)
Else
End If
Set rs00 = data1(rs00, sql0)
Set rs0 = rs00
Set DataGrid1.DataSource = rs0
DataGrid1.Refresh
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
Private Sub Command5_Click()
Dim rs4 As New ADODB.Recordset
Dim sql4 As String
Dim rs5 As New ADODB.Recordset
Dim sql5 As String
Dim sql6 As String
On Error GoTo k2:
If Text1.Text "" Then
If Text1.Enabled = True Then
sql4 = "select jibengonzi from bumengz where bumen='" & DataCombo2.Text & "'and ziwu='" & DataCombo1.Text & "'"
Set rs4 = data1(rs4, sql4)
sql5 = "insert into yuangon (id,xinming,nianling,xingbie,bumen,ziwu) values ('" & Text1.Text & "','" & Text2.Text & "'," & Text3.Text & ",'" & Combo1.Text & "','" & DataCombo2.Text & "','" & DataCombo1.Text & "')"
sql6 = "insert into jibengonzi (id,jibengonzi) values ('" & Text1.Text & "'," & rs4.Fields(0) & ")"
a = "信息增加"
b = " " & Text1.Text & " 信息增加"
Call data4(sql5, sql6, a, b)
Set rs5 = data1(rs5, sql0)
Set rs0 = rs5
Else
sql4 = "select jibengonzi from bumengz where bumen='" & DataCombo2.Text & "'and ziwu='" & DataCombo1.Text & "'"
Set rs4 = data1(rs4, sql4)
sql5 = "update yuangon set xinming='" & Text2.Text & "',nianling=" & Text3.Text & ",xingbie='" & Combo1.Text & "',bumen='" & DataCombo2.Text & "',ziwu='" & DataCombo1.Text & "' where id='" & Text1.Text & "'"
If c = True Or d = True Then
sql6 = "update jibengonzi set jibengonzi=" & rs4.Fields(0) & ""
Else
sql6 = ""
End If
a = "信息修改"
b = " " & Text1.Text & " 信息修改"
If sql6 "" Then
Call data4(sql5, sql6, a, b)
Else
Call data3(sql5, a, b)
End If
Set rs5 = data1(rs5, sql0)
Set rs0 = rs5
End If
Else
MsgBox "员工编号不能为空"
End If
c = False
d = False
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Set DataGrid1.DataSource = rs0
DataGrid1.Refresh
Exit Sub
k2:
If Err.Number = 3021 And Text1.Text = "" Then MsgBox " 员工编号不能为空", vbOKOnly, " 错误"
If Err.Number = 3021 And DataCombo1.Text = "" Or DataCombo2.Text = "" Then MsgBox " 部门, 职位不能为空", vbOKOnly, "错误"
If Err.Number = -2147467259 Then MsgBox "年龄必须在16~60周岁", vbOKOnly, "错误"
If Err.Number = -2147217900 And Text1.Text "" Then MsgBox "员工编号重复!", vbOKOnly, "错误"
End Sub
Private Sub Command6_Click()
Timer2.Enabled = True
c = False
d = False
End Sub
Private Sub DataCombo1_Click(Area As Integer)
d = True
End Sub
Private Sub DataCombo2_Change()
Dim rs3 As New ADODB.Recordset
Dim sql3 As String
sql3 = "select ziwu from bumengz where bumen='" & DataCombo2.Text & "'" Set rs3 = data1(rs3, sql3)
Set DataCombo1.DataSource = rs3
Set DataCombo1.RowSource = rs3
c = True
End Sub
Private Sub DataCombo2_Click(Area As Integer)
Dim rs3 As New ADODB.Recordset
Dim sql3 As String
sql3 = "select ziwu from bumengz where bumen='" & DataCombo2.Text & "'" Set rs3 = data1(rs3, sql3)
Set DataCombo1.DataSource = rs3
Set DataCombo1.RowSource = rs3
c = True
End Sub
Private Sub DataCombo3_Click(Area As Integer)
Dim rs2 As New ADODB.Recordset
Dim sql2 As String
sql2 = "select * from yuangon where bumen='" & DataCombo3.Text & "'"
Set rs2 = data1(rs2, sql2)
If rs2.BOF Then
MsgBox "部门内无员工信息", vbOKOnly, "新部门"
Else
Set rs0 = rs2
End If
Set DataGrid1.DataSource = rs0
DataGrid1.Refresh
End Sub
Private Sub DataGrid1_DblClick()
On Error GoTo k1:
If Text1.Enabled = False Then
Text1.Text = rs0.Fields(0)
Text2.Text = rs0.Fields(1)
Text3.Text = rs0.Fields(2)
Combo1.Text = rs0.Fields(3)
DataCombo2.Text = rs0.Fields(4)
DataCombo1.Text = rs0.Fields(5)
End If
Exit Sub
k1:
If Err.Number = 3021 Then MsgBox "无记录, 无法修改", vbOKOnly, "
End Sub
Private Sub Form_Load()
Combo1.ListIndex = 0
Set rs0 = New ADODB.Recordset
sql0 = "select * from yuangon"
Set rs0 = data1(rs0, sql0)
Set DataGrid1.DataSource = rs0
DataGrid1.Refresh
Dim rs1 As New ADODB.Recordset
Dim sql1 As String
sql1 = "select * from bumen"
Set rs1 = data1(rs1, sql1)
Set DataCombo3.DataSource = rs1
Set DataCombo3.RowSource = rs1
Set DataCombo2.DataSource = rs1
Set DataCombo2.RowSource = rs1
c = False
d = False
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii 8 Then
KeyAscii = 0
End If
End Sub
错误"
Private Sub Timer1_Timer()
If DataGrid1.Height > 2655 Then DataGrid1.Height = DataGrid1.Height - 16.8 If Frame1.Height
If Frame1.Top > 2880 Then Frame1.Top = Frame1.Top - 15.6
If DataGrid1.Height = 2655 Then Timer1.Enabled = False
End Sub
Private Sub Timer2_Timer()
Frame1.Visible = False
If DataGrid1.Height
Frame1.Top = 4440
Frame1.Height = 15
Frame1.Visible = True
Timer2.Enabled = False
End If
End Sub
基本工资管理界面:
基本工资管理界面可以对各部门的不同职务基本工资进行添加、修改和删除操作,其实现代码如下:
Main.frm
Private Sub Form_Load()
StatusBar1.Panels(1) = "现在时间:" & " " & Date & " " & Time
End Sub
Private Sub j1_Click()
fuligl.Show
End Sub
Private Sub j2_Click()
bumengl.Show
End Sub
Private Sub j3_Click()
ziwugl.Show
End Sub
Private Sub k_Click()
End Sub
Private Sub k1_Click()
gerengl.Show
End Sub
Private Sub k2_Click()
fuli.Show
End Sub
Private Sub k3_Click()
bmgzgl.Show
End Sub
Private Sub k4_Click()
gonzitz.Show
End Sub
Private Sub l1_Click()
gonzicx.Show
End Sub
Private Sub l2_Click()
gonzidel.Show
End Sub
Private Sub l3_Click()
gonzifafang.Show
End Sub
Private Sub q_Click()
rizicx.Show
End Sub
Private Sub Timer1_Timer()
StatusBar1.Panels(1) = "现在时间:" & " " & Date & " " & Time
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1
gerengl.Show
Case 2
Case 3
laowugongzi.Show
Case 4
jiangjin.Show
Case 5
koukuan.Show
Case 6
gongzihuizong.Show
Case 7
End
End Select
Option Explicit
Dim rs1 As New ADODB.Recordset
Dim sql1 As String
Dim a As String
Dim b As String
Private Sub Command1_Click()
Dim rs4 As New ADODB.Recordset
Dim sql4 As String
Dim rs41 As New ADODB.Recordset
Dim sql41 As String
On Error GoTo Now1:
sql41 = "select * from bumengz where bumen='" & DataCombo1.Text & "'and ziwu='" & DataCombo2.Text & "'"
sql4 = "update bumengz set ziwu='" & DataCombo2.Text & "',jibengonzi=" & Text2.Text & " where bumen='" & rs1.Fields(0) & "' and ziwu='" & rs1.Fields(1) & "' " a = "信息修改"
b = "" & DataCombo1.Text & " " & DataCombo2.Text & "" & " 基本工资"
If DataCombo2.Text rs1.Fields(1) Then
Set rs41 = data1(rs41, sql41)
If rs41.BOF = True Then
Call data3(sql4, a, b)
Set rs4 = data1(rs4, sql1)
Set rs1 = rs4
Else
MsgBox "本部门内存在相同职务工资,无法修改", vbOKOnly, "错误"
End If
Call data3(sql4, a, b)
Set rs4 = data1(rs4, sql1)
Set rs1 = rs4
End If
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
Exit Sub
Now1:
Select Case Err.Number:
Case -2147217900
MsgBox "基本工资不能为空", vbOKOnly, "错误"
Case 3021
MsgBox "本部门内暂无职务工资信息", vbOKOnly, "错误"
End Select
End Sub
Private Sub Command2_Click()
End Sub
Private Sub Command3_Click()
Dim sr As New ADODB.Recordset
Dim sql As String
sql = "select * from bumengz"
Set sr = data1(sr, sql)
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
Private Sub Command5_Click()
Dim rs3 As New ADODB.Recordset
Dim sql3 As String
sql3 = "insert into bumengz (bumen,ziwu,jibengonzi) values ( '" & DataCombo1.Text & "','" & DataCombo2.Text & "'," & Text2.Text & ")"
Dim rs31 As New ADODB.Recordset
Dim sql31 As String
sql31 = "select * from bumengz where bumen='" & DataCombo1.Text & "'and ziwu='"
a = "信息增加"
b = "" & DataCombo1.Text & "" & DataCombo2.Text & "" & "基本工资"
On Error GoTo Now1:
Set rs31 = data1(rs31, sql31)
If rs31.BOF Then
Call data3(sql3, a, b)
Set rs3 = data1(rs3, sql1)
Set rs1 = rs3
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
Else
MsgBox "本部门内存在相同职务工资,无法添加", vbOKOnly, "错误"
End If
Exit Sub
Now1:
Select Case Err.Number:
Case -2147217904
MsgBox "基本工资只能输入数字", vbOKOnly, "错误"
Case -2147217900
MsgBox "基本工资不能为空", vbOKOnly, "错误"
End Select
End Sub
Private Sub Command6_Click()
Dim rs4 As New ADODB.Recordset
Dim rs41 As New ADODB.Recordset
Dim sql4 As String
Dim sql41 As String
Dim choose
sql4 = "select * from yuangon where bumen='" & DataCombo1.Text & "'"
sql41 = "delete from bumengz where bumen='" & DataCombo1.Text & "'and ziwu='" & DataCombo2.Text & "'"
a = "信息删除"
b = "" & DataCombo1.Text & "" & DataCombo2.Text & "" & "基本工资"
If rs4.BOF Then
choose = MsgBox("确定要删除信息?", vbOKCancel + vbDefaultButton2 + vbQuestion, " 警告")
If choose = vbOK Then Call data3(sql41, a, b)
Else
MsgBox "对应部门职务存在,信息可能正被使用!删除失败", vbOKOnly, "错误" End If
Set rs41 = data1(rs41, sql1)
Set rs1 = rs41
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
End Sub
Public Sub DataCombo1_Click(Area As Integer)
Dim rs2 As New ADODB.Recordset
sql1 = "select bumen,ziwu,jibengonzi from bumengz where bumen='" & DataCombo1.Text & "'"
Set rs2 = data1(rs2, sql1)
Set rs1 = rs2
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
End Sub
Private Sub DataGrid1_DblClick()
If Not rs1.BOF Then
DataCombo2.Text = rs1.Fields(1)
Text2.Text = rs1.Fields(2)
Else
MsgBox "本部门内无信息", vbOKOnly, "错误"
End If
End Sub
Private Sub Form_Load()
Dim rs0 As New ADODB.Recordset
Dim sql0 As String
sql0 = "select * from bumen "
Set rs0 = data1(rs0, sql0)
Set DataCombo1.DataSource = rs0
Set DataCombo1.RowSource = rs0
DataCombo1.Refresh
Dim rs00 As New ADODB.Recordset
Dim sql00 As String
sql00 = "select * from ziwu "
Set rs00 = data1(rs00, sql00)
Set DataCombo2.DataSource = rs00
Set DataCombo2.RowSource = rs00
DataCombo2.Refresh
If rs0.BOF Or rs00.BOF Then
Else
Command1.Enabled = True
Command4.Enabled = True
Command5.Enabled = True
Command6.Enabled = True
End If
Set rs1 = New ADODB.Recordset
sql1 = "select bumen,ziwu,jibengonzi from bumengz"
Set rs1 = data1(rs1, sql1)
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii 8 Then
KeyAscii = 0
End If
End Sub
3)系统使用说明书
本系统基本上可以满足工资管理的基本要求,系统中使用的各种表格,保存相关的工资信息以及工资结构等信息。使用本系统的查询的前提是要输入员工的的标号,之后可以查询出员工的基本信息或工资结构。本系统经过实际的需求分析,采用功能强大的VB 作为开发工具,Microsoft SQL Server 作为数据库开发出来的小型的工资管理系统。 系统可以达到如下功能:1、通过员工的编号,查询出员工的基本信息。
2、通过员工的编号,查询出员工的工资结构以及基本工资。
3、通过员工编号,查询出员工的工资账目。
(5)附录或参考资料:
[ 1]黄梯云著 管理信息系统(第四版) 高等教育出版社
[ 2]刘炳文、许蔓舒编著 Visual Basic 程序设计教程 清华大学出版社
[ 3]Evangelos编著 Visual Basic 6.0高级开发指南 电子工业出版社
[ 4]李东玉等编著 Visual Basic6.0控件大全 清华大学出版社
[ 5]龚沛曾等编著 Visual Basic程序设计教程 高等教育出版社
[ 6]Francesco Balena著 Visual Basic 6编程技术大全 机械工业出版社
[ 7]张宏林等编著 Visual Basic6 开发数据库 人民邮电出版社
[ 8]刘韬等编著 Visual Basic数据库系统开发实例导航 人民邮电出版社
[ 9]王文莲等编著 电算化会计原理软件开发与试验 立信会计出版社
工资管理系统课程设计小结
经过小组成员的共同努力,通过可行性分析、系统分析、系统设计,最终系统功能达到了设计的要求,实现了我们的设计计划。
在实现系统功能的过程中,我们小组成员在翻阅了大量VB 方面的书籍,重新温习VB 的基础知识,了解VB 的基本语法, 又看了一些经经典案例后,学会了一些高级控件的使用,并运用到了系统中。
工资管理信息系统的整个开发过程采用了结构化的设计方法,遵循先逻辑后物理、自顶而下等原则,实现系统各部分的模块化,各子系统之间独立性强,便于系统的运行维护和日后的扩充和完善,达到的功能的设计要求。
由于我们的知识和经验的限制,我们肯定在细节方面还有很多的不足,有些细致的地方欠缺考虑,无法在系统中体现出来,有些虽然我们考虑到了,由于知识的严重欠缺,无法达到设计的要求。这个软件还存在这样那样的无法避免的缺点,但是在专业知识方面,学到了在课堂中无法学到的知识。比如在可行性分析中,一定要考虑到公司管理的实际情况,人机界面的设计要方便使用等,这些知识对一个系统开发人员来说,虽然是最基本的要求,但是我们在课程设计中学到呢,对我们将来的工作不失为一个好的开始。
由于某些方面的不足,在系统实现过程中,有些功能不能很好的实现,有待进一步改进。设计过程中遇到的困难,在老师和同学的帮助下,最终我克服了难题,完成了我的工作管理系统的设计。
通过此次系统地编写工资管理信息系统,自己在编程能力方面有了显著的提高。对VB 和管理信息系统了更加深刻的了解,深化了所学的基本知识,由单纯的书本知识,应用到具体实践,增强知识转化为实际操作的能力。
目录
一、可行性分析...................................... 5
二、系统分析部分.................................... 9 1)业务流程图.................................. 9
2)数据流程图.................................. 9
3)功能分析图 ..................................10
4)数据字典 ...................................11
5)数据加工处理的描述 ...........................11
6)管理信息系统流程设想图(新系统模型).............13
三、系统设计部分 ...................................14
1)功能结构图设计...............................14
2)新系统信息处理流程设计........................14
四、系统实施部分 ....................................16 1)程序框图....................................16 2)源程序.....................................18
5)系统使用说明书...............................31
五、附录或参考资料...................................32
工资管理信息系统课程设计
引 言
本课题将设计一个应用与事业单位的工资管理系统。随着国民经济的急速发展,事业单位的工资应用体系也变的越来越复杂,单位中,部门、职务、工作效益等与工资管理有关的信息随之急剧增加。在这种情况下单靠人工来处理员工的工资不但要消耗大量的人力和物力,而且极容易出错。
该系统的具体任务就是设计一个事业单位工资的数据库管理系统,由计算机来代替人工执行一系列工作,诸如增加员工添加删除、工资设置、修改、查询、统计等操作。这样就使财务人员可以快捷高效地完成工资管理任务。
1 .应用背景
人类社会正从工业时代阔步迈向信息时代,人们越来越重视信息技术对传统产业的改造,信息化水平的高低已经成为衡量一个单位现代化水平的高低。在这种环境下,传统的手工工资管理已经远远落后于信息化管理。
随着计算机技术的飞速发展,计算机在信息管理中应用的普及,利用计算机实现人事工资的管理势在必行。利用计算机管理工资信息,是适应现代化的要求、推动管理制度走向科学化、规范化的必要条件;工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力,利用计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,同时计算机具有着手工管理所无法比拟的优点. 例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资管理的效率, 也是管理科学化、正规化, 与世界接轨的重要条件。
该系统的具体任务就是设计一个工资的数据库管理系统,由计算机来代替人工执行一系列工作,诸如增加员工添加删除、工资设置、统计、发放、修改、查询等操作。这样就使财务人员可以快捷高效地完成工资管理任务。
设计的指导思想是一切为用户着想,界面简洁,操作尽量简单明了。计算机的资源是受到限制的,因此充分利用了Visual Basic的功能,在尽可能地减少对系统资源的占用的前提下,设计出功能丰富的软件。
2. 课题研发的目的与意义
工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生错误。手工进行工资发放工作,需要反复地进行抄写、计算,不仅花费财务人员大量的时间,而且往往由于抄写不慎,出现张冠李戴,或者由于计算的疏忽,出现工资发放错误的现象。同时工资的发放具有较强的时间限制,必须严格按照单位规定的时间完成计算和发放工作。
正是工资管理的这种重复性、规律性、时间性,使得工资管理计算机化成为可能。计算机进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而且还可以利用工资数据库对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理,使会计人员从繁重的手工制作中解脱出来, 提高了会计信息的及时性、正确性、全面性。大大提高了管理水平和管理效率,产生了巨大的经济效益和社会效益。
信息时代计算机技术的发展给整个社会的生活、工作方式带来了一次革命。传统意义上的工资管理的形式和内涵都在发生着本质的变化。以前那种一个会计、一个账本的工资管理形式已经可以被计算机及财务软件所代替。计算机以及相关软件的介入使得工资的管理变得科学化、透明化、简单化。因此,根据不同单位的自身特点开发适合自己的工资管理软件是显得十分必要的。
工资管理软件隶属于财务软件(又称会计软件)。中国的财务软件起步于70年代末,经历了从自主开发、委托定点开发向标准化、通用化、商品化、专业化发展几个阶段。三十年来财务软件市场规模化、产业化发展迅速。
近年来随着市场竞争的日趋激烈,财务软件模式转向集中式管理;一些行政单位为适应财政预算管理的变革,开始对财务实行集中式管理。可以说集中式财务管理在某些单位来说是一种管理发展的趋势。这种管理模式在以前因网络、通讯技术的限制而无法实施,随着互联网技术的发展,基于网络计算,支持集中管理模式的财务软件开始出现在市场,并越来越受到希望采取集中财务管理模式的单位所喜爱。所以,在我国各级事业单位中他们更需要有一个方便、快捷、安全、透明的工资管理软件。
3. 信息系统介绍
管理信息系统就是我们常说的MIS (Management Information System ),在强调管理,
强调信息的现代社会中它越来越得到普及。MIS 是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交 织的系统。
它是一个不断发展的新型学科。管理信息系统的定义随着计算机技术和通讯技术的进步也在不断更新。在现阶段普遍认为,管理信息系统是一个由人和计算机或其他信息处理手段组成的并用于管理信息的系统。管理信息系统能进行信息收集、传输、加工、保存、维护和使用。它能实测国民经济部门或不同单位的各种运行情况,能利用过去的数据预测未来,能从全局出发辅助决策,能利用信息控制国民经济部门或不同单位的活动,并帮助实现其规划目标。管理信息系统是一门综合了管理科学、系统理论、计算机科学的系统性边缘学科。
4. 管理信息系统概述
20世纪,随着全球经济的蓬勃发展,众多经济学家纷纷提出了新的管理理论。20世纪50年代,西蒙提出管理依赖于信息和决策的思想。同时期的维纳发表了控制论,他认为管理是一个控制过程。1958年,盖尔写到:“管理将以较低的成本得到及时准确的信息,做到较好的控制。”这个时期,计算机开始用于会计工作,出现数据处理一词。
1970年,Walter T.Kennevan给刚刚出现的管理信息系统一词下了一个定义:“以口头或书面的形式,在合适的时间向经理、职员以及外界人员提供过去的、现在的、预测未来的有关企业内部及其环境的信息,以帮助他们进行决策。”在这个定义里强调了用信息支持决策,但并没有强调应用模型,没有提到计算机的应用。
1985年,管理信息系统的创始人,明尼苏达大学的管理学教授Gordon B.Davis给了管理信息系统一个较完整的定义,即“管理信息系统是一个利用计算机软硬件资源,手工作业,分析、计划、控制和决策模型以及数据库的人-机系统。它能提供信息支持企业或组织的运行、管理和决策功能。”这个定义全面地说明了管理信息系统的目标、功能和组成,而且反映了管理信息系统在当时达到的水平。
管理信息系统起初应用于最基础的工作,如打印报表、计算工资、人事管理等,进而发展到企业财务管理、库存管理等单项业务管理,这属于电子数据处理(EDP ,Electronic Data Processing)系统。当建立了企业数据库,有了计算机网络从而达到数据共享后,从系
统观点出发,实施全局规划和设计信息系统时,就达到管理信息系统的阶段。随着计算机技术的进步和人们对系统的需求进一步提高,人们更加强调管理信息系统能否支持企业高层领导的决策这一功能,更侧重于企业外部信息的收集、综合数据库、模型库、方法库和其他人工智能工具能否直接面向决策者,这是决策支持系统(DSS ,Decision Support System )的任务。
近20年间,国外大公司出现了3种变化:
● 抓管理着重于建立MIS 系统,使管理技术走向成熟。
● 信息是决策的依据,MIS 随时为经理们提供信息服务。
● 经理通过MIS 使其经营计划和具体的业务活动联系在一起。
由于以上的变化,MIS 应用得到了迅速发展。不仅大中型企业普遍建立了自己的MIS ,一些中小企业也不例外,普遍建立了公用数据网络,尤其是近年来Internet 的飞速发展,Intranet 技术得到广泛应用,为企业MIS 提供了良好的支持环境。从国际技术发展趋势看,20世纪90年代出现了几种全新的管理技术,相应的MIS 开发技术在20世纪90年代也有了新的发展。
1. 信息综合集成
MIS 在计算机网络和分布式数据库管理系统的支持下,与企业其他的系统,如OA 、CAD 、CAM 、CAPP 、在线数据采集系统集成,形成制造业的计算机集成制造系统,或者一般企事业单位的综合信息系统(CIIS ,Computer Integrated Information System ),实现办公、管理、计算、设计、控制、监测,以及决策等多功能综合。
2. Internet/Intranet
因特网(Internet )已经被广大用户所熟悉,而以因特网技术为基础的企业内部信息系统——Intranet 既可以通过接入的方式成为因特网的一部分,也可以自成体系,实现企业内部的管理。它可以克服传统MIS 存在的系统封闭、用户界面形式不统一、多种软件版本并存、维护移植困难等问题,为新一代企业MIS 的开发注入了强劲的活力。
3. 先进的软件开发工具
为了缩短软件开发的周期,提高软件的质量和标准化水平以及软件的可维护性,越来越多的软件开发公司使用先进的软件开发工具或计算机辅助软件工程工具(CASE ,
Computer-Aided Software Engineering),如各种可视化建模工具、系统分析和设计工具、软件质量测试工具、软件文档建立和管理工具等。还有各种MIS 开发平台和代码生成
工具,这些工具极大地方便了MIS 的开发。
4. 多媒体技术
随着计算机性能的提高,MIS 采用越来越多的多媒体技术,用图形、图像、声音替代原来单调的字符形式,给用户提供了一个更加生动真实的应用环境。
会计信息系统也称为电算化会计系统,它是以提供会计信息为目的的信息系统。会计信息系统主要由帐务处理、报表处理、工资核算、固定资产核算、应收应付核算、材料核算、销售核算、成本核算等子系统组成。工资核算信息系统是会计信息系统中的重要组成部分。
5. 工资管理信息系统的最终目的
工资管理信息系统的最终目的是为管理、决策服务,达到这个目标的手段无外乎以下几个方面:一是利用计算机可快速整理、传输、处理各种数据的特点,处理会计业务,从而更为全面、更为准确的提供管理、决策所需的财务信息;二是利用计算机处理数据速度快的特点,处理会计业务,从而更为快捷地提供各种管理、决策所需地财务信息;三是利用计算机对数据分类整理的优点,按管理的要求,对会计核算数据进行各种加工、处理,从而筛选出管理所需的信息;四是会计人员从繁杂的手工核算工作中解脱出来,利用他们懂财务、了解情况的优势,参与分析、参与管理、参与决策。
一、可行性分析
可行性分析的任务是明确开发应用项目的必要性和可行性。必要性来自实现开发任务的迫切性,而可行性则取决于实现应用系统的资源和条件。这项工作建立在初步调查的基础上。
系统的可行性研究在系统的整个过程中占有很重要的地位,它决定所选项目是不是可能实现或值得去实现。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。它主要包括技术、经济、运行、法律等方面的可行性:现有技术是否能够实现本系统的设计开发;经济上是否值得去实现;是否能够在一般平台下运行等。
技术可行性是指开发一个新系统所需要的技术是否具备,如支持新系统的软硬件功能以及技术人员的数量和水平。本系统是进行职工工资处理。结合实际需要,经过仔细斟酌,我选择了Microsoft Visual Basic 6.0 作为开发用户界面软件,它综合了可视化开发环境的易用性、32位优化编译技术的快速和强大、有数据引擎提供的可伸缩性等特点;选Microsoft Office Access 2000用来开发后台数据库,它具有很好的安全性与兼容性;而
且本系统对硬件的要求不高,在现有技术基础上一定能实现本系统。
经济可行性是评价一个计算机信息系统是否可行的最基本的一种方法,是对信息系统解决方案的成本有效性的量度。信息系统的开发是一种投资,因此对于用户来说,他首先关心的是:是否值得开发一个信息系统。而在效益方面,他们首先关心的是:当他们使用了这套管理信息系统后,工资处理的效率是否提高了,人力资源是否节省了。而本系统的设计和开发事实上恰好能满足他们的这些要求。还有该系统对硬件的要求不高,装有win98系统以上的计算机一般就能运行系统,所以在系统运行方面也不存在问题。
1. 开发方法
在开发方法的选择上,我选择了自顶向下的开发策略:自顶向下的开发策略是从工资管理的整体进行设计,逐步从抽象到具体,从概要设计到详细设计,体现结构化的设计思想。
自顶向下是强调由全局到局部、由长远到近期、由上层到下层,从探索、研制一种合理的信息流的模型出发,设计出适合于这种信息流的信息系统。子模块通过信息流确定,而且尽可能的要求每个局部模块优化建立在全局优化的指导下。
第一层首先分析工资管理信息系统的系统环境、系统边界、系统的总目标,然后分析系统完成总目标所应具有的功能以及实现这些功能的信息需求。
第二层是模块级。根据系统的目标、功能以及需求,导出各个模块的目标、功能以及信息需求。同理,逐级地推演更下一层地模块,即由上而下、由粗而细、逐级分解、逐层细化。
“自顶向下”是一种演绎式的分析方法,是一种整体性、系统性强的分析方法。其具体步骤如下:
分析工资核算的目标、环境和系统运行的条件;
根据总体目标确定各项具体功能;
确定需要决策的内容;
根据每项决策的内容确定所需要的信息;
为整个系统规定各个功能模块;
为要研制的各个功能模块和数据库规定先后顺序。
该方法的优点是对整个计划来讲,逻辑性很强;其缺点是难以制定这样大的方案。为了解决这一矛盾,我在参考了现有工资管理信息系统的基础上,进行总体规划。
2. 开发环境介绍
(1) 数据库技术介绍
数据库技术作为数据管理技术,是计算机软件领域的一个重要分支,产生于60年代末。现已形成相当规模的理论体系和实用技术。优秀的数据库设计是应用成功的基石。万万丈高楼平地起,数据库设计如同高楼的基石,是开发高品质应用的前提。
(2) 数据库的体系结构
数据的体系结构分成三级:内部级(Internal ), 概念级(Conceptual)和外部级
(External )。这个三级结构有时也称为“三级模式结构”。
外部级:最接近用户,是单个用户所能看到的数据特性。单个用户使用的数据视图的描述称为“外模式”。
概念级别:涉及到所有用户的数据定义、是全局的数据视图。全局视图的描述称为“概念模式”。
内部级:最接近于物理存储设备,涉及到实际数据存储的结构物理存储数据视图的描述称为“内模式”。
数据库的三级模式结构是数据的三个抽象级别。它把数据的具体组织留给DBMS 去做,用户只要抽象地处理数据,而不必关心数据在计算机中的表示和存储,这样就减轻了用户使用系统的负担。
(3) 数据库管理系统(DBMS )
数据库管理系统(DBMS )是指数据库系统中管理数据的软件系统。DBMS 是数据库系统的核心组成部分。对数据库的一切操作,包括定义、查询、更新及各种控制,都是通过DBMS 进行的。
在不同的计算机系统中,由于缺乏统一的标准,即使同种数据模型的DBMS ,它们在用户接口、系统功能方面也常常是不相同的。
用户对数据库进行操作,是由DBMS 把操作从应用程序带到外部级、概念级、再导向内部级,进而操作存储器中的数据。DBMS 的主要目标,是使数据作为一种可管理的资源处理。
DBMS 的主要功能为:
数据库定义功能:DBMS 提供数据定义语言(DDL )定义数据库的三级结构,包括外模式、概念模式、内模式及基相互之间的映象,定义数据的完整性、安全控制等约束。因此,在DBMS 中应包括DDL 的编译程序。
数据库的操纵功能:DBMS 提供数据操纵语言(DML )实现对数据库中数据的操作。基
本的数据操作分成两类四种:检索(查询)更新(插入、删除、修改)
数据库的保护功能:数据库中的数据是信息社会的战略资源,对数据的保护是至关重要的大事。DBMS 对数据库的保护主要通过四个方面实现:
数据库恢复:数据库被破坏或数据不正确时,系统有能力把数据库恢复到正确的状态。 数据库的并发控制:DBMS 的并发控制子系统能防止错误发生,正确处理好多用户、多任务环境下的并发操作。
数据库的完整性控制:保证数据库中数据及语义的正确性和有效性,防止任何对数据造成错误的操作。
数据库的安全性控制:防止未经授权的用户蓄谋或无意地存取数据库中的数据,以免数据的泄露、更改或破坏。
数据库的存储管理:把各种DML 语句转换成低层的文件系统命令,起到数据的存储、检索和更新的作用。
(4) Access 数据库介绍
Access 数据库软件是一个关系型数据库管理系统,它为用户提供了数据库管理的工具集和应用程序的开发环境。Microsoft Office 应用软件在办公自动化方面已得到广泛的应用,而Access 2000是Office 2000系列中的重要组件之一,它是关系型数据库,特别是中小型数据库应用领域中最通用的数据库软件。
Access 是一种数据库管理系统(DBMS ), 它同Oracle 、DBASE 和Foxpro 等数据库软件系统一样,用于构造数据库应用程序并实行对数据库的统一管理。用户可以通过Access 提供的开发环境及工具集方便地构建数据库应用程序,大部分是直观地可视化地操作,无需编写程序代码便可方便地完成数据库的管理工资
它的优点是:
1. ACCESS 是真正的关系型数据库管理系统。ACCESS 具有主关键字和外部关键字定义,提供了数据库的完整性应用,避免数据遭到不合理的删除或修改。ACCESS 数据库还具有数据确认规则,以免输入的数据是非精确数据。它支持的字段类型有数字 文本、日期、货币、备注、是/否及OLE 对象和空值等。可以说,ACCESS 数据库软件提供了真正的关系型数据库管理。
2. ACCESS是面向数据库开发人员和最终用户的数据库管理系统。ACCESS 提供了
VBA(VISUAL BASIC FOR APPLICATION)语言。对于数据库开发人员。利用该语言以及系统提供的可视化和向导,便可以设计出具有一定规模、功能强大的数
据库应用系统。对于数据库的最终用户,并不需要编程,就可利用这些可视化工具和
向导进行简单的数据库设计和管理。
3.ACCESS 是开放式的数据库管理系统。
4.ACCESS 内置了大量的内部函数。ACCESS 软件包含了大量的内部函数,包括数据库、数学、财务、日期、时间、字符串等函数。
5.可视化的操作工具和方便的向导。
(5) Visual basic编程语言简介
Visual Basic 简称VB ,是微软公司推出的一种可视化编程工具,是当今世界上应用最广泛的编程语言之一,它也被公认为是编程效率最高的一种编程方法。它开发速度快捷,具有语法简单易学的开发环境,是初学者的首选。VB 提供可视化的开发环境,使用者可以像搭积木一样构建出程序的界面,而且它提供丰富的控件组,省去了自己编写代码的实现这些效果的麻烦,这样就可以把更多的精力放在程序功能方面的实现上。本系统中使用的是Microsoft Visual Basic 6.0 中文企业版。
二、系统分析部分
1)业务流程图
2)数据流程图
数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。符号说明如下:
外部实体
处理
数据流
数据存储
数据流程图分多少层次视实际情况而定,考虑到工资管理信息系统相对较小,在这里我把数据流程图分为二层。
第一层:
第二层:
3)功能分析图
系统功能分析是在系统开发的总体任务的基础上完成的。该工资管理系统采用的是MIS 的设计方法,在设计系统之前,需要充分了解系统的功能,根据系统所要达到的要求设计具体的模块。本系统需要完成的功能主要有:
4)数据字典 数据项的定义:
数据流定义:
6)管理信息系统流程设想图(新系统模型)
通过对现行系统的需求分析,本系统数据流向是合理的,但为了便于计算机化管理,也为了使系统能够提供更多的辅助决策信息,本系统应做如下改进设想: 1. 财务处理系统未对工资分配情况进行反馈,应增加工资分配反馈环节; 2. 工资统计与工资汇总重复计算,去除工资统计环节; 3. 工资查询在财务处理系统进行查询,减少不必要环节;
根据前面的分析与评价结果,提出的新系统数据流程如图:
三、系统设计部分
1)功能结构图设计
相比原来的功能结构图,我们对其进行简化,把奖金、劳务工资等放入“更新主文件”目录,罚金、税金等放入“扣款文件”目录,基本工资放入“主文件”目录,可以看出来,现在的系统较原来更简洁,更容易让员工清楚工资发放机制。
2)新系统信息处理流程设计
现行系统的需求分析,本系统数据流向是合理的,但为了便于计算机化管理,也为了使系统能够提供更多的辅助决策信息,本系统应做如下改进设想:
1. 财务处理系统未对工资分配情况进行反馈,应增加工资分配反馈环节; 2. 工资统计与工资汇总重复计算,去除工资统计环节; 3. 工资查询在财务处理系统进行查询,减少不必要环节;
新系统信息处理流程:
四、系统实施部分
1)程序框图
登陆界面:
账号与密码都为1,输入点击登录按钮:
进入主界面:
点击员工信息,跳出如下界面:
在员工信息管理界面可以对不同部门员工进行添加、修改、删除操作,点击离开后,进入基本工资界面:
2)源程序
管理员登录界面:
工资管理登录系统图登陆窗口,进行密码验证,如果用户输入正确的用户名和密码就可正常的登陆。如果密码错误则出现错误提示,如果想关闭系统,单击取消按钮即可退出系统,其实现代码如下: Login.frm
Public EN, a, PW As String Public P As Integer
Private Sub Command1_Click(Index As Integer) Select Case Index Case 0
txtSQL = "select * from accounts where account = '" & Text1(0).Text & "'" & "and password = '" & Text1(1).Text + "'" Set rs = exesql(txtSQL) If rs.EOF = True Then
MsgBox "没有这个用户,请重新输入!", vbCritical, "警告"
With Text1(0) .SelStart = 0
.SelLength = Len(Text1(0).Text) Text1(0).SetFocus End With Else
EN = Trim(rs.Fields(0)) a = Trim(rs.Fields(1)) PW = Trim(rs.Fields(2)) P = Trim(rs.Fields(3)) Unload Me
Set login = Nothing Main.Show End If Case 1
Text1(0).Text = "" Text1(1).Text = ""
Command1(0).Enabled = False Command1(1).Enabled = False Text1(0).SetFocus Case Else Unload Me
Set login = Nothing End
End Select End Sub
Private Sub Form_Activate() Text1(0).SetFocus End Sub
Private Sub Label1_Click(Index As Integer)
End Sub
Private Sub Text1_Change(Index As Integer)
If Text1(0).Text "" Or Text1(1).Text "" Then Command1(1).Enabled = True End If
If Text1(0).Text "" And Text1(1).Text "" Then Command1(0).Enabled = True Else
Command1(0).Enabled = False End If End Sub
员工信息界面:
在员工信息管理界面可以对不同部门员工进行添加、修改、删除等功能操作,要求添加工人编号、所在部门、用户名、职务等。点击离开后,进入基本工资界面,其功能实现代码如下:
Grengl.frm
Option Explicit
Dim rs0 As New ADODB.Recordset
Dim sql0 As String
Dim a As String
Dim b As String
Dim c As Boolean
Dim d As Boolean
Private Sub Command1_Click()
Timer1.Enabled = True
Text1.Enabled = True
c = False
d = False
End Sub
Private Sub Command2_Click()
Timer1.Enabled = True
Text1.Enabled = False
c = False
d = False
End Sub
Private Sub Command3_Click()
Dim rs00 As New ADODB.Recordset
Dim sql00 As String
sql00 = "delete from yuangon where id='" & rs0.Fields(0) & "'"
Dim a As String
Dim b As String
Dim choose
a = "信息删除"
b = "" & rs0.Fields(0) & " 删除"
choose = MsgBox("删除员工信息会将其其它相关信息也一起删除, 是否删除?", vbOKCancel, "系统信息")
If choose = vbOK Then
Call data3(sql00, a, b)
Else
End If
Set rs00 = data1(rs00, sql0)
Set rs0 = rs00
Set DataGrid1.DataSource = rs0
DataGrid1.Refresh
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
Private Sub Command5_Click()
Dim rs4 As New ADODB.Recordset
Dim sql4 As String
Dim rs5 As New ADODB.Recordset
Dim sql5 As String
Dim sql6 As String
On Error GoTo k2:
If Text1.Text "" Then
If Text1.Enabled = True Then
sql4 = "select jibengonzi from bumengz where bumen='" & DataCombo2.Text & "'and ziwu='" & DataCombo1.Text & "'"
Set rs4 = data1(rs4, sql4)
sql5 = "insert into yuangon (id,xinming,nianling,xingbie,bumen,ziwu) values ('" & Text1.Text & "','" & Text2.Text & "'," & Text3.Text & ",'" & Combo1.Text & "','" & DataCombo2.Text & "','" & DataCombo1.Text & "')"
sql6 = "insert into jibengonzi (id,jibengonzi) values ('" & Text1.Text & "'," & rs4.Fields(0) & ")"
a = "信息增加"
b = " " & Text1.Text & " 信息增加"
Call data4(sql5, sql6, a, b)
Set rs5 = data1(rs5, sql0)
Set rs0 = rs5
Else
sql4 = "select jibengonzi from bumengz where bumen='" & DataCombo2.Text & "'and ziwu='" & DataCombo1.Text & "'"
Set rs4 = data1(rs4, sql4)
sql5 = "update yuangon set xinming='" & Text2.Text & "',nianling=" & Text3.Text & ",xingbie='" & Combo1.Text & "',bumen='" & DataCombo2.Text & "',ziwu='" & DataCombo1.Text & "' where id='" & Text1.Text & "'"
If c = True Or d = True Then
sql6 = "update jibengonzi set jibengonzi=" & rs4.Fields(0) & ""
Else
sql6 = ""
End If
a = "信息修改"
b = " " & Text1.Text & " 信息修改"
If sql6 "" Then
Call data4(sql5, sql6, a, b)
Else
Call data3(sql5, a, b)
End If
Set rs5 = data1(rs5, sql0)
Set rs0 = rs5
End If
Else
MsgBox "员工编号不能为空"
End If
c = False
d = False
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Set DataGrid1.DataSource = rs0
DataGrid1.Refresh
Exit Sub
k2:
If Err.Number = 3021 And Text1.Text = "" Then MsgBox " 员工编号不能为空", vbOKOnly, " 错误"
If Err.Number = 3021 And DataCombo1.Text = "" Or DataCombo2.Text = "" Then MsgBox " 部门, 职位不能为空", vbOKOnly, "错误"
If Err.Number = -2147467259 Then MsgBox "年龄必须在16~60周岁", vbOKOnly, "错误"
If Err.Number = -2147217900 And Text1.Text "" Then MsgBox "员工编号重复!", vbOKOnly, "错误"
End Sub
Private Sub Command6_Click()
Timer2.Enabled = True
c = False
d = False
End Sub
Private Sub DataCombo1_Click(Area As Integer)
d = True
End Sub
Private Sub DataCombo2_Change()
Dim rs3 As New ADODB.Recordset
Dim sql3 As String
sql3 = "select ziwu from bumengz where bumen='" & DataCombo2.Text & "'" Set rs3 = data1(rs3, sql3)
Set DataCombo1.DataSource = rs3
Set DataCombo1.RowSource = rs3
c = True
End Sub
Private Sub DataCombo2_Click(Area As Integer)
Dim rs3 As New ADODB.Recordset
Dim sql3 As String
sql3 = "select ziwu from bumengz where bumen='" & DataCombo2.Text & "'" Set rs3 = data1(rs3, sql3)
Set DataCombo1.DataSource = rs3
Set DataCombo1.RowSource = rs3
c = True
End Sub
Private Sub DataCombo3_Click(Area As Integer)
Dim rs2 As New ADODB.Recordset
Dim sql2 As String
sql2 = "select * from yuangon where bumen='" & DataCombo3.Text & "'"
Set rs2 = data1(rs2, sql2)
If rs2.BOF Then
MsgBox "部门内无员工信息", vbOKOnly, "新部门"
Else
Set rs0 = rs2
End If
Set DataGrid1.DataSource = rs0
DataGrid1.Refresh
End Sub
Private Sub DataGrid1_DblClick()
On Error GoTo k1:
If Text1.Enabled = False Then
Text1.Text = rs0.Fields(0)
Text2.Text = rs0.Fields(1)
Text3.Text = rs0.Fields(2)
Combo1.Text = rs0.Fields(3)
DataCombo2.Text = rs0.Fields(4)
DataCombo1.Text = rs0.Fields(5)
End If
Exit Sub
k1:
If Err.Number = 3021 Then MsgBox "无记录, 无法修改", vbOKOnly, "
End Sub
Private Sub Form_Load()
Combo1.ListIndex = 0
Set rs0 = New ADODB.Recordset
sql0 = "select * from yuangon"
Set rs0 = data1(rs0, sql0)
Set DataGrid1.DataSource = rs0
DataGrid1.Refresh
Dim rs1 As New ADODB.Recordset
Dim sql1 As String
sql1 = "select * from bumen"
Set rs1 = data1(rs1, sql1)
Set DataCombo3.DataSource = rs1
Set DataCombo3.RowSource = rs1
Set DataCombo2.DataSource = rs1
Set DataCombo2.RowSource = rs1
c = False
d = False
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii 8 Then
KeyAscii = 0
End If
End Sub
错误"
Private Sub Timer1_Timer()
If DataGrid1.Height > 2655 Then DataGrid1.Height = DataGrid1.Height - 16.8 If Frame1.Height
If Frame1.Top > 2880 Then Frame1.Top = Frame1.Top - 15.6
If DataGrid1.Height = 2655 Then Timer1.Enabled = False
End Sub
Private Sub Timer2_Timer()
Frame1.Visible = False
If DataGrid1.Height
Frame1.Top = 4440
Frame1.Height = 15
Frame1.Visible = True
Timer2.Enabled = False
End If
End Sub
基本工资管理界面:
基本工资管理界面可以对各部门的不同职务基本工资进行添加、修改和删除操作,其实现代码如下:
Main.frm
Private Sub Form_Load()
StatusBar1.Panels(1) = "现在时间:" & " " & Date & " " & Time
End Sub
Private Sub j1_Click()
fuligl.Show
End Sub
Private Sub j2_Click()
bumengl.Show
End Sub
Private Sub j3_Click()
ziwugl.Show
End Sub
Private Sub k_Click()
End Sub
Private Sub k1_Click()
gerengl.Show
End Sub
Private Sub k2_Click()
fuli.Show
End Sub
Private Sub k3_Click()
bmgzgl.Show
End Sub
Private Sub k4_Click()
gonzitz.Show
End Sub
Private Sub l1_Click()
gonzicx.Show
End Sub
Private Sub l2_Click()
gonzidel.Show
End Sub
Private Sub l3_Click()
gonzifafang.Show
End Sub
Private Sub q_Click()
rizicx.Show
End Sub
Private Sub Timer1_Timer()
StatusBar1.Panels(1) = "现在时间:" & " " & Date & " " & Time
End Sub
Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)
Select Case Button.Index
Case 1
gerengl.Show
Case 2
Case 3
laowugongzi.Show
Case 4
jiangjin.Show
Case 5
koukuan.Show
Case 6
gongzihuizong.Show
Case 7
End
End Select
Option Explicit
Dim rs1 As New ADODB.Recordset
Dim sql1 As String
Dim a As String
Dim b As String
Private Sub Command1_Click()
Dim rs4 As New ADODB.Recordset
Dim sql4 As String
Dim rs41 As New ADODB.Recordset
Dim sql41 As String
On Error GoTo Now1:
sql41 = "select * from bumengz where bumen='" & DataCombo1.Text & "'and ziwu='" & DataCombo2.Text & "'"
sql4 = "update bumengz set ziwu='" & DataCombo2.Text & "',jibengonzi=" & Text2.Text & " where bumen='" & rs1.Fields(0) & "' and ziwu='" & rs1.Fields(1) & "' " a = "信息修改"
b = "" & DataCombo1.Text & " " & DataCombo2.Text & "" & " 基本工资"
If DataCombo2.Text rs1.Fields(1) Then
Set rs41 = data1(rs41, sql41)
If rs41.BOF = True Then
Call data3(sql4, a, b)
Set rs4 = data1(rs4, sql1)
Set rs1 = rs4
Else
MsgBox "本部门内存在相同职务工资,无法修改", vbOKOnly, "错误"
End If
Call data3(sql4, a, b)
Set rs4 = data1(rs4, sql1)
Set rs1 = rs4
End If
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
Exit Sub
Now1:
Select Case Err.Number:
Case -2147217900
MsgBox "基本工资不能为空", vbOKOnly, "错误"
Case 3021
MsgBox "本部门内暂无职务工资信息", vbOKOnly, "错误"
End Select
End Sub
Private Sub Command2_Click()
End Sub
Private Sub Command3_Click()
Dim sr As New ADODB.Recordset
Dim sql As String
sql = "select * from bumengz"
Set sr = data1(sr, sql)
End Sub
Private Sub Command4_Click()
Unload Me
End Sub
Private Sub Command5_Click()
Dim rs3 As New ADODB.Recordset
Dim sql3 As String
sql3 = "insert into bumengz (bumen,ziwu,jibengonzi) values ( '" & DataCombo1.Text & "','" & DataCombo2.Text & "'," & Text2.Text & ")"
Dim rs31 As New ADODB.Recordset
Dim sql31 As String
sql31 = "select * from bumengz where bumen='" & DataCombo1.Text & "'and ziwu='"
a = "信息增加"
b = "" & DataCombo1.Text & "" & DataCombo2.Text & "" & "基本工资"
On Error GoTo Now1:
Set rs31 = data1(rs31, sql31)
If rs31.BOF Then
Call data3(sql3, a, b)
Set rs3 = data1(rs3, sql1)
Set rs1 = rs3
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
Else
MsgBox "本部门内存在相同职务工资,无法添加", vbOKOnly, "错误"
End If
Exit Sub
Now1:
Select Case Err.Number:
Case -2147217904
MsgBox "基本工资只能输入数字", vbOKOnly, "错误"
Case -2147217900
MsgBox "基本工资不能为空", vbOKOnly, "错误"
End Select
End Sub
Private Sub Command6_Click()
Dim rs4 As New ADODB.Recordset
Dim rs41 As New ADODB.Recordset
Dim sql4 As String
Dim sql41 As String
Dim choose
sql4 = "select * from yuangon where bumen='" & DataCombo1.Text & "'"
sql41 = "delete from bumengz where bumen='" & DataCombo1.Text & "'and ziwu='" & DataCombo2.Text & "'"
a = "信息删除"
b = "" & DataCombo1.Text & "" & DataCombo2.Text & "" & "基本工资"
If rs4.BOF Then
choose = MsgBox("确定要删除信息?", vbOKCancel + vbDefaultButton2 + vbQuestion, " 警告")
If choose = vbOK Then Call data3(sql41, a, b)
Else
MsgBox "对应部门职务存在,信息可能正被使用!删除失败", vbOKOnly, "错误" End If
Set rs41 = data1(rs41, sql1)
Set rs1 = rs41
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
End Sub
Public Sub DataCombo1_Click(Area As Integer)
Dim rs2 As New ADODB.Recordset
sql1 = "select bumen,ziwu,jibengonzi from bumengz where bumen='" & DataCombo1.Text & "'"
Set rs2 = data1(rs2, sql1)
Set rs1 = rs2
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
End Sub
Private Sub DataGrid1_DblClick()
If Not rs1.BOF Then
DataCombo2.Text = rs1.Fields(1)
Text2.Text = rs1.Fields(2)
Else
MsgBox "本部门内无信息", vbOKOnly, "错误"
End If
End Sub
Private Sub Form_Load()
Dim rs0 As New ADODB.Recordset
Dim sql0 As String
sql0 = "select * from bumen "
Set rs0 = data1(rs0, sql0)
Set DataCombo1.DataSource = rs0
Set DataCombo1.RowSource = rs0
DataCombo1.Refresh
Dim rs00 As New ADODB.Recordset
Dim sql00 As String
sql00 = "select * from ziwu "
Set rs00 = data1(rs00, sql00)
Set DataCombo2.DataSource = rs00
Set DataCombo2.RowSource = rs00
DataCombo2.Refresh
If rs0.BOF Or rs00.BOF Then
Else
Command1.Enabled = True
Command4.Enabled = True
Command5.Enabled = True
Command6.Enabled = True
End If
Set rs1 = New ADODB.Recordset
sql1 = "select bumen,ziwu,jibengonzi from bumengz"
Set rs1 = data1(rs1, sql1)
Set DataGrid1.DataSource = rs1
DataGrid1.Refresh
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If Not IsNumeric(Chr(KeyAscii)) And KeyAscii 8 Then
KeyAscii = 0
End If
End Sub
3)系统使用说明书
本系统基本上可以满足工资管理的基本要求,系统中使用的各种表格,保存相关的工资信息以及工资结构等信息。使用本系统的查询的前提是要输入员工的的标号,之后可以查询出员工的基本信息或工资结构。本系统经过实际的需求分析,采用功能强大的VB 作为开发工具,Microsoft SQL Server 作为数据库开发出来的小型的工资管理系统。 系统可以达到如下功能:1、通过员工的编号,查询出员工的基本信息。
2、通过员工的编号,查询出员工的工资结构以及基本工资。
3、通过员工编号,查询出员工的工资账目。
(5)附录或参考资料:
[ 1]黄梯云著 管理信息系统(第四版) 高等教育出版社
[ 2]刘炳文、许蔓舒编著 Visual Basic 程序设计教程 清华大学出版社
[ 3]Evangelos编著 Visual Basic 6.0高级开发指南 电子工业出版社
[ 4]李东玉等编著 Visual Basic6.0控件大全 清华大学出版社
[ 5]龚沛曾等编著 Visual Basic程序设计教程 高等教育出版社
[ 6]Francesco Balena著 Visual Basic 6编程技术大全 机械工业出版社
[ 7]张宏林等编著 Visual Basic6 开发数据库 人民邮电出版社
[ 8]刘韬等编著 Visual Basic数据库系统开发实例导航 人民邮电出版社
[ 9]王文莲等编著 电算化会计原理软件开发与试验 立信会计出版社
工资管理系统课程设计小结
经过小组成员的共同努力,通过可行性分析、系统分析、系统设计,最终系统功能达到了设计的要求,实现了我们的设计计划。
在实现系统功能的过程中,我们小组成员在翻阅了大量VB 方面的书籍,重新温习VB 的基础知识,了解VB 的基本语法, 又看了一些经经典案例后,学会了一些高级控件的使用,并运用到了系统中。
工资管理信息系统的整个开发过程采用了结构化的设计方法,遵循先逻辑后物理、自顶而下等原则,实现系统各部分的模块化,各子系统之间独立性强,便于系统的运行维护和日后的扩充和完善,达到的功能的设计要求。
由于我们的知识和经验的限制,我们肯定在细节方面还有很多的不足,有些细致的地方欠缺考虑,无法在系统中体现出来,有些虽然我们考虑到了,由于知识的严重欠缺,无法达到设计的要求。这个软件还存在这样那样的无法避免的缺点,但是在专业知识方面,学到了在课堂中无法学到的知识。比如在可行性分析中,一定要考虑到公司管理的实际情况,人机界面的设计要方便使用等,这些知识对一个系统开发人员来说,虽然是最基本的要求,但是我们在课程设计中学到呢,对我们将来的工作不失为一个好的开始。
由于某些方面的不足,在系统实现过程中,有些功能不能很好的实现,有待进一步改进。设计过程中遇到的困难,在老师和同学的帮助下,最终我克服了难题,完成了我的工作管理系统的设计。
通过此次系统地编写工资管理信息系统,自己在编程能力方面有了显著的提高。对VB 和管理信息系统了更加深刻的了解,深化了所学的基本知识,由单纯的书本知识,应用到具体实践,增强知识转化为实际操作的能力。