### PB人事管理系统课程设计知识点详解 #### 一、项目背景及概述 本次课程设计的目标是开发一个人事管理系统,该系统采用PowerBuilder 9.0作为前端开发工具,并使用MSSQL 2005作为后台数据库。项目的主要目的是让学生熟悉并掌握PowerBuilder在数据库应用程序中的应用,包括界面设计、数据库交互以及数据处理等方面的知识。 #### 二、系统功能模块 ##### 功能概述 人事管理系统主要包括以下几个功能模块: - 新员工基本信息的添加。 - 员工信息的查看与修改。 - 修改密码功能。 - 查询员工信息。 - 导出数据至多种格式,并支持打印功能。 - 员工学历统计图表。 - 部门信息管理。 - 岗位信息管理。 #### 三、具体实现细节 ##### 登录验证 - **w_login窗体**:用户需要输入用户名和密码进行登录验证。验证通过后进入主界面。 - **代码示例**: ```powerbuilder string password, username SELECT user.admin, user.password INTO :username, :password FROM user WHERE user.admin = :sle_1.text; if sle_1.text == "" or sle_2.text == "" then messagebox("错误!", "用户名或密码不能为空!", exclamation!, ok!, 2) else if username == sle_1.text and password == sle_2.text then messagebox("通过验证!", "用户名和密码正确,欢迎您使用本系统!", Information!, ok!, 2) else messagebox("错误!", "用户名或密码错误,请重新输入!", exclamation!, ok!, 2) endif endif ``` ##### 主界面操作 - **w_main窗体**:提供了对员工信息的基本操作,如保存修改、另存为、打印等。 - **保存修改**: ```powerbuilder if messagebox("提示信息", "是否保存修改?", Question!, YesNo!, 1) == 1 then dw_1.update() messagebox("提示信息", "保存完成") else messagebox("提示信息", "保存失败") endif ``` - **另存为**: ```powerbuilder dw_1.SaveAs() ``` - **打印**: ```powerbuilder dw_1.Print() ``` - **刷新**: ```powerbuilder dw_1.retrieve() ``` ##### 添加新员工 - **w_tianjia窗体**:允许用户输入新员工的基本信息,并将其添加到数据库中。 - **添加**: ```powerbuilder if (sle_1.text == "" or sle_2.text == "" or sle_3.text == "" or sle_4.text == "" or sle_5.text == "" or sle_6.text == "" or sle_7.text == "" or sle_8.text == "" or sle_9.text == "" or sle_10.text == "") then messagebox("错误!", "所有字段都必须填写!", exclamation!, ok!, 2) else INSERT INTO employee (...) messagebox("成功!", "员工已成功添加!", Information!, ok!, 2) endif ``` ##### 删除员工 - **w_shanchu窗体**:提供删除现有员工的功能。 - **删除**: ```powerbuilder if messagebox("警告!", "确定删除此员工吗?", Question!, YesNo!, 1) == 1 then DELETE FROM employee WHERE employee_id = :selected_employee_id messagebox("成功!", "员工已成功删除!", Information!, ok!, 2) else messagebox("取消!", "删除操作已取消!", Information!, ok!, 2) endif ``` ##### 查看婚姻信息 - **w_hunying窗体**:用于查看员工的婚姻状况信息,并提供修改功能。 - **修改**: ```powerbuilder UPDATE employee SET marital_status = :new_marital_status WHERE employee_id = :selected_employee_id ``` ##### 查看学历信息 - **w_xueli窗体**:用于查看员工的学历信息,并提供保存修改、打印和另存为功能。 - **保存修改**: ```powerbuilder UPDATE education SET degree = :new_degree WHERE employee_id = :selected_employee_id ``` - **打印**: ```powerbuilder dw_1.Print() ``` - **另存为**: ```powerbuilder dw_1.SaveAs() ``` ##### 按工号查询员工信息 - **w_gonghao窗体**:根据工号查询员工信息。 - **查询**: ```powerbuilder SELECT * FROM employee WHERE employee_id = :input_employee_id ``` ##### 按姓名查询员工信息 - **w_xingming窗体**:根据姓名查询员工信息。 - **查询**: ```powerbuilder SELECT * FROM employee WHERE name LIKE '%' + :input_name + '%' ``` ##### 统计员工学历信息 - **w_txueli窗体**:统计员工的学历信息,并展示统计数据。 - **统计**: ```powerbuilder SELECT degree, COUNT(*) AS count FROM education GROUP BY degree ``` ##### 查看部门信息 - **w_bumen窗体**:用于查看和管理部门信息。 - **添加**: ```powerbuilder INSERT INTO department (name, description) VALUES (:new_department_name, :new_department_description) ``` - **删除**: ```powerbuilder DELETE FROM department WHERE department_id = :selected_department_id ``` - **保存修改**: ```powerbuilder UPDATE department SET name = :new_department_name, description = :new_department_description WHERE department_id = :selected_department_id ``` ##### 查看岗位信息 - **w_gangwei窗体**:用于查看和管理岗位信息。 - **添加**: ```powerbuilder INSERT INTO position (name, description) VALUES (:new_position_name, :new_position_description) ``` - **删除**: ```powerbuilder DELETE FROM position WHERE position_id = :selected_position_id ``` - **保存修改**: ```powerbuilder UPDATE position SET name = :new_position_name, description = :new_position_description WHERE position_id = :selected_position_id ``` #### 四、总结 通过本次课程设计,学生不仅学会了如何使用PowerBuilder 9.0来构建一个完整的人事管理系统,还掌握了数据库设计、界面设计、数据处理等方面的知识。此外,该项目还涉及到了SQL语言的应用,这对于学生理解和掌握数据库操作至关重要。 在实际开发过程中,需要注意的是代码的规范性和可维护性,同时也要确保系统的安全性和稳定性。未来还可以考虑增加更多的功能,比如权限管理、日志记录等,以提高系统的实用性和安全性。
剩余16页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于WPF和HALCON实现的工具箱,实现了MVTec HDevelop的部分功能,包括模板匹配、字符识别等功能,详情看我的文章
- libcrypt.so.1库文件
- 结合k-means聚类算法和Gurobi求解含需求分配的设施选址问题代码
- 基于YOLOv8实现分心驾驶检测系统
- Python基于深度学习的滚动轴承故障诊断项目源代码+使用说明(高分项目)
- libfacedetection人脸检测C++代码实现Demo
- winform实现对数据库进行增删改查
- 中国地质大学信息检索作业
- C++-基于八叉树的高效概率3D映射框架(含主OctoMap库、查看器octovis和dynamicEDT3D)+代码注释+说明
- Java使用Poi导出word示例JavaPoiWord