工资管理系统概述(doc 43页)
【软件工程】工资管理系统
【软件工程】工资管理系统在当今的企业管理中,工资管理是一项至关重要的任务。
一个高效、准确且易于操作的工资管理系统不仅能够提升企业的财务管理效率,还能增强员工对企业的信任和满意度。
接下来,让我们深入了解一下工资管理系统。
工资管理系统是一种专门用于处理企业员工工资相关事务的软件应用程序。
它的主要功能包括员工基本信息管理、工资计算与发放、工资条生成、税务处理、报表统计等。
首先,员工基本信息管理是工资管理系统的基础。
系统中需要存储员工的姓名、工号、部门、职位、入职时间、银行账号等关键信息。
这些信息的准确性直接影响到后续工资计算和发放的准确性。
例如,如果员工的银行账号信息错误,那么工资就无法正常发放到员工的账户中,这将给员工和企业带来不必要的麻烦。
工资计算是系统的核心功能之一。
它需要考虑多种因素,如员工的基本工资、绩效工资、加班工资、津贴补贴、扣税等。
对于不同的岗位和职级,工资计算的方式可能会有所不同。
例如,销售人员的工资可能会与销售业绩挂钩,生产工人的工资可能会与生产数量和质量相关。
系统需要能够根据预设的规则和算法,准确地计算出每个员工的应发工资和实发工资。
在工资发放环节,系统需要与银行等金融机构进行对接,实现工资的批量转账。
同时,系统还应该具备工资发放记录的功能,以便企业随时查询和核对工资发放的情况。
工资条生成是为了让员工清楚地了解自己的工资构成和扣除项目。
工资条通常包括员工的基本信息、各项工资收入和扣除项目的明细、应发工资、实发工资等内容。
工资条可以以纸质形式发放给员工,也可以通过电子邮件或企业内部系统发送给员工。
税务处理是工资管理中不可忽视的一部分。
系统需要根据国家税收政策,准确计算员工应缴纳的个人所得税,并在工资发放时进行代扣代缴。
同时,系统还应该能够生成相关的税务报表,以满足企业纳税申报的需要。
报表统计功能可以帮助企业管理层了解工资支出的总体情况。
通过报表,企业可以分析不同部门、不同岗位员工的工资水平,比较不同时期的工资变化趋势,为企业的人力资源决策提供数据支持。
工资管理系统概述
工资管理系统概述工资管理系统是一个企业内部管理的重要组成部分。
工资管理系统主要是用于管理企业员工的薪资、奖金、福利和社保等与钱财有关的事项。
对于企业而言,一个良好的工资管理系统能够增强企业与员工之间的信任度,减少劳动纠纷的发生,提高员工工作积极性和企业的运营效率。
本文将对工资管理系统进行全面的概述,包括其定义、特点、优点和构成组成等方面。
1.定义工资管理系统是一种管理员工薪酬、奖金、福利和社保等相关事项的信息系统,其主要目的是用于企业内部对员工薪资管理的计算、发放及统计等方面的处理。
2.特点1.减轻人力工资管理系统能够自动化地处理大量与员工薪资有关的数据,大大减轻了人力成本。
2.提高精度工资管理系统能够准确地计算员工的收入、福利和社保等,极大地提高了精度,减少了计算错误的发生。
3.保护敏感数据工资管理系统通过严格的权限控制,保护了敏感数据的安全,防止数据泄露和误用。
4.提高效率工资管理系统能够实现信息化处理,提高了处理效率,同时也方便了员工的查询。
5.增强透明度工资管理系统可以提高透明度,让员工及时了解收入的情况,减少疑问和争议。
3.优点1.提高工作效率工资管理系统可以自动化地处理工资相关事项,提高了工作效率,节省了时间和人力成本。
2.减少错误率工资管理系统能够准确计算员工的薪酬、福利等方面的数据,可以有效减少错误率,提高数据处理的准确性。
3.保护敏感信息工资管理系统通过严格的权限控制,保护了敏感信息的安全,减少了信息泄露和误用的风险。
4.减少劳动纠纷工资管理系统能够提高薪资透明度,让员工及时了解收入情况,减少了因薪酬问题引起的劳动纠纷。
5.成本效益高通过使用工资管理系统,企业能够节省人力、缩短处理时间,并减少人力资源成本和统计成本。
6.实时更新工资管理系统能够实时更新员工信息,有利于及时处理员工的薪资、福利和社保等相关事项。
4.构成组成工资管理系统包括以下模块:1.基础数据管理:包括员工信息、应发工资、应扣项目等相关数据。
工资管理系统
一、工资管理系统的需求分析工资管理系统包括信息浏览查询、数据库维护、基本信息管理.1。
系统功能需求(1)员工可以进入此系统查询工资和查看基本的信息。
(2)管理员可以对员工的信息进行添加,删除,修改。
并对数据库中的数据维护,包括数据备份,导入数据,导出数据。
满足上述需求的系统主要包括下面几个模块(1)数据库维护模块:管理员要对数据库内所有的数据进行备份和恢复,并可实现数据导入导出功能.(2)基本信息管理模块:实现对员工基本信息的管理操作,包括员工基本数据信息的添加、修改、删除和查询等功能。
(3)信息浏览查询模块:用户对系统中的信息进行查询。
可根据条件查询员工历史工资数据(如按月份查询、按姓名查询、按部门查询等)。
2数据库维护模块数据备份:将一个月的数据进行复制.数据导入:每天将数据导入到数据库中。
数据导出:每天下班将数据导出数据库。
3基本信息管理模块删除员工信息:如果有员工辞职则删除该员工的信息.添加员工信息:如果聘用了新员工则添加员工信息.修改员工信息:如果有员工的信息有所变动则修改。
4信息浏览查询模块查询员工信息:员工查询自己的信息。
查询工资:员工查询自己的工资情况。
功能需求细化:①在工资管理系统中,需要员工的参与,员工可以查询工资的历史数据并领取工资,还可以通过员工编号查看员工的基本信息。
②管理员是此系统的核心,管理着整个系统。
他要对所有的员工的信息的管理,对数据进行添加,删除,修改。
管理员还要对系统进行相关维护操作,数据备份,数据恢复,数据导入等以及更新数据库。
(1)系统用户参与的总的用例图管理员和员工都可发从用户这个参与者中泛化而来,用户是指此系统的所有使用者,以登录系统完成相应的操作.系统用户参与的总的用例图如下图所示.从图中可以清楚地看到泛化关系与各个参与者所参与的用例。
图2.1系统用户参与的总的用例图(2)工资统计的用例图此用例图清晰看出工资发到员工手里的过程。
有四个参与者,包括经理,职工,行政部门,业务部门。
员工薪资管理系统概述(doc 28页)
员工薪资管理系统概述(doc 28页)员工薪资管理课题选取背景及意义背景:随着经济的发展,各个公司的规模也越来越大,为了更好的、更方便地管理企业中各个成员的工资发放情况,我们必须要有一个完善的、合理的、便捷的员工薪资管理系统来管理公司员工工资的发放情况。
该员工薪资管理系统主要用于员工的工资发放管理,管理员可以通过此员工薪资管理系统保证职员薪资信息的准确性。
此系统的建立和使用有利于管理者和职员更好的了解自己的薪资信息,提高公司员工薪资发放工作的效率。
意义:本系统提供了基本的人员信息管理,同时对员工的基本工资、浮动工资和工资发放进行系统管理,同时配以查询功能,以便能真正适用于各类中小企业及失业单位。
一、员工薪资管理系统概述1、现状分析随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。
早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。
早期工资管理多采取纸质材料和具有较强的时间限制。
随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。
建设一个科学高效的信息管理系统是解决这一问题的必由之路。
企业内部财务管理是该企业运用现代化技术创造更多更高的经济效益的主要因素之一。
工资管理作为企业内部的一种财务管理也是如此,由于企业职工人数较多,每一位职工的具体实际情况也不尽相同,各项工资条款的发放,如果没有一个完整的管理系统对企业和员工的工作都带来许多的不便。
基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。
2、系统目标员工薪资管理系统的主要目的是利用计算机对员工的各种工资信息进行日常的管理,如查询、修改、添加、删除以及存储等,迅速准确地完成各种工资信息的统计计算和汇总工作,针对系统服务对象的具体要求,设计了企业工资管理系统。
企业工资管理系统的设计概要
第一章引言1.1、开发背景随着计算机技术的不断发展,计算机作为知识经济时代的产物,已被广泛应用于社会各个行业和领域。
随着我国国企改革的深入和社会主义市场经济的日趋繁荣,导致各企业间的竞争日益激烈,迫使企业采取先进的计算机硬件设备以及高质量的辅助软件来管理企业的各项运作,以提高本企业的劳动生产率以及人员效率。
工资管理系统软件作为一种管理软件正在各企事业单位中得到越来越广泛的应用。
企业的工资管理是公司管理的一个重要内容。
随着企业人员数量增加,企业的工资管理工作也变得越来越复杂。
工资管理既涉及到企业劳动人事的管理,同时也是企业财务管理的重要组成部分。
工资管理需要和人事管理相联系,同时连接工时考勤和医疗保险等等,来生成企业每个职工的基本工资、津贴、医疗保险、保险费、实际发放工资等。
资金是企业生存的主要元素,资金的流动影响到企业的整体运作,企业员工的工资是企业资金管理的一个重要的组成部分。
早期的工资统计和发放都是使用人工方式处理纸质材料,不仅花费财务人员大量的时间且不易保存,往往由于个人的因素抄写不慎或计算疏忽,出现工资发放错误的现象。
早期工资管理多采取纸质材料和具有较强的时间限制。
基于以上原因,企业工资管理系统使用电脑安全保存、快速计算、全面统计,实现工资管理的系统化、规范化、自动化。
企业工资管理系统是典型的信息管理系统(MIS ),前台程序开发工具采用微软的VB6,后台数据库采用Access 数据库。
VB6是一种面向对象的开发工具,具有组件丰富、语言简单、功能强大的优点。
Access 数据库具有与VB6无缝连接、操作简单、易于使用的优点。
运行结果证明,本企业工资管理系统极大提高了工作效率,节省了人力和物力,最终满足企业财务管理、员工工资发放的需要,同时也成为现代化企业管理的标志1.2、系统说明1.2.1、数据模型分析数据库是某个企业、组织或部门所设计的数据的一个综合,它不仅要反映数据本身的内容,而且要反映数据之间的联系。
第六章 工资管理系统
所得税设置
【人力资源】——【工资管理】——【设置 】 —— 【所得税设置】,打开【个人所得 税初始设置】对话框。或【所得税计算】-【设置】中
税率类别的设置 根据国家税法规定的个人所得税七级超额累进 税率进行设定。 点击【所得税设置】 “税率类别”编辑条, 在【个人所得税税率设置】窗口,单击【编辑 】,切换到“编辑”标签页,再单击【新增】 定义税率 定义个人所得税税率时,有含税级距和非含税 级距,均为按照税法规定减除有关非费用后的 所得额,含税级距适用于由纳税人负担税款的 工资、薪金所得;不含税的级距适用于由他人 (单位)代付税款的工资、薪金所得。
2016年3月
资计算公式设置
例如 基本工资小于等于900时,补贴为150元 ,其余的补贴为200元; 应发合计=基本工资+浮动工资+津贴+加 班+独补 扣款合计=病假+事假+房租水电+代扣所 得税+医疗保险+养老保险+工会 实发合计=应发合计-扣款合计
注意
1、设定计算公式时请先点击“新增”按钮,将 公式编辑完毕时,切记点击“保存”按钮,如 出错需要修改时,可点击“编辑”按钮进行修 改。一个计算方法中可设定多个运算公式,打 开公式名称的下拉菜单可以任意选择您所设置 的公式; 2、设定公式时,除数值外,其他所有公式语句 (项目、条件和运算符号)建议从右面的公式 选项中选取,不要手工录入,以避免错误。
初始化阶段
建立工资类别
在K/3工资系统中,可将工资分类别进行核算,方 便有些运用多套工资方案进行核算的企业和集团。
即使用户只有一套工资核算方案,也要进行工资类 别的设置
【人力资源】——【工资管理】—【类别管理
工厂工资管理系统
工厂工资管理系统工厂工资管理系统随着社会经济的发展,工厂里员工数量越来越多,工资管理也越来越复杂。
传统的手工计算工资已经无法适应现代化工业的需求,需要借助先进的电子技术来进行工资管理。
因此,工厂工资管理系统应运而生,成为现代工业管理的必备工具。
一、系统概述工厂工资管理系统是一种基于计算机和互联网技术的工资管理系统。
该系统可以对员工的工资进行全面、准确地统计和管理,同时,为员工提供工资查询、调整和申诉等服务。
该系统采用分布式架构,将数据存储在云平台上,并支持多人同时操作。
二、系统功能1.员工基本信息管理:系统可以对员工的个人信息进行录入、修改和删除,包括姓名、工号、身份证号码、联系电话等。
2.考勤管理:系统可以对员工的考勤信息进行自动记录和统计,包括迟到、早退、请假等情况。
同时,员工也可以通过系统进行考勤申诉和补签卡操作。
3.工资计算:系统可以根据员工的基本工资、绩效工资、考勤情况等因素,自动计算员工的工资,同时支持扣除社保、公积金等费用。
4.工资查询:员工可以通过系统查询自己的工资明细,包括基本工资、绩效工资、加班费、扣除项、个人所得税等。
5.工资调整:管理人员可以通过系统对员工的工资进行调整和调整审核,同时可以设置调整周期和调整幅度。
6.工资结算:系统可以通过自动结算模块,将员工的工资直接转入银行卡或者支付宝等账户,减少了手工结算的繁琐过程。
三、系统优势1.提高工资管理效率:工厂工资管理系统可以实现工资计算、结算等工作的自动化,减少了手工计算的时间和工作量,提高了工资管理效率。
2.增强数据安全性:该系统采用数据加密、权限控制等技术,确保数据在传输和存储过程中的安全性,保护员工隐私。
3.易于操作使用:该系统的界面友好,操作简便,支持多语言,员工可以轻松进行查询和申诉等操作。
4.提高工资管理精度:工厂工资管理系统可以实现自动计算和统计,准确记录员工的工资情况,避免了手工计算的错误。
5.便于管理人员分析决策:系统可以实时、准确地反映员工的工资情况,为管理人员提供重要的参考信息,便于分析和决策。
数据库-工资管理系统
数据库-工资管理系统(总34页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March1 需求分析1.1系统分析对于一个企业来说,正确、及时而且规范地进行员工工资的管理和发放无疑就是十分重要的。
由于工资计算往往涉及多方面的数据,对于每位员工往往需要单独计算,在员工数量较多时,工资管理的工作量就会变得很大,而且在重复的数据输入和计算中容易出错。
利用数据库对企业职工工资进行管理是数据库技术在当代企业管理中的一个重要应用。
利用数据库技术,可以保证工资数据的安全完整。
本系统通过对企业基本信息管理、工资管理、奖惩管理3个环节的数据收集,建立现代企业工资管理系统,实现有用数据的快速查询,减少操作中可能出现的错误以及减少数据管理的工作量。
1.2系统功能设计在本系统中,主要功能包括:(1)保存职工的基本信息资料(2)根据工资管理数据和员工的奖惩情况对职工每月的工资进行计算。
(3)将职工工资的数据进行保存,便于查找和核实。
(4)对保存的数据,可以根据特殊字段进行查找。
图1.1是本系统的功能模块图。
图1.1 系统功能模块图2 概要设计2.1数据库的建立使用SQL创建一个名为“工资”的数据库。
2.2工资数据表的设计在本数据库中,将建立3个数据表,其功能如下:员工基本信息:用于存放员工的基本信息情况,包括员工的民族、出生年月、部门等。
员工工资表:用于存放员工的基本工资、交通补助等。
员工奖惩记录:用于记录员工的奖惩类别和奖惩原因等。
这3个数据表的结构如表2.21至表2.23所示。
图2.21 员工基本信息表设计图2.22 员工工资表的设计图2.23 员工奖惩记录表的设计E-R图3 详细设计3.1工程的建立在“开始”菜单中启动VB,将弹出“新建工程”窗体如图3.1所示。
在该窗体的“新建”选项卡中选择“标准EXE”,单击“打开”按钮,系统将生成一个新工程,默认名称为“工程1”,如图3.1所示。
金蝶ERP工资管理系统概述
一、工资管理系统的 主要功能
工资管理系统的主要功能如下:
1 提供了多个工资类别处理的设置,有利于用户对不 同类型的人员工资进行分类计算和管理。
2 可以自由设置工资项目和计算公式,并可对平时发 生的工资变动进行调整。
3 可以自动计算个人所得税,自动进行扣零处理,生 成的工资文件可以直接供银行代发工资。
在新的会计年度开始时,可在“设置”菜 单中选择所需修改的内容,如人员附加信息、 人员类别、工资项目和部门等,这些设置只有 在新的会计年度第一个会计月中删除所涉及的 工资数据和人员档案后,才可进行修改。
部门设置 人员类别设置 工资项目设置 人员附加信息设置 银行名称设置 计件工资标准、方案设置
初始设置
4 可以自动计算汇总工资数据,自动完成工资费用的 分摊,自动生成相关凭证。
5 可以便捷地进行工资数据查询和分析,有利于对职 工薪酬的评价比较。
二、工资管理系统与其他系统的主要关系
➢ 工资管理系统与系统管理共享基础数据,工资管理系统将工资分摊的结果 生成转账凭证,传递到总账管理系统,两个系统可互相查询凭证; ➢ 工资管理系统能够向成本核算系统传送相关费用的合计数据; ➢ 报表系统可以利用公式向导从工资管理系统中提取数据; ➢ 人力资源管理系统与工资管理系统共享一套基础资料,可以将绩效考核、 考勤记录导入工资系统,作为工资发放的依据。
报表查询 凭证查询
期末处理
启动工资管理系统 建立工资账套 初始设置 建立工资类别 部门选择 人员档案管理 工资变动
代扣所得税处理 银行代发
工资分摊、费用计提 工资类别汇总 月末处理
参数设置 扣税设置 扣零设置 人员编码设置
计件工资统计 工资项目选择 计算公式设置 基本数据录入
第三章 工资管理系统【新版精品资料】
第三章工资管理系统工资管理系统的操作流程1.首先注册,进入工资管理系统。
如果是第一次使用,需要进行基础数据设置(女跡扣零设置、扣税设置等)和选项设置。
2.如果是多类别情况,需要进行工资类别的设置:如使用计件工资,需要进行计件资方案的设置。
3.进行工资项目和计算公式的设置,并录入基本数据.4.日常工作,主要是对本月变动项进行更改。
5.月末处理所得税的扣除工作.如果是银行代发工资,则将数据按银行指定的格式输出并报送到银行;如果是现金发放,可以查询并打印分钱清单。
,,6.进行工资分摊,生成凭证,并传递到总账管理系统.7.进行月末处理。
1.在系统管理中启用工资管理系统①执行“开开始”1“程序”I“用友T3系列管理软件”I“用友T3”|“系统管理”命令,以账套主管身份注册系统管理。
②执行“账套”I“启用”命令,打开“系统启用”对话框,选中“W A工资管理”复选框,弹出“日历”对话框,选择工资系统启用日期为“2009年1月1日",单击【确定】按钮,系统弹出“确实要启用当前系统吗?"信息提示框,单击【是】按钮返回。
2.建立工资账套①以账套主管身份注册进入用友T3主界面。
单击“工资”菜单项,打开“建立工资套"对话框.②在“参数设置”中,选择本账套所需处理的工资类别个数“多个”,默认币别名称为“人民币RMB”,如图6—1所示,单击【下一步】按钮.注意‘‘父例中对正式人员和临时人员分别进行核算,所以工资类别应选择“多个”.③在“扣税设置”中,选中“是否从工资中代扣个人所得税”复选框,如图6—2所示,单击【下一步】按钮。
注意选择代扣个人所得税后,系统将自动生成工资项目“代扣税”并自动进行代扣税金的计④在“扣零设置”中,不做选择,直接单击【下一步】按钮。
注意扣零处理是指每次发放工资时将零头扣下,积累取整,于下次工资发放时补上,系统在计算工资时将依据扣零类型(扣零至元、扣零至角、扣零至分)进行扣零计算。
第9章工资管理系统
第九章工资管理系统第一节工资管理概述一、工资管理系统的功能1.初始设置通过工资系统的初始设置,可以根据企业需要建立工资账套,设置工资系统运行所需要的各项基础信息,为日常处理建立应用环境。
初始设置的主要内容包括:(1)工资账套参数设置2.3.三、工资系统应用方案1.单类别工资核算方案如果企业中所有员工的工资发放项目相同、工资计算方法也相同,那么可以对全部员工的工资进行统一核算,即选择单类别工资核算方案。
2.多类别工资核算方案(1)企业中存在不同类别的人员,不同类别人员工资发放项目不同、计算公式也不相同,但需要进行统一工资核算管理。
(2)企业每月进行多次工资发放,月末需要进行统一核算。
例如企业采用周薪制,或工资和奖金分次发放。
(3)企业在不同地区设有分支机构,而工资核算由总部统一管理。
(4)工资发放时使用多种货币,如人民币、美元等。
四、工资系统的操作流程见教材第196页。
第二节工资系统初始设置一、建立工资账套工资系统启用之后,具有相应权限的操作员就可以登录本系统了。
如果是初次进入,系统将自动启动建账向导。
建账向导分四步:参数设置、扣税设置、扣零设置、人员编码。
1.参数设置在参数设置中,需要选择本单位工资核算的应用方案,确定工资核算本位币,以及是否核算计件工资。
工资类别个数分为单个和多个两种。
如果本单位按周或每月多次发放工资,或者是单位中有多种不同类别(部门)的人员,工资发放项目不尽相同,计算公式亦不相同,但需进行统一工资核算管理,应选择“多个”工资类别;如果单位中所有人员的工资统一管理,而人员的工资项目、工资计算公式全部相同,选择“单个”工资类别,可提高系统的运行效率。
系统提供币别参照供用户选择,若选择本位币以外的其他币别,则还须在工资类别参数维护中设置“汇率”。
核算币种经过一次工资数据处理后即不能再修改。
计件工资是按计件单价支付劳动报酬的一种形式。
由于对计时工资和计件工资的核算方法不同,因此,工资管理系统对企业是否存在计件工资特别设置了确认选项。
员工工资管理系统
员工工资管理系统简介员工工资管理系统是一种为企业管理人员提供便捷管理员工工资情况的工具。
通过该系统,管理者可以有效地记录员工的工资信息、调薪情况、发放工资等,提高工资管理的效率和精确度。
功能模块员工工资管理系统通常包括以下功能模块:1.员工信息管理:管理员工的基本信息,包括姓名、工号、部门、职位、入职日期等。
2.工资计算:根据员工的工作时长、考勤情况、绩效等因素,自动生成每月工资。
3.薪酬调整:管理者可以根据员工表现或市场调整情况,对员工的薪酬进行调整。
4.工资发放:将计算好的工资通过系统进行发放,并记录每次的发放记录。
5.报表统计:系统能够生成各种报表,如工资总额、平均工资、部门工资统计等,方便管理者进行数据分析和决策。
系统优势1.减少人工操作:传统的工资管理需要大量人工操作,容易出现错误,而员工工资管理系统能够自动完成计算并提高准确性。
2.提高效率:系统能够自动记录和计算工资信息,管理者可以快速查看和处理员工的工资情况,节省了大量时间。
3.数据准确性:系统能够准确地记录和统计各项数据,避免了人工操作中可能出现的错误,确保了数据的准确性和完整性。
应用场景员工工资管理系统适用于各类企业和组织,特别是规模较大或员工数量较多的企业。
其主要应用场景包括:1.人力资源部门:人力资源部门负责管理员工的薪酬情况,员工工资管理系统能够帮助人力资源管理者更好地管理员工工资。
2.财务部门:财务部门需要负责发放员工工资并进行成本控制,员工工资管理系统可以帮助财务部门快速准确地完成这些任务。
结语员工工资管理系统是现代企业管理中一个重要的工具,能够帮助企业提高工资管理的效率和准确性,减少人力成本,促进企业管理的科学化和信息化。
随着技术的不断发展和普及,员工工资管理系统将在企业管理中扮演着越来越重要的角色。
工资管理系统总结
工资管理系统总结工资管理系统是一种管理企业员工工资情况的工具,在人力资源管理中发挥着重要的作用。
通过工资管理系统,企业可以有效地管理员工工资、福利、考勤等信息,从而提高企业的管理效率。
在应用过程中,工资管理系统的功能和特点非常丰富,总的来说,具有以下几个方面的优点。
一、自动化处理能力强与传统的人工处理方式不同,工资管理系统具有较强的自动化处理能力,能够快速高效地处理大量数据,减少人工干预,降低错误率,从而提高工作效率。
工资管理系统可以实现自动计算工资、扣除社会保险等工作,避免了员工不合理的工资要求,减少了企业的人工成本。
二、数据安全性高工资管理系统采用先进的数据加密技术,对企业的工资数据进行保护,避免了数据泄露和丢失的情况,保障了企业的数据安全。
三、管理便捷性高工资管理系统具有良好的用户界面和管理功能,管理员可以通过简单的操作管理不同员工的信息。
针对不同的需求,工资管理系统可以设置权限不同的账户,实现不同层级的管理。
同时,因为工资管理系统不受时间和地域的限制,管理者可以随时随地对工资流向进行监控,及时采取措施。
四、信息汇总能力强工资管理系统能够吸收信息,汇总信息,有效地将各个细分岗位的信息汇总在一起,使企业管理者能够清晰地掌握工资情况,及时对工资调整、社会保险普及率等进行决策和调整,实现了对企业工资状况的全面掌握和有效管理。
五、标准化管理工资管理系统可以根据不同的政策法规自动生成员工工资报告和年度报表等,同时具有自动更新员工基础信息和工资体系的功能。
这些功能不仅可以减少人工操作成本,也可以规范化和标准化企业的管理。
虽然工资管理系统有诸多的优点,但也存在着一些问题需要解决。
目前市场上各式各样的工资管理系统不同厂商有各种不同的技术路线,而企业在采购系统时,可能会遇到适用场景问题、信息安全方案问题等诸多问题。
此外,尽管工资管理系统能够提高管理效率,但企业在实际应用中必须识别系统的优点和局限性,以更好的适应企业实际情况,并挖掘系统的最大化价值。
《会计信息化》薪资管理
工资系统初始设置
系统初始设置
定义计算公式:对“数值型”的 项目定义计算公式。应发工资
扣款合计 实发工资
图中公 式说明
工资系统初始设置
◆ 岗位工资计算公式的设置:
IFF(人员类别=“企业管理人员”,800 ,
IFF(人员类别=“辅助车间人员”,700, 750)
◆说明:该公式表示如果人员类别是
企业管理人员的人员,则他的岗位工资 是800元,如果人员类别是辅助车间人员 的人员,则他的岗位工资是700元,其他 各类人员的岗位工资均为750元
工资核算基本功能
基本功能 结构
工资管理系统概述
工资核算基本功能
工资管理系统概述
基本功能 说明
◆系统初始化:它是整个工资核算的核心。其设置的好坏 直接影响工资核算其它模块的正常使用,因此操作者应给 予充分的重视 ◆工资数据编辑:是指对人员的调入、调出及工资数据的 变化而引起的工资数据增、减、修改的操作 ◆工资计算汇总:是指对工资数据计算项目的计算、按部门 级别进行工资汇总、费用的计提 ◆个人所得税计算:我国规定单位职工的个人所得税由企业 代扣代缴,因此,工资核算系统应具备计算并代扣个人所得 税的功能 ◆工资数据输出:主要包括工资结算表、工资结算汇总表、 工资分配汇总表、转账凭证等的输出
设置所得税纳税基数: 2000;3200
定义报表表头:一般 分为单层、双层和复杂
三种格式
工资数据的编辑
编辑所有职工 工资数据
也可选定某个职 工进行页编辑
工资日常核算
工资计算与分摊
◆计算—产生工资条 和工资结算单 ◆汇总—产生工资汇总表 ◆计提和分摊—工资附加费 计提表和工资费用分配表
工资数据的编辑 进入工资分摊
学校内部工资管理系统概要设计
学校内部工资管理系统概要设计一、引言1、背景该学校随着规模的扩大导致工作量也越来越大,专门是现行职工工资治理业务工作量专门大,同时还经常显现差错现象。
有关人员迫切要求早日开发出全校职工工资治理信息系统,用运算机代替手工记帐、运算和制作报表工作。
学校主管领导也十分支持这项工作,已批准投资5万元人民币用于购置设备和软件开发。
同时,学校还拥有雄厚的技术力量。
2、目标(1)让运算机完全代替手工式的操作,对教职工的所有信息和工资能够准确无误的显示,(2)为了方便用户,让用户在使用过程中能达到他们所想要的需求,(3)该系统具有查询,删除,添加差不多信息的功能。
(4)在设计本系统时一定要有清晰、完整、一致、可测试的性质(5)实现数据共享,幸免重复劳动,规范数据治理行为,从而提高了治理效率和水平(6)以运算机为工具,通过对工资治理所需的信息治理,不仅把治理人员从繁琐的数据运算处理中解脱出来,而且优化了治理体系,使其高效化,简易化,智能化3、功能(1)扫瞄功能(2)查看详细质料功能。
(3)查询功能:(4)增加功能(5)删除功能生成报表(5)功能打印功能(6)密码治理功能。
(6)身份验证功能(7)数据的导入导出功能:(8)关心功能4、专用术语数据共享、工资标准、职工工资治理系统、应发工资、实发工资5、参考资料《软件工程》陈明编中央广播电视大学出版社,2003《软件工程导论》张海藩北京:清华大学出版社, 2007《软件工程实验》陈明,王智广,赵鹏翔北京: 中央广播电视大学出版社二、系统描述1、项目的概述本系统是对该校的教职职职员资治理提出的,该校一直由会计人工算工资并编制财务报表,随着学校规模扩大工作量也越来越大,目前简单的治理系统不仅效率低而且成本高,为了适应今后学校规模将进一步扩大,因此依照学校的要求,在此,依照学校现有设备来设计了一个以高效率的职工工资治理系统,方便本校各部门的工作,为学校带来极大的关心。
通过对教职职员的差不多信息和工资信息进行添加和修改,依照个人信息将工资分为应发工资,实发工资。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工资管理系统概述(doc 43页)数据库课程设计Array报告院系:信息管理学院专业:软件工程班级:软件Q1141组长:李艳平(11150038)组员:孙俊珍(11150053)王毅(11150132)左礼振(11150077)题目:工资管理系统教师:石黎时间:2013.11.23目录一、设计目的 ....................................................................................... - 1 -二、数据库功能分析 ........................................................................... - 1 -2.1 信息输入功能...................................................................................... - 1 -2.2 数据修改删除功能.............................................................................. - 2 -2.3 查询和统计功能.................................................................................. - 2 -三、数据库设计 ................................................................................... - 2 -3.1 需求分析 .............................................................................................. - 2 -3.2 概念分析(E-R图) ......................................... - 3 -3.3 逻辑设计…………………………………………………………………..- 4-3.4 物理设计 .............................................................................................. - 7 -3.5 实施与维护 .......................................................................................... - 7 -四、界面设计及相关代码 ................................................................... - 8 -4.1 数据库的连接操作.............................................................................. - 8 -4.2 登陆界面 ............................................................................................ - 10 -4.3 管理员操作 ........................................................................................ - 13 -4.4 职工操作 ............................................................................................ - 35 -五、感想及总结 ................................................................................. - 39 -六、参考文献 ..................................................................................... - 42 -一、设计目的工资管理是一项琐碎、复杂而又十分细致的工作,一般不允许发生差错。
手工进行工资发放工作,需要反复地进行抄写、计算,不仅花费财务人员大量的时间,而且往往由于抄写不慎,出现张冠李戴,或者由于计算机的疏忽,出现工资发放错误的现象。
计算机进行工资发放工作,不仅能够保证工资核算正确无误、快速输出,而且还可以利用工资数据库对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。
实现企业员工工资管理的系统化、规范化和自动化,能够和人事管理系统、考勤管理系统相结合,真正实现企业高效、科学、现代化的员工管理。
二、数据库功能分析2.1 信息输入功能1)输入员工的基本信息。
包括:员工编号、姓名、性别、参加工作时间、所属部门、职位等基本信息2)输入员工的工资信息。
包括:岗位基本工资、津贴、考勤等相关信息。
3)输入员工的部门信息。
包括:部门编号、部门名称、部门负责人、部门人数、部门与外界的联系方式。
2.2 数据修改删除功能1)修改和删除员工的基本信息。
当单位人员的信息发生变化,如职称的改变,工作部门变动,或调离本单位等,系统应能修改员工的信息或将其从员工信息表中删除。
2)修改和删除员工的工资信息。
员工升职加薪、工资普调是企业中常见的事情,这就需要系统能方便对员工工资进行个别及批量的修改;如员工调离本单位,就应当从员工信息表中删除这个员工信息,将其工资信息表中相应的数据删除。
3)修改和删除部门信息。
当一个部门的负责人或联系方式发生改变时,系统中相关部门信息也能做相应改变。
2.3 查询和统计功能1)能够查询指定员工的基本信息2)能够查询部门信息3)查询某个员工的工资信息4)统计部门总人数、共工资、平均工资5)工资表月工资记录的生成功能。
生成当月所有员工或所有部门的工资记录,同时能进行员工工资的计算,即基本工资、奖励金额、应扣金额。
三、数据库设计3.1 需求分析:《工资管理系统》针对的用户是小型企业,工资项目比较少,较为固定,工资管理涉及企业管理的多个方面,如员工职务宫中变化、员工考勤情况、员工加班情况等等。
根据这些信息,在每个月的某个固定时间,生成企业对全体员工的月工资。
对于月工资,能够实现按照员工、部门、月、年进行统计分析,产生相应报表。
需求信息整理(DFD图)如下:管理员基本工资员工信息津贴信息部门信息出勤统计工资信息工资管理员工查询结果查询请求财务人员录入工资信息员工工资信息人事管理工资录入员工信息员工信息员工部门录入部门信息部门信息员工查询职工工资查询请求查询结果第一层 DFD 图3.2 概念分析(E-R 图)第0层部门属于员工1N具有工资1N影响出勤11具有N1影响津贴11具有N1总E-R 图员工员工号姓名性别所属部门职务电话号码参加工作日期员工基本信息实体E-R 图部门部门号部门名称部门负责人人数图二 员工部门实体E-R 图考勤职工编号奖惩工资缺勤天数月份图三 员工考勤实体月工资基本工资员工编号员工姓名住房补贴奖惩津贴图五 员工月工资实体E-R 图3.3 逻辑设计1. 数据字典表1 Allowance (员工津贴)列名数据类型可否为空说明emp_no varchar(10)notnull员工号(主键一)overtim e_monthvarchar(20)notnull加班时间(主键二)Overtime_daysint null 加班天数Overtime_payfloat null 加班工资表2 Attendance (考勤信息统计)列名数据类型可否为空说明emp_no varchar(10)notnull员工号(主键一)attend_ monthvarchar(20)notnull时间(主键二)Absent_daysint null 缺勤天数Absent_payfloat null 考勤工资表3 BasicWages (工资标准表格)列名数据类型可否为空说明emp_po sVarchar(10)notnull工种(主键)basic_w age Float notnull基本工资表4 EmpBasicInfo(员工基本情况表)列名数据类型可否为空说明emp_no VARCHAR(10)NOTNULL员工号(主键)emp_na meVARCHAR(40)NULL 员工名称emp_po VARCH NOT 职位sAR(40) NULLsex Char(2) NULL 性别department_idVARChar(10)NOTNULL员工部门emp_ti meVARCHAR(20)NOTNULL入公司时间telephoneChar(11)Null 电话号码2. 关系模式员工基本信息表(所属部门,入公司时间,电话号码)员工津贴表(员工号,加班时间,加班天数,加班工资)员工考勤表(员工号,时间,缺勤天数,考勤工资)基本工资表(职位,基本工资)部门信息表(部门编号,部门名称,部门人数,联系方式)用户登陆(ID号,用户名,密码)3. 视图设计为及时更新数据,减少数据库后台操作,设计了部门工资情况及员工月工资情况两个视图部门工资情况视图:员工月工资视图:A3.4 物理设计数据库最终是要存储在物理设备上的,为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构(存储结构与存取方法)的过程,就是数据库的物理设计。
数据库的物理结构依赖于给定的计算机系统和DBMS。
3.5 实施与维护确定了数据库的逻辑结构和物理结构后,就可以用所选用的DBMS提供的数据定义语言(DDL)来严格定义数据库,包括建立表、定义表的约束等。
数据库系统投入运行后,对数据库设计进行评价、调整、修改等维护工作。
四、界面设计及相关代码4.1 数据库的连接操作using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;namespace工资管理系统{///<summary>///用来连接数据库和进行有关数据库的操作///</summary>class BaseOperate{public static string username = "";public static string userID = "";public static string password = "";#region建立数据库连接///<summary>///建立数据库连接///</summary>///<returns>返回SqlConnection对象</returns>public SqlConnection getConnect(){string str_sqlcon = "server=xgxy5; database=MyWages; uid=sa; pwd=";SqlConnection myConnect = new SqlConnection(str_sqlcon); //连接数据库return myConnect;}#endregion#region创建DataSet对象///<summary>///创建一个DataSet对象///</summary>///<param name="str_sqlcom">SQL语句</param>///<param name="str_table">表名</param>///<returns>返回DataSet对象</returns>public DataSet getDataSet(string str_sqlcom, string str_table) {//数据库连接SqlConnection sqlcon = this.getConnect();//创建SQL适配器,用于填充DataSet和更新数据库的一组数据命令和一个数据库连接SqlDataAdapter sqlda = new SqlDataAdapter(str_sqlcom, sqlcon);//创建SQL命令生成器SqlCommandBuilder thisBuild = new SqlCommandBuilder(sqlda);//数据的内存驻留表示形式,它表示一个数据集DataSet myds = new DataSet();//Fill方法用来填充DataSet或DataTable数据集,str_table是一个虚表sqlda.Fill(myds, str_table);return myds;}#endregion}}4.1 登陆界面namespace工资管理系统{public partial class Form1 : Form{BaseOperate boperate = new BaseOperate(); //声明一个BaseOperate 类的一个对象,以调用其方法public Form1(){InitializeComponent();}#region核对用户身份public void IDverify(string str_sqltab, Form myform){string str_sqlcom = "Select * from " + str_sqltab;string str_vtab = "vistual_table";DataSet thisDset = boperate.getDataSet(str_sqlcom, str_vtab);int i = 0;foreach (DataRow row in thisDset.Tables[str_vtab].Rows){if (textBox1.Text == row["user_id"].ToString()){erID = row["user_id"].ToString();ername = row["username"].ToString();if (textBox2.Text == row["password"].ToString()){BaseOperate.password = textBox2.Text;myform.Show();break;}else{MessageBox.Show("密码错误!请重新输入!");textBox2.Text = "";}}else{i = i + 1;if (i == thisDset.Tables[str_vtab].Rows.Count){MessageBox.Show("无此用户信息,请重新输入!");textBox1.Text = "";textBox2.Text = "";textBox1.Focus();}}}}#endregion#region登陆信息检查private void button1_Click(object sender, EventArgs e){if (textBox1.Text == "" && textBox2.Text == ""){MessageBox.Show("请输入账户和密码!");textBox1.Focus();}else if (textBox1.Text == "" && textBox2.Text != ""){MessageBox.Show("请输入账户名");textBox1.Focus();}else if (textBox1.Text != "" && textBox2.Text == ""){MessageBox.Show("请输入密码!");textBox2.Focus();}else if (!radioButton1.Checked && !radioButton2.Checked) {MessageBox.Show("请选择登陆身份!");}else if (radioButton1.Checked){if (textBox1.Text == "001" && textBox2.Text == "1001") {Form2 myform2 = new Form2();myform2.Show();}else{MessageBox.Show("用户名和密码错误!");textBox1.Text = "";textBox2.Text = "";radioButton1.Checked = false;radioButton2.Checked = false;}}else if (radioButton2.Checked){Form3 myform3 = new Form3();IDverify("Staff", myform3);}}#endregion#region重置登陆信息private void button2_Click(object sender, EventArgs e){textBox1.Text = "";textBox2.Text = "";radioButton1.Checked = false; radioButton2.Checked = false; textBox1.Focus();}#endregion}}4.3 管理员操作1) 查询员工信息2) 查询部门信息3) 查询津贴信息:4) 查询考勤信息:5)员工月工资汇总:6)部门平均工资:namespace工资管理系统{public partial class Form2 : Form{BaseOperate boperate = new BaseOperate(); //声明一个BaseOperate 类的一个对象,以调用其方法public Form2(){InitializeComponent();}#region显示员工信息private void员工信息ToolStripMenuItem_Click(object sender, EventArgs e){string str_sqlcom = "Select * from EmpBasicInfo";string str_vtab = "vistual_table";DataSet thisDset = boperate.getDataSet(str_sqlcom, str_vtab); listBox1.Items.Clear();listBox1.Items.Add("工号\t姓名\t 职位\t性别\t所属部门\t入职时间\t电话号码");foreach (DataRow row in thisDset.Tables[str_vtab].Rows)listBox1.Items.Add(row["emp_no"].ToString() + "\t" +row["emp_name"].ToString() + "\t"+ row["emp_pos"].ToString() + "\t "+ row["sex"].ToString() + "\t " +row["depart_name"].ToString() + "\t\t" + row["emp_time"].ToString() + "\t" + row["telephone"].ToString());}#endregion#region显示部门信息private void部门信息ToolStripMenuItem_Click(object sender, EventArgs e){string str_sqlcom = "Select * from Department";string str_vtab = "vistual_table";DataSet thisDset = boperate.getDataSet(str_sqlcom, str_vtab); listBox1.Items.Clear();listBox1.Items.Add("部门号\t部门名称\t负责人\t 职工人数\t联系电话");foreach (DataRow row in thisDset.Tables[str_vtab].Rows)listBox1.Items.Add(row["depart_id"].ToString() + "\t" + row["depart_name"].ToString() + "\t\t" + row["depart_head"].ToString() + "\t " + row["depart_emps"].ToString() + "\t\t" + row["depart_tel"].ToString());}#endregion#region显示部门信息private void津贴信息ToolStripMenuItem_Click(object sender, EventArgs e){string str_sqlcom = "Select * from Allowance";string str_vtab = "vistual_table";DataSet thisDset = boperate.getDataSet(str_sqlcom, str_vtab); listBox1.Items.Clear();listBox1.Items.Add("职工号\t\t加班月份\t加班天数\t加班工资");foreach (DataRow row in thisDset.Tables[str_vtab].Rows)listBox1.Items.Add(row["emp_no"].ToString() + "\t\t" + row["overtime_month"].ToString() + "\t\t "+ row["overtime_days"].ToString() + "\t\t " +row["overtime_pay"].ToString());}#endregion#region出勤统计private void出勤统计ToolStripMenuItem_Click(object sender, EventArgs e){string str_sqlcom = "Select * from Attendance";string str_vtab = "vistual_table";DataSet thisDset = boperate.getDataSet(str_sqlcom, str_vtab); listBox1.Items.Clear();listBox1.Items.Add("职工号\t\t考勤月份\t缺勤天数\t扣除工资");foreach (DataRow row in thisDset.Tables[str_vtab].Rows)listBox1.Items.Add(row["emp_no"].ToString() + "\t\t" + row["attend_month"].ToString() + "\t\t "+ row["absent_days"].ToString() + "\t\t " +row["absent_pay"].ToString());}#endregion#region员工月工资汇总private void员工月工资汇总ToolStripMenuItem_Click(object sender, EventArgs e){string str_sqlcom = "Select * from MonthWages";string str_vtab = "vistual_table";DataSet thisDset = boperate.getDataSet(str_sqlcom, str_vtab); listBox1.Items.Clear();listBox1.Items.Add("工号\t月份\t工资\t底薪\t津贴\t考勤");foreach (DataRow row in thisDset.Tables[str_vtab].Rows)listBox1.Items.Add(row["emp_no"].ToString() + "\t" +row["pay_time"].ToString() + "\t"+ row["basic_wage"].ToString() + "\t" +row["overtime_pay"].ToString() + "\t" +row["absent_pay"].ToString() + "\t" + row["month_pay"].ToString());}#endregion#region各部门工资情况private void各部门工资情况ToolStripMenuItem_Click(object sender, EventArgs e){string str_sqlcom = "select * from DepartAvgWage";string str_vtab = "vistual_table";DataSet thisDset = boperate.getDataSet(str_sqlcom, str_vtab); listBox1.Items.Clear();listBox1.Items.Add("部门\t 月份\t 部门人数\t部门总工资\t部门平均工资");foreach (DataRow row in thisDset.Tables[str_vtab].Rows)listBox1.Items.Add(row["depart_name"].ToString() + "\t " + row["pay_month"].ToString() + "\t " +row["depart_emps"].ToString() + "\t\t " +row["sum_wage"].ToString() + " \t "+ row["avg_wage"].ToString()); }#endregion#region更新数据private void更新数据ToolStripMenuItem_Click(object sender, EventArgs e){Form4 newform = new Form4();newform.Show();}#endregion#region退出private void退出ToolStripMenuItem_Click(object sender, EventArgs e){this.Close();}#endregion}}7)信息修改:namespace工资管理系统{public partial class Form4 : Form{BaseOperate boperate = new BaseOperate(); //声明一个BaseOperate 类的一个对象,以调用其方法public Form4(){InitializeComponent();}#region修改员工信息///<summary>///修改员工信息///</summary>///<param name="sender"></param>///<param name="e"></param>private void button1_Click_1(object sender, EventArgs e){if (textBox1.Text == ""){MessageBox.Show("请输入工号!");textBox1.Focus();}else{string str_sqlcom = "Select * from EmpBasicInfo";string str_vtab = "vistual_table";DataSet thisDset = boperate.getDataSet(str_sqlcom,str_vtab);int search = 0;foreach (DataRow row in thisDset.Tables[str_vtab].Rows) {if (row["emp_no"].ToString() == textBox1.Text){string no = textBox1.Text;string name = "";if (textBox2.Text == "")name = row["emp_name"].ToString();elsename = textBox2.Text.ToString();string pos = "";if (textBox3.Text == "")pos = row["emp_pos"].ToString();elsepos = textBox3.Text.ToString();string Sex = "";if (!radioButton1.Checked&& !radioButton2.Checked)Sex = row["sex"].ToString();else if (radioButton1.Checked)Sex = radioButton1.Text.ToString();else if (radioButton2.Checked)Sex = radioButton2.Text.ToString();string depart = "";if (comboBox1.Text == "")depart = row["depart_name"].ToString();elsedepart = comboBox1.Text.ToString();string time = "";if (textBox4.Text == "")time = row["emp_time"].ToString();elsetime = textBox4.Text.ToString();string tel = "";if (textBox5.Text == "")tel = row["telephone"].ToString();elsetel = textBox5.Text.ToString();string str_sqlcom2 = "update EmpBasicInfo setemp_name=@name, emp_pos=@pos, sex=@Sex, depart_name=@depart,emp_time=@time, telephone=@tel where emp_no=@no";SqlConnection mycon = boperate.getConnect();mycon.Open();SqlCommand cmd = new SqlCommand(str_sqlcom2, mycon);SqlParameter par_no = new SqlParameter("@no", no); cmd.Parameters.Add(par_no);SqlParameter par_name = new SqlParameter("@name", name);cmd.Parameters.Add(par_name);SqlParameter par_pos = new SqlParameter("@pos", pos);cmd.Parameters.Add(par_pos);SqlParameter par_sex = new SqlParameter("@Sex", Sex);cmd.Parameters.Add(par_sex);SqlParameter par_depart = newSqlParameter("@depart", depart);cmd.Parameters.Add(par_depart);SqlParameter par_time = new SqlParameter("@time", time);cmd.Parameters.Add(par_time);SqlParameter par_tel = new SqlParameter("@tel", tel);cmd.Parameters.Add(par_tel);int result = cmd.ExecuteNonQuery();if (result > 0)MessageBox.Show("信息修改成功!");search = 1;break;}}if (search == 0)MessageBox.Show("无此员工!");}}#endregion#region添加新员工///<summary>///添加新员工///</summary>///<param name="sender"></param>///<param name="e"></param>private void button2_Click(object sender, EventArgs e){if (textBox1.Text == ""){MessageBox.Show("请输入工号!");textBox1.Focus();}else{string str_sqlcom = "Select * from EmpBasicInfo";SqlConnection thisConn = boperate.getConnect();SqlDataAdapter thisAdp = new SqlDataAdapter(str_sqlcom, thisConn);//创建SQL适配器SqlCommandBuilder thisBuild = newSqlCommandBuilder(thisAdp); //创建SQL命令生成器DataSet thisDset = new DataSet();//创建数据集thisAdp.Fill(thisDset, "EmpBasicInfo"); //将查询结果填充到数据集中*/int search = 0;foreach (DataRow row inthisDset.Tables["EmpBasicInfo"].Rows){if (row["emp_no"].ToString() == textBox1.Text){MessageBox.Show("此工号的员工已存在!请重新输入!"); search = 1;break;}}if (search == 0){DataRow newRow =thisDset.Tables["EmpBasicInfo"].NewRow(); //创建新行newRow["emp_no"] = textBox1.Text.ToString();newRow["emp_name"] = textBox2.Text.ToString();newRow["emp_pos"] = textBox3.Text.ToString();if (radioButton1.Checked)newRow["sex"] = radioButton1.Text.ToString();elsenewRow["sex"] = radioButton2.Text.ToString();newRow["depart_name"] = comboBox1.Text.ToString(); newRow["emp_time"] = textBox4.Text.ToString();newRow["telephone"] = textBox5.Text.ToString();thisDset.Tables["EmpBasicInfo"].Rows.Add(newRow); //增加到数据集里thisAdp.Update(thisDset, "EmpBasicInfo"); //写到数据库中/*更新表Department*/string str_sqlcom2 = "select * from Department";SqlDataAdapter thisAdp2 = newSqlDataAdapter(str_sqlcom2, thisConn);//创建SQL适配器SqlCommandBuilder thisBuild2 = newSqlCommandBuilder(thisAdp2); //创建SQL命令生成器thisAdp2.Fill(thisDset, "Department"); //将查询结果填充到数据集中foreach (DataRow row inthisDset.Tables["Department"].Rows){if (row["depart_name"].ToString() ==comboBox1.Text){int num =Convert.ToInt32(row["depart_emps"].ToString()) + 1;row["depart_emps"] = num;}}thisAdp2.Update(thisDset, "Department");/*更新表Allowance, Attendance*/string no = textBox1.Text;thisConn.Open();SqlCommand cmd1 = new SqlCommand("insert into Allowance values (@no ,'201310', '', '')", thisConn);SqlCommand cmd2 = new SqlCommand("insert into Attendance values (@no, '201310', '', '')", thisConn);SqlParameter par_no1 = new SqlParameter("@no", no); cmd1.Parameters.Add(par_no1);cmd1.ExecuteNonQuery();SqlParameter par_no2 = new SqlParameter("@no", no); cmd2.Parameters.Add(par_no2);cmd2.ExecuteNonQuery();/*更新表Staff*/string id = textBox1.Text.ToString();string name = textBox2.ToString();string pwd = id.Replace("1", "1115");SqlCommand cmd3 = new SqlCommand("insert into Staff values(@id, @name, @pwd)", thisConn);SqlParameter par_id = new SqlParameter("@id", id);SqlParameter par_name = new SqlParameter("@name", name);SqlParameter par_pwd = new SqlParameter("@pwd", pwd); cmd3.Parameters.Add(par_id);cmd3.Parameters.Add(par_name);cmd3.Parameters.Add(par_pwd);cmd3.ExecuteNonQuery();thisConn.Close();MessageBox.Show("添加成功!");}}}#endregion#region删除员工///<summary>///删除员工///</summary>///<param name="sender"></param>///<param name="e"></param>private void button3_Click(object sender, EventArgs e){if (textBox1.Text == ""){MessageBox.Show("请输入工号!");textBox1.Focus();}else{string str_sqlcom = "Select * from EmpBasicInfo";SqlConnection thisConn = boperate.getConnect();SqlDataAdapter thisAdp = new SqlDataAdapter(str_sqlcom, thisConn);//创建SQL适配器SqlCommandBuilder thisBuild = newSqlCommandBuilder(thisAdp); //创建SQL命令生成器DataSet thisDset = new DataSet();//创建数据集thisAdp.Fill(thisDset, "EmpBasicInfo"); //将查询结果填充到数据集中*/int search = 0;foreach (DataRow row inthisDset.Tables["EmpBasicInfo"].Rows){if (row["emp_no"].ToString() == textBox1.Text){string str_sqlcom1 = "delete from EmpBasicInfo where emp_no = " + textBox1.Text;thisConn.Open();SqlCommand cmd = new SqlCommand(str_sqlcom1, thisConn);cmd.ExecuteNonQuery();/*更新表Department*/string depart = row["depart_name"].ToString();string str_sqlcom2 = "select * from Department";SqlDataAdapter thisAdp2 = newSqlDataAdapter(str_sqlcom2, thisConn);//创建SQL适配器SqlCommandBuilder thisBuild2 = new SqlCommandBuilder(thisAdp2); //创建SQL命令生成器thisAdp2.Fill(thisDset, "Department"); //将查询结果填充到数据集中foreach (DataRow row2 inthisDset.Tables["Department"].Rows){if (row2["depart_name"].ToString() == depart) {int num =Convert.ToInt32(row2["depart_emps"].ToString()) - 1;row2["depart_emps"] = num;}}thisAdp2.Update(thisDset, "Department");/*更新表Allowance, Attendance*/string no = textBox1.Text;SqlCommand cmd1 = new SqlCommand("delete from Allowance where emp_no = @no", thisConn);SqlCommand cmd2 = new SqlCommand("delete from Attendance where emp_no = @no", thisConn);SqlParameter par_no1 = new SqlParameter("@no", no); cmd1.Parameters.Add(par_no1);cmd1.ExecuteNonQuery();SqlParameter par_no2 = new SqlParameter("@no", no); cmd2.Parameters.Add(par_no2);cmd2.ExecuteNonQuery();/*更新表Staff*/string id = textBox1.Text.ToString();SqlCommand cmd3 = new SqlCommand("delete from Staff where user_id = @id", thisConn);SqlParameter par_id = new SqlParameter("@id", id); cmd3.Parameters.Add(par_id);cmd3.ExecuteNonQuery();thisConn.Close();MessageBox.Show("删除成功!");search = 1;break;}}if (search == 0)MessageBox.Show("无此员工!");}}#endregion#region关闭修改员工信息窗口private void button4_Click(object sender, EventArgs e){this.Close();}#endregion#region修改部门信息private void button5_Click(object sender, EventArgs e){if (textBox6.Text == ""){MessageBox.Show("请输入部门编号!");textBox6.Focus();}else{string str_sqlcom = "Select * from Department";string str_vtab = "vistual_table";DataSet thisDset = boperate.getDataSet(str_sqlcom,str_vtab);int search = 0;foreach (DataRow row in thisDset.Tables[str_vtab].Rows) {if (row["depart_id"].ToString() == textBox6.Text){string id = textBox6.Text;string tel = "";if (textBox8.Text == "")tel = row["depart_tel"].ToString();elsetel = textBox8.Text.ToString();int search2 = 0;string head = "";if (textBox7.Text == ""){head = row["depart_head"].ToString();search2 = 1;}else{string str_sqlcom2 = "select * from EmpBasicInfo";SqlConnection thisConn = boperate.getConnect();SqlDataAdapter thisAdp = newSqlDataAdapter(str_sqlcom2, thisConn);//创建SQL适配器SqlCommandBuilder thisBuild = new SqlCommandBuilder(thisAdp); //创建SQL命令生成器thisAdp.Fill(thisDset, "EmpBasicInfo"); //将查询结果填充到数据集中foreach (DataRow row2 inthisDset.Tables["EmpBasicInfo"].Rows){if (row2["emp_name"].ToString() ==textBox7.Text){head = textBox7.Text.ToString();search2 = 1;break;}}}if (search2 == 0){MessageBox.Show("无此职工信息!请重新输入");textBox7.Text = "";textBox7.Focus();}else{string str_sqlcom3 = "update Department set depart_head=@head, depart_tel=@tel where depart_id=@id";SqlConnection mycon = boperate.getConnect(); mycon.Open();SqlCommand cmd = new SqlCommand(str_sqlcom3,mycon);SqlParameter par_id = new SqlParameter("@id", id);cmd.Parameters.Add(par_id);SqlParameter par_head = newSqlParameter("@head", head);cmd.Parameters.Add(par_head);SqlParameter par_tel = new SqlParameter("@tel", tel);cmd.Parameters.Add(par_tel);int result = cmd.ExecuteNonQuery();if (result > 0)MessageBox.Show("信息修改成功!");}search = 1;break;}if (search == 0)MessageBox.Show("无此部门!");}}}#endregion#region关闭修改部门信息窗口private void button6_Click(object sender, EventArgs e){this.Close();}#endregion#region修改津贴信息private void button7_Click(object sender, EventArgs e){if (textBox9.Text == ""){MessageBox.Show("请输入工号!");textBox9.Focus();}else{string str_sqlcom = "Select * from Allowance";string str_vtab = "vistual_table";DataSet thisDset = boperate.getDataSet(str_sqlcom,str_vtab);int search = 0;foreach (DataRow row in thisDset.Tables[str_vtab].Rows) {if (row["emp_no"].ToString() == textBox9.Text){string no = textBox9.Text;string month = "";if (textBox10.Text == "")month = row["overtime_month"].ToString();elsemonth = textBox10.Text.ToString();string days = "";if (textBox11.Text == "")days = row["overtime_days"].ToString();elsedays = textBox11.Text.ToString();string pay = "";if (textBox12.Text == "")pay = row["overtime_pay"].ToString();elsepay = textBox12.Text.ToString();string str_sqlcom2 = "update Allowance set overtime_month=@month, overtime_days=@days, overtime_pay=@pay where emp_no=@no";SqlConnection mycon = boperate.getConnect();mycon.Open();SqlCommand cmd = new SqlCommand(str_sqlcom2, mycon);SqlParameter par_no = new SqlParameter("@no", no); cmd.Parameters.Add(par_no);SqlParameter par_month = new SqlParameter("@month", month);cmd.Parameters.Add(par_month);SqlParameter par_days = new SqlParameter("@days", days);cmd.Parameters.Add(par_days);SqlParameter par_pay = new SqlParameter("@pay", pay);cmd.Parameters.Add(par_pay);int result = cmd.ExecuteNonQuery();if (result > 0)MessageBox.Show("信息修改成功!");search = 1;break;。