基于qt的企业人事管理系统课程_第1页
基于qt的企业人事管理系统课程_第2页
基于qt的企业人事管理系统课程_第3页
基于qt的企业人事管理系统课程_第4页
基于qt的企业人事管理系统课程_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I 基于基于 Qt 的企业人事管理系统的企业人事管理系统 摘要摘要:根据实际的企业人事需求,设计了基于 Qt Creator 开发环境下的人事管理系统 (MIS) ,前台采用的是一个跨平台的 VC+图形界面程序编辑器 Qt,后台使用的是 SQLite 数据库。本系统能实现管理员对本身密码的修改,员工入职、离职的办理,按条 件查找员工,显示、更改所有员工的基本信息、工作信息,新建、更改、删除考评、培 训、奖惩记录,并能够实现对员工权限的设置;实现普通员工用户对自己相关信息的查 询及登录密码的修改,以及用 Setup2GO 制作成可安装文件使本系统具有可移植性。实 现人事办公的智能化,提高企业的工作效率。 关键字关键字: 人事管理系统Qt Creator SQLite 数据库 Setup2GO II Personnel management system of enterprise based On Qt environment ABSTRACT:According to the actual demand, the design of the personnel management system development environment based on Qt Creator (MIS). The front is a cross-platform VC+ graphical interface program edit or Qt. Background using the SQLite database. The system has realized the administrator password to modify itself, the new employees, old employees management ,conditional search for employee, showing all the basic information of the employees, change of basic information, information staff, new, change, delete evaluation, training, rewards and punishment records, and set permission for employees; The ordinary users to information relevant to their query and password modification. And the production of documents that can be installed using Setup2GO to make the system has portability. Auto mated personnel office, improve the efficiency of enterprises. Keyword: Personnel management system Qt Creator SQLite Database Setup2GO 目目 录录 摘要摘要I ABSTRACT.II 前前 言言 .1 第一章第一章 开发工具的选择开发工具的选择 .2 第 1 节 开发工具 Qt Creator 的介绍.2 第 2 节 SQLite 数据库的介绍.3 第 3 节 Setup2GO 的介绍.4 第二章第二章 系统需求及可行性分析系统需求及可行性分析 .5 第 1 节 需求分析5 第 2 节 可行性分析.5 第三章第三章 数据库设计数据库设计 .7 第 1 节 数据库的设计7 第四章第四章 系统设计系统设计 .12 第 1 节 系统功能结构12 第 2 节 系统功能的具体设计及代码实现12 第五章第五章 制作可安装文件制作可安装文件 .29 结论结论 .34 参考文献参考文献 .35 1 前前 言言 在企业中,人事管理工作是非常重要的一项工作。它负责整个企业的日常人事安排, 人员的人事管理等。以前都是人工在电脑上处理大量的 Excel 表格信息的初级阶段,随 着企业规模的扩大以及频繁的人员的流动,人事管理的工作量也大大地加重,而且企业人 事管理工作的好坏对企业的发展有较大的影响,企业对人事管理也较为重视。随着计算 机应用的发展,人事管理部门急切希望能够将人事管理办公智能化的水平提高,以减轻 人的工作压力并提高工作效率。 本论文是经过对客户的需求分析并结合实际的需要设计的。本系统采用的是跨平台 的 VC+图形界面编辑器和 SQLite 数据库,设计基本满足了企业人事管理系统的需求。 2 第一章第一章 开发工具的选择开发工具的选择 第第 1 1 节节 开发工具开发工具 Qt Creator 的介绍的介绍 一、Qt Creator 的简介 Qt Creator 是 Qt 被 Nokia 收购后推出的一款新的轻量级的集成开发环境(IDE),这 个集成开发环境能够跨平台运行,支持的系统包括 Linux、Mac OS X 以及 Windows。Qt Creator 的设计目标是使开发人员能够利用这个框架更加快速且容易的完成相应的开发任 务。Qt 集成开发环境概图如图所示: 图 1-1 Qt 集成开发环境概图 Qt Creator 包括项目生成向导、高级的 VC+代码编辑器、浏览文件及类工具、集成 了 Qt Designer、Qt Assistant、Qt Linguist、图形化的 GDB 调试前端,集成 qmake 构建工 具等。 3 二、Qt Creator 的功能和优势 Qt Creator 主要是为了帮助新 Qt 用户更快速的入门并运行项目,可大大提高有经验 人员的工作效率。 (一)使用 VC+代码编辑器可快速编写代码 语法标识和代码完成功能输入时进行静态代码检验以及提示样式上下文相关的帮 助代码折叠括号匹配和括号选择模式高级识别功能。这样使得我们能写出良好格式的代 码;在预测我们想要输入的内容时,可以自动完成代码输入;又可显示内联错误和警告 错误。 (二)使用浏览工具管理源代码 由于集成了包括 Git、Perforce 和 Subversion 开放式文件在内的领先版本控制软件, 因而不必知道确切的名称和位置也可搜索类和文件,在不同位置和文件中沿用的符号在 头文件和源文件,或在声明和定义之间切换。 (三)为 Qt 跨平台开发人员的需求而量身定制 集成了特定于 Qt 的功能,如信号与槽图示调试器,对 Qt 类结构可很直观的看到, 对于 Qt Designer 可视化布局和格式构建器只要单击一下就可生成和运行 Qt 项目。 第第 2 2 节节 SQLiteSQLite 数据库的介绍数据库的介绍 一、SQLite 的简介 SQLite 是 D.Richard Hipp 用 c 语言编写的开源嵌入式数据库引擎。它是完全独立的, 对外部没有任何依赖,最重要地,它是一个轻量级的数据库,在一些简单语句的处理上 比 一些 Mysql 要快。 二、SQLite 的功能和特性 从功能上看,SQLite 支持多数 SQL92 标准,可以在所有主流的操作系统上跨平台 运行,操作简单且支持大多数的计算机语言直接创建数据库,同时它还支持事务处理等。 从特性上来看,更能体会到 SQLite 的强大的和实用。它是遵守 ACID 事务的关系型 4 数据库管理系统而且其本身只有 250K 大小却能支持大至 2TB 的数据库,而且比一些流 行的数据库在大部分普通数据库操作的速度要快,最方便的一点是它是零配置即不需要 安装和管理配置,而且拥有大量简单轻松的 API 函数。SQLite 的资源是完全开放的,它 的源代码都有良好的注释,有高达 90%以上的测试覆盖率。 第第 3 3 节节 Setup2GOSetup2GO 的介绍的介绍 一、Setup2GO 的简介以及特性 Setup2GO 是一个很不错的安装文件制作工具,使用简单而且交互性能较强,关键是 这款制作工具不需要使用者会很多编程知识和编程经验就可以在很短的时间内完成制作, 且该软件支持的系统也非常多,例如当前所有的 32 位 Windows 操作系统的程序。这款 软件还自带了工程向导帮助快速生成安装项目,非常适合初学者。另外它还具备建立快 捷方式、写入注册表、文件类型关联、定制对话框和屏幕样式、使用外部工具、修改 INI 文件,添加安装密码、测试运行等功能,而且它还可制作出支持多国语言的安装程 序。 5 第二章第二章 系统需求及可行性分析系统需求及可行性分析 第第 1 1 节节 需求分析需求分析 一、业务需求 1. 系统操作简单,界面友好;错误操作予以提醒。 2. 规范、完善的基本信息设置。 3. 支持多人操作,要求有权限分配功能。 4. 为了方便用户,要求系统支持多条件查询。 5. 支持数据更新调整。 6. 制作成可安装文件便于在没有运行环境的机器上安装使用。 二、用户功能需求 通过与客户的沟通和需求分析,要求该系统满足如下功能: 运行该系统时,首先出现登录界面,根据输入的用户名和密码判断用户的权限。 若登录的用户为管理员,可进行个人密码的修改、可看到员工编号和姓名的列表显 示、为新员工办理入职、办理员工离职、按条件查询员工以及对员工基本信息、工作信 息、员工考评信息、培训信息、奖惩信息、以及员工的权限设置的更改和查询。 若登录的用户为普通用户,也可以修改自己的密码,可查看员工的基本信息、工作 信息、员工考评信息、培训信息、奖惩信息以及员工的权限设置但不具备修改权限。 第第 2 2 节节 可行性分析可行性分析 一、经济可行性 在计算机应用极其广泛的今天,每个企业的员工都有自己的办公电脑。因此,生成 的可安装程序的安装问题是不用顾虑的,这个系统的花销除了系统本身的开发费用是几 乎为零的,而且为公司减少了在人事管理上的工作人员,还大大提高了工作的效率。为 6 企业带来的效益是强大且无形的,因此,在经济上是可行的。 二、技术可行性 从技术可行性上分析,该系统的开发主要是对数据库中的数据进行操作,考虑到系 统的功能需求,在系统的技术实现上使用 Qt Creator 和 SQLite 数据库相结合进行软件开 发。Qt Creator 的组件功能非常强大,封装了很多 API 函数,可以实现系统的各项功能 的操作以及提高软件开发的效率和软件的安全性。 7 第三章第三章 数据库设计数据库设计 第第 1 1 节节 数据库的设计数据库的设计 一、数据库设计结构图 本系统使用 SQLite 数据库设计的名为 RSDAMS 的数据库,它包含 11 个表,这些表 存储了在系统设计阶段所用到所有信息,也保证了系统正常工作。其结构图如图所示: 图 3-1 数据库结构图 bumen 表包含 2 个实体分别为 Bid,Bname。Bid 为部门名称的编号,Bname 为部门 名称。bumen 表的实体 E-R 图及数据表结构如下图所示: 8 图 3-2 bumen 实体 E-R 图及表结构图 minzu 表包含 2 个实体分别为 minzu_id,minzu_name。其中 minzu_id 依次对应着各 个民族的名称,本系统仅列举 8 个民族作为说明,调用民族信息时,只需调用或关联 minzu_id 的就可以。minzu 表的实体 E-R 图及数据表结构如下图: 图 3-3 minzu 实体 E-R 图及表结构图 kaop 表包含七个实体分别为 Kid,Kname,Kinfo,Klv,Kdate,Kbeiz,Knum。Kid 为关联的员工编号,由于员工编号的唯一性,所以在 Kid 为该员工编号时就会对应该员 工的一切考评信息。kaop 数据表结构如下图所示: 图 3-4 kaop 表结构图 emplimfo 表包含 12 个实体分别为 Eid,Ename,Esex,Esex,Edate,Eminzu,Ephone,Eaddr,Email,Euni,Exueli,Em ajor,Eremark。Eid 在这个表中同样起到关联的作用,Eid 存储着员工编号信息,当着一 条记录的员工编号与表中的 Eid 对应了,就可以调用该员工的员工信息了。emplinfo 表 结构如图所示: 9 图 3-5 emplinfo 表结构图 limitinfo 表包含 2 个实体分别为 Lid,Linfo。这个表的作用很简单,在创建表时写好 了数据后不用再修改。当其 Lid 为 0 时,代表一般用户,Lid 为 1 时,代表管理员用户。 用来判别用户权限时使用。表结构如图所示: 图 3-6 limitinfo 表结构图 limit 表包含 3 个实体分别为 Lid,Lpw,Llimit。表中的 Lid 存储着员工的编号, Lpw 用于存储员工的密码,它是与 Lid 存储的员工编号信息一一对应的,Llimit 列的信 息代表用户权限。其表结构如图所示: 图 3-7 limit 表结构图 Workinfo 表包含 4 个实体分别为 Wid,Wbumen,Wzhicheng,Wsalary。Wid 用于存 储有部门和工资的员工编号,Wbumen 存储的是部门信息,本系统中列举 5 个部门。 Wsalary 用于存储工资信息。其表结构如图所示: 图 3-8 workinfo 表结构图 reward 表包含 7 个实体分别为 10 Rid,Rname,Rtime,Rreward,Rreason,Rremark,Rnum。这个表用来存储员工的奖惩 信息,当新建一个员工的奖惩记录,其实质就是向这个表里添加一条记录。其表结构如 图所示: 图 3-9 reward 表结构图 select1 表只包含一个实体为 Sid。Sid 的数据类型为整形。这个表就是单独用来存储 员工编号的,以便多表关联使用。 trained 表包含 6 个实体分别为 Tid,Tname,Ttime,Tcont,Trem,Tnum。这个表是 用来存储员工培训信息的,当新建员工培训信息时,就是相当于向这个表中插入一条记 录。其表结构如图所示: 图 3-10 trained 表结构图 zhicheng 表包含 2 个实体分别为 Zid,Zname。这个表是用来存储职称信息的,这个 企业的所有岗位名称都包含在内,其表结构如图所示: 图 3-11 zhicheng 表结构图 从名为 RSDAMS 的数据库的 11 表中我们不难发现每个表都相应的id,这里的id 起到的作用是非常大的。当我们需要两个表关联时,都是利用它们 id 关联在一起的,在 系统设计中很多情况下需要调用数据中的几个表,那么如何知道调用该表中的哪个记录, 就要靠它们的 id 来识别了,这些 id 就像我们的学号是唯一的一样。数据库中的各个表 11 都建好后,在编写程序时需要将数据库和我们建的工程联系上。因此,在 RSDAMS.pro 中添加 database 类,在这个 C+类中实现数据库的连接与关闭功能,具体如下: void Database:open() /数据库连接函数 db = QSqlDatabase:addDatabase(“QSQLITE“); /数据库为 SQLite db.setDatabaseName(“RSDAMS.db“); /建立名为 RSDAMS.db 的数据库 if (!db.open() /打开并连接数据库以及容错处理 QMessageBox:critical(0, “Cannot open database“, “Unable to establish a database connection.n“ “This example needs SQLite support. Please read “ “the Qt SQL driver documentation for information how “ “to build it.“, QMessageBox:Cancel); return; void Database:close() /关闭数据库 db.close(); 12 第四章第四章 系统设计系统设计 第第 1 1 节节 系统功能结构系统功能结构 一、系统功能结构图 图 4-1 企业人事管理系统结构图 第第 2 2 节节 系统功能的具体设计及代码实现系统功能的具体设计及代码实现 一、系统预览及界面功能实现 13 企业人事管理系统由多个窗体组成,下面仅列出几个典型的窗体: 1.该图为点击图标运行系统的登录界面,在该界面输入用户名和密码实现登录功能, 由于用户在输入用户名和密码时需要密码为图中小黑点形式以便信息保护。在本系统中, 首先在 RSDAMS.pro 工程中的添加 Login 界面文件,同时在工程中会自动添加 Login 类的 源文件和头文件。在其界面文件上添加用到的工具原件。我通过对 Login 类构造函数添 加初始化语句来实现登录密码的保护显示: ui - linePw - setEchoMode(QLineEdit:Password); 图 4-2 登录界面图 2.下图为用户登录后进入系统的主界面,若为管理员用户,所有的功能都可以直接 或间接的在该界面上实现。该界面包含了该系统的所有的功能,满足客户对本系统的所 有要求,而且在细节上也做到了很多人性化的方面。 14 图 4-3 管理员登录的主界面图 首先,从个人账户这 groupBox 看起,其中修改密码这个 Button 按钮,无论用户拥 有怎样的用户权限,都应该是只能修改本身的密码;而且我们确保不要出现操作上的失 误,我们在修改密码时,会弹出一个对话框,需要填写旧密码、新密码以及确认新密码。 当旧密码为该用户现有密码,新密码和确认新密码一致时才可以实现修改。否则会通过 如下代码实现提示错误如图所示: if(oldpw = query.value(1).toString() query.exec(“update limits set Lpw = “ + newpw1 + “ where Lid = “ + m_id); QMessageBox:information(0,“,“密码修改成功!“,QMessageBox:Ok); this-close(); 15 else QMessageBox:critical(0,“错误!“,“密码修改失败!“,QMessageBox:Cancel); 在这部分最大的难点是做到只能修改自己的密码,因此我们做了和主界面的关联, 通过一个函数传递一个参数。这个参数为每个员工所特有的,即每个员工的员工编号。 void modpw:getID(QString id) m_id = id; void Widget:on_btnPW_clicked() modpw *mopdw1 = new modpw; mopdw1-getID(m_loginid); mopdw1-exec(); delete mopdw1; 图 4-4 修改密码运行图 16 在这个 groupBox 里还有一个退出登录的按钮,这个按钮的实现就想对简单些,通过 如下代码实现返回登录页面: void Widget:on_btnLogag_clicked() Login *l = new Login; m_loginid = “; this-hide(); l-exec(); this-SetLimit(l-LoginIDReturn(); this-show(); delete l; 其次是员工列表这个 groupBox 的设计实现。在这里可以显示所有员工的员工编号和 姓名;具体实现代码如下所示: void Widget:on_btnInsert_clicked() NewUser *nusr = new NewUser; nusr-exec(); this-setAllModel(Model1,Model2); this-display(); delete nusr; 在这一部分还包括员工入职的办理,设计的目标是在通过员工入职按钮的槽函数弹出如 图所示的对话框,在这个对话框填写新员工的信息,这些信息作为记录插入到数据库中 实现员工入职的办理。 17 图 4-5 新员工入职运行图 添加功能通过如下代码实现: query.exec(“select Eid from emplinfo where Eid = “+ id); query.next(); if(query.value(0).toString() = NULL) query.clear(); query.exec(“insert into emplinfo values(“ + id + “,“+ name + “,“+ sex +“,“+ date +“,“+ minzu +“,“+ phone +“,“+ addr +“,“+ email +“,“+ univ +“,“+ xueli +“,“+ major +“,“+ remark +“)“); query.exec(“insert into workinfo values(“ + id + “,“ + bumen + “,“ + zhicheng + “,“ + salary + “)“); 18 query.exec(“insert into limits values(“+ id +“,“+ id +“,“ + limit + “)“); this-close(); else QMessageBox:critical(0,“错误!“,“该员工编号已存在!“,QMessageBox:Cancel); 管理员还可以实现员工离职的办理,即通过员工离职按钮的槽函数实现,首先需要 选中一个操作对象,若没有选中操作对象会弹出提示对话框,然后再单击员工离职按钮, 便会弹出如下图所示的对话框,当用户单击 Yes 这个 Button 时,数据库 RSDAMS 中便 执行 delete 操作。依次从 emplinfo 表中删除 Eid 为所选操作对象的 id 的记录,从 select 表中删除 Sid 为 id 的记录,从 limits 表中删除 Lid 为 id 的记录,从 kaop 表中删除 Kid 为 id 的记录,从 reward 表中删除 Rid 为 id 的记录,从 workinfo 表中删除 Wid 为 id 的记 录,从 trained 表中删除 Tid 为 id 的记录。具体操作由如下代码实现: void Widget:on_btnDelete_clicked() QAbstractItemModel *itModel = ui-MsgTable2-model();/ int row = ui-MsgTable2-currentIndex().row(); if(-1 = row) itModel = ui-MsgTable1-model(); row = ui-MsgTable1-currentIndex().row(); if(-1 = row) QMessageBox:critical(0,“错误!“,“请选择一个操作对象 “,QMessageBox:Cancel); return; 19 QVariant data1 = itModel-index(row,0).data();/获取选中行第 0 列的值员工编号 QString id = data1.toString(); if(QMessageBox:Yes = QMessageBox:question(0,“,“离职会删除该员工所有信息, 是否继续?“,QMessageBox:Yes|QMessageBox:No) QSqlQuery* query = new QSqlQuery; query-exec(“delete from emplinfo where Eid = “ + id ); query-exec(“delete from select where Sid = “ + id ); query-exec(“delete from limits where Lid = “ + id ); query-exec(“delete from kaop where Kid = “ + id ); query-exec(“delete from reward where Rid = “ + id ); query-exec(“delete from workinfo where Wid = “ + id ); query-exec(“delete from trained where Tid = “ + id ); delete query; this-setAllModel(Model1,Model2); this-display(); 图 4-6 员工离职演示图 任何用户都可以进行的显示全部的操作,即通过槽函数实现,便可将数据库中表的 信息全部显示在右侧列表中。 void Widget:on_btnAll_clicked() 20 QSqlQuery *query = new QSqlQuery; query-exec(“delete from select1“); query-exec(“Insert into select1 select Eid “ “from emplinfo“); Model1-clear(); Model1-setQuery(“select Eid,Ename “ “from select1,emplinfo “ “where select1.Sid = emplinfo.Eid order by Sid ASC“); count = Model1-rowCount(); QString showcount; showcount.setNum(count); ui-labelcount-setText(“当前共显示“ + showcount + “条数据“);/ 更新行数 Model1-setHeaderData(0,Qt:Horizontal,“员工编号“); Model1-setHeaderData(1,Qt:Horizontal,“姓名“); this-on_tabWidget_currentChanged(ui-tabWidget-currentIndex(); 在这部分里最突出的作用是新建查找功能,是一种模糊查找的方式,可以按不同的 条件查找,便于企业对某些方面信息的统计。首先,当 emplinfo 表中的 Eid 与 workinfo 表中的 Wid 一致时,向 select 表中添加一条记录,这条记录是用户要模糊查找的条件时, 执行 sql 语句与表中的信息相比较,与查询条件相一致的显示出来,最后再用 delete 语 句把添加到表中的查找条件记录删除,因为它不属于表中的员工记录。具体的举例实现 如图 4-7 所示。 如按部门的查找: 21 图 4-7 新建查找演示图 最后是人事管理这个 groupBox 的设计,这一部分的功能比较细碎,完成的工作比较 多,对于管理员来说,在这部分可以进行基本信息的修改,这个操作需要先选定一个操 作对象,然后点击修改信息,便会弹出一个窗口,该窗口如图所示,这个功能主要依靠 在槽函数中更新数据库中各个表中的数据。 22 图 4-8 基本信息修改演示图 这里最人性化的地方就是视图显示这个按钮实现的功能,当想查看一个人的所有信 息,我的设计是让其信息都在一个视图中显示,而且这个视图中的任何一项都设置为在 当前界面不可更改的。 23 图 4-9 视图显示 除了修改密码外的所有修改操作都是对管理员有用的。在工作信息这栏里包括职位 调动和薪资调动,在选择好一个操作对象后,再点击调动/调薪按钮,便可弹出一个窗口 进行相应的信息更改。这个功能的设计主要通过 sql 语句中的 update 函数实现,当用户 所选操作对象的 id 和数据库的 workinfo 表的 Wid 一致时,更新表中原来的数据为新的 数据,便实现了该功能。具体的实现可参考如下代码: void workinfo:on_pushButton_clicked() QSqlQuery query; QString newbumen; QString newzhicheng; QString newsalary; newbumen = ui-comboNewBumen-currentText(); newzhicheng = ui-comboNewZhicheng-currentText(); newsalary = ui-lineNewSalary-text(); if(! pare(“) newsalary = “0“; 24 query.exec(“update workinfo set Wbumen = “+ newbumen +“,Wzhicheng = “+newzhicheng +“,Wsalary = “+ newsalary +“ where Wid = “+ m_id); QMessageBox:information(0,“,“修改成功!“,QMessageBox:Cancel); this-close(); 在人事管理这个 groupBox 里的员工考评、培训信息、奖惩信息这三功能都分别包含 三个子功能即添加记录,修改记录、删除记录,实现的方式都是一致的,这里只对其中 一个进行介绍。就以培训信息作为例子: 删除记录的操作同前面的删除操作一致,便是从 trained 表中删除该员工的所有信息。 添加记录、修改记录的对话框如图 4-10 所示 图 4-10 添加修改培训记录演示图 添加记录时需要填写员工编号、日期、培训内容及相应的备注。在单击确定按钮时, 若输入的员工编号不存在会提示报错;若有该员工,便向 trained 表中 insert 一条记录。 修改记录时同样也会弹出图 4-10 所示的图形界面,将需要修改的项目填写后,单击 确定按钮,即更新了 trained 表中的数据。具体的实现如下代码做了详尽介绍: void trained:on_pushButton_clicked() 25 QSqlQuery query; QString id; QString name; QString date; QString cont; QString remark; id = ui-lineID-text(); query.exec(“select * from emplinfo where Eid = “ + id); /判断输入的员工编号是否存在 query.next(); if(query.value(0).toString() = NULL) QMessageBox:critical(0,“错误!“,“不存在这个员工!“,QMessageBox:Cancel); else name = query.value(1).toString(); cont = ui-textCont-toPlainText(); if(! pare(“) cont = “-“; date = ui-dateEdit-text(); remark = ui-textRemark-toPlainText(); if(! pare(“) remark = “-“; 26 if(0 = mode) /mode 为 0 时,执行的是添加记录的操作 query.clear(); query.exec(“insert into trained(Tid,Tname,Ttime,Tcont,Trem) values(“+ id +“,“+ name +“,“+ date +“,“+ cont +“,“+ remark +“)“ ); else if(1 = mode) /mode 为 1 时,执行的是修改操作 query.clear(); query.exec(“update trained set Tid = “+ id +“,Tname = “+ name +“,Ttime = “+ date +“,Tcont = “+ cont +“,Trem = “+ remark +“ where Tnum = “ + m_num); this-close(); 人事管理这个 groupBox 的最后一个内容就是权限设置,这部分是对管理员有效的。 在管理员添加一个新的用户时,要设新用户的权限;也可以更改原有用户的权限。这里 只设置管理员用户权限和普通用户权限。而且实现起来也特别简单,在程序中关键的一 句为: query-exec(“update limits set Llimit = 管理员 where Lid = “ + id); 普通用户和管理用户的差别在于管理员可以更改任何员工的信息,而普通用户除了 本身的密码可以修改,对其余的信息只有查看功能。 以上是该系统中管理员各项功能的实现,普通用户的功能只需将和修改有关的功能 设置为 false,相应的按钮就会变成灰色不可使用的。若为普通用户登录,其界面如图 4- 11 : 27 图 4-11 普通用户登录的主界面图 管理员和普通用户区别的具体实现代码如下: if(query-value(2).toString() = “管理员“) /管理员用户的按钮可用性都设为 true; ui-btnDBM-setEnabled(true); ui-btnNormal-setEnabled(true); ui-btnDelKaoping-setEnabled(true); ui-btnDelReward-setEnabled(true); ui-btnDelTrained-setEnabled(true); ui-btnModKaoping-setEnabled(true); ui-btnModReward-setEnabled(true); ui-btnModTrained-setEnabled(true); 28 ui-btnKaoping-setEnabled(true); ui-btnReward-setEnabled(true); ui-btnTrained-setEnabled(true); ui-btnInsert-setEnabled(true); ui-btnDelete-setEnabled(true); ui-btnModify-setEnabled(true); ui-btnWorkinfo-setEnabled(true); else if(query-value(2).toString() = “一般“) /一般用户的按钮可用性设置为 false; ui-btnDBM-setEnabled(false); ui-btnNormal-setEnabled(false); ui-btnDelKaoping-setEnabled(false); ui-btnDelReward-setEnabled(false); ui-btnDelTrained-setEnabled(false); ui-btnModKaoping-setEnabled(false); ui-btnModReward-setEnabled(false); ui-btnModTrained-setEnabled(false); ui-btnKaoping-setEnabled(false); ui-btnReward-setEnabled(false); ui-btnTrained-setEnabled(false); ui-btnInsert-setEnabled(false); ui-btnDelete-setEnabled(false); ui-btnModify-setEnabled(false); ui-btnWorkinfo-setEnabled(false); 设置为 true 时,该按钮的功能可使用,设置为 false 时,该按钮的功能不能使用。这 也是大多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论