《公司业务管理系统报告.docx》由会员分享,可在线阅读,更多相关《公司业务管理系统报告.docx(31页珍藏版)》请在三一办公上搜索。
1、目录一、概述1.1 项目背景1.2 项目目的二 、需求分析2.1 业务描述2.2功能需求分析2.2.1 基本单元管理 2.2.1.1 员工信息管理 2.2.1.2 部门信息管理 2.2.1.3 申请类型管理 2.2.1.4 申请状态管理 2.2.1.5 文化程度管理 2.2.1.6 婚姻状况管理2.2.2 操作员工管理2.2.3 申请信息管理2.3 性能需求2.3.1 硬件要求2.3.2 软件要求三、系统功能模块划分3.1系统模块设计四、.数据库设计4.1实体和部分属性图(ER图)4.2数据库关系设计五、详细设计5.1登录模块设计5.2主界面模块设计5.3基础单元设置模块设计5.4操作员工模块
2、设计5.5申请信息管理模块设计5.6系统维护模块设计5.7打印模块设计六、总结七、问题汇总八、参考文献九、使用说明书一、 概述1.1 项目背景某公司进行工作业务管理电子化,该公司有多个部门,每个部门有多个人员。有许多业务要进行审核、批准、督办、检查的工作。为了对每个流程进行监督而设计本系统。1.2 项目目的公司业务管理系统是对其公司的业务信息进行管理,它主要功能包括基础单元管理、操作员工管理、申请管理等。基础单元管理包括员工信息管理、部门管理、申请类型管理、申请状态管理、文化程度管理、以及婚姻状况管理等信息管理;申请管理包抱申请信息的添加(提交)、删除、查询、审批、打印、导出等操作。二、 需求
3、分析2.1 业务描述某公司员工可以通过“增加申请”来提交各种申请信息,如请假或者购买设备等等。然后需要经过一级审批和二级审批。其中二级审批是最后的审核过程。一级审批和二级审批是通过权力值的大小来分配审核权的。2.2 功能需求分析2.2.1基本单元管理 2.2.1.1 员工信息管理 添加员工信息 修改员工信息 删除员工信息 查询员工信息 员工信息预览,打印和导出2.2.1.2 部门管理 添加部门信息 修改部门信息 删除部门信息 查询部门信息2.2.1.3 申请类型管理 添加申请类型 修改申请类型 删除申请类型 查询申请类型2.2.1.4 申请状态管理添加申请状态 修改申请状态 删除申请状态 查询
4、申请状态2.2.1.5 文化程度管理添加文化程度 修改文化程度 删除文化程度 查询文化程度2.2.1.6 婚姻状况管理添加婚姻状况修改婚姻状况 删除婚姻状况 查询婚姻状况2.2.2 操作员工管理添加操作员工 修改操作员工 删除操作员工 查询操作员工2.2.3 申请管理提交申请信息 删除申请信息 查询申请信息 审批申请信息申请信息预览,打印和导出2.3性能需求2.3.1硬件要求 处理器: 1.6GHz或更高 内存大小:384M 或更高 硬件空间:20G以上2.3.2;软件要求 操作系统:Windons 2000或Windows XP 数据库:Microsoft Server 2000 运行环境配
5、置:Microsoft Visual Studio 2008,Microsoft Server 2000 开发语言:C#三、 系统功能模块划分3.1系统模块设计公 司 业 务 管 理 系 统基础单元管理操作员工管理申请信息管理员工信息管理部门信息管理申请类型管理申请状态管理婚姻状况管理基 础 单 元 管 理员 工 信 息 管 理查询员工信息增加员工信息修改员工信息删除员工信息图3.1.1 总体设计图3.1.2 基础单元管理文化程度管理打印员工信息导出员工信息部 门 信 息 管 理查询部门信息增加部门信息修改部门信息删除部门信息申 请 类 型 管 理查询申请类型增加申请类型删除申请类型查询申请类
6、型申 请 状 态 管 理查询申请状态增加申请状态修改申请状态删除申请状态图3.1.4 部门信息管理图3.1.5 申请类型管理图3.1.6 申请状态管理文 化 程 度 管 理查询文化程度增加文化程度删除文化程度婚 姻 状 况 管 理修改婚姻状况查询婚姻状况操 作 员 工 管 理查询操作员工图 3.1.7 文化程度管理图 3.1.8 婚姻状况管理图 3.1.9 操作员工管理修改文化程度删除婚姻状况增加婚姻状况删除操作员工增加操作员工修改操作员工申 请 信 息 管 理 查询申请信息图 3.1.10 申请信息管理删除申请信息增加申请信息打印申请信息导出申请信息修改审批信息四、 数据库设计4.1实体和部
7、分属性图员工性别工作证号图4.1 实体和部分属性图姓名婚姻状况名教育程度名出生日期关系婚姻状况教育程度关系婚姻状况编号教育程度编号11114.2数据库关系设计审核表 婚姻状况表用户登录表部门表教育程度表员工表申请类型表审批人表申请状态表 图4.2.1关 系 表五、 详细设计5.1登录模块设计通过此登录界面的认可,才能够进入公司业务管理系统。正确的执行业务管理的功能。对应的登录界面如图5.1.1所示。图5.1.1 登陆界面在此窗口中公司操作员工必须输入正确的用户名和密码,才能进入系统主界面。如下是登录界面的部分源代码:public partial class Login : Form SqlCo
8、nnection conn; public Login() InitializeComponent(); private int count = 0; private void btn_LG_OK_Click(object sender, EventArgs e) try string conStr = Properties.Settings.Default.workFlowConnectionString; conn = new SqlConnection(conStr); conn.Open(); SqlCommand cmd = conn.CreateCommand(); cmd.Com
9、mandText = Select OperName,OperPassword From Operator Where OperName = + this.txt_LG_OperName.Text + AND OperPassword= + this.txt_LG_Password.Text + ; SqlDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) this.DialogResult = DialogResult.OK; else MessageBox.Show(用户名或密码错误!,登录失败,MessageBoxBu
10、ttons.OK,MessageBoxIcon.Exclamation); count+; if (count2) count = 0; MessageBox.Show(尝试登录已达到3次!程序退出!,信息提示,MessageBoxButtons.OK,MessageBoxIcon.Information); this.Close(); reader.Close(); catch (Exception ex) MessageBox.Show(ex.Message); private void btn_LG_Cancel_Click(object sender, EventArgs e) App
11、lication.Exit(); 5.2主界面模块设计在系统主界面中,可以选择此系统的各种设置管理,包括:员工信息管理、部门信息管理、操作员工管理、申请信息管理、信息打印,导出等功能。如下图5.2.1所示,在该系统中,主要包括如下几个功能。图5.2.1 系统主界面部分源代码:public partial class Form1 : Form public Form1() InitializeComponent(); private void 基础设置ToolStripMenuItem_Click(object sender, EventArgs e) base_setting bs = new
12、 base_setting(); bs.ShowDialog(); private void 申请查询与管理ToolStripMenuItem_Click(object sender, EventArgs e) apply_Manage am = new apply_Manage(); am.ShowDialog(); private void 操作员工设置ToolStripMenuItem_Click(object sender, EventArgs e) operator_setting op = new operator_setting(); op.ShowDialog(); priva
13、te void 退出ToolStripMenuItem_Click(object sender, EventArgs e) Application.Exit(); 5.3基础单元设置模块设计基础单元设置是对该公司的员工信息,部门信息进行管理,还有申请类型,申请状态,婚姻状况,教育程度的设置。其界面如图5.3.1所示。图5.3.1 基础单元设置界面部分源代码:public partial class base_setting : Form private SqlConnection conn; DataSet ds2; /获得DataTable数据以使得与更新完后的数据库同步 public Da
14、taTable GetTableData(string cmdStr) DataTable dt = new DataTable(); SqlDataAdapter da = new SqlDataAdapter(cmdStr, conn); da.Fill(dt); return dt; /更新员工信息表 public void PeoTableUpdate() ds2 = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(select PeopleID as 工作证号,PeopleName as 姓名,DepartName as 部
15、门,PeopleSex as 性别,EducationName as 文化程度,MarriageName as 婚姻状况,Birthday as 出生日期 from People,Department,Marriage,Education where People.DepartID=Department.DepartID and People.MarriageID=Marriage.MarriageID and People.EducationID=Education.EducationID, conn); da.Fill(ds2); this.dataGridView1.DataSource
16、 = ds2.Tables0; /初始化Treeview,员工信息表,部门表,申请类型等等.表里的数据 public base_setting() InitializeComponent(); string conStr = Properties.Settings.Default.workFlowConnectionString; conn = new SqlConnection(conStr); /打开DB连接 conn.Open(); Init_TreeView(); Init_dgw_People(); Init_dgw_Department(); Init_dgw_Event(); I
17、nit_dgw_Status(); Init_dgw_Education(); Init_dgw_Marriage(); /单击treeview控件某个部门,在DataGridView中显示选中部门的员工信息内容 private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) /单击treeview控件某个部门,在DataGridView中显示选中部门的信息内容 string str = e.Node.Text; if (str = 所有部门) ds2 = new DataSet(); SqlDataAdapter
18、da = new SqlDataAdapter(select PeopleID as 工作证号,PeopleName as 姓名,DepartName as 部门,PeopleSex as 性别,MarriageName as 婚姻状况,EducationName as 文化程度,Birthday as 出生日期 from People,Department,Marriage,Education where People.DepartID=Department.DepartID and People.MarriageID=Marriage.MarriageID and People.Educa
19、tionID=Education.EducationID, conn); da.Fill(ds2); this.dataGridView1.AutoGenerateColumns = true; this.dataGridView1.DataSource = ds2.Tables0; else string strSQL = select PeopleID as 工作证号,PeopleName as 姓名,DepartName as 部门,PeopleSex as 性别,MarriageName as 婚姻状况,EducationName as 文化程度,Birthday as 出生日期 fr
20、om People,Department,Marriage,Education where People.DepartID=Department.DepartID and People.MarriageID=Marriage.MarriageID and People.EducationID=Education.EducationID AND + str + =DepartName; ds2 = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(strSQL, conn); da.Fill(ds2); this.dataGridView
21、1.AutoGenerateColumns = true; this.dataGridView1.DataSource = ds2.Tables0; /初始化Treeview中的数据 private void Init_TreeView() SqlCommand cmd = new SqlCommand(select DepartName from Department, conn); /使用While设置一个循环 /先设置父节点的名称: TreeNode tn = treeView1.Nodes.Add(所有部门); SqlDataReader sdr = cmd.ExecuteReader
22、(); while (sdr.Read() tn.Nodes.Add(sdrDepartName.ToString(); sdr.Close(); treeView1.ExpandAll(); /初始化dgw中的员工信息 private void Init_dgw_People() ds2 = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(select PeopleID as 工作证号,PeopleName as 姓名,DepartName as 部门,PeopleSex as 性别,EducationName as 文化程度,Ma
23、rriageName as 婚姻状况,Birthday as 出生日期 from People,Department,Marriage,Education where People.DepartID=Department.DepartID and People.MarriageID=Marriage.MarriageID and People.EducationID=Education.EducationID, conn); da.Fill(ds2); this.dataGridView1.AutoGenerateColumns = true; this.dataGridView1.DataS
24、ource = ds2.Tables0; /ds.Clear(); 5.4 操作员工管理模块设计操作员工管理是对登录该管理系统的用户进行管理的。主要功能有用户名和密码的添加、删除、修改、查询等。其界面如图 5.4.1所示。图5.4.1 操作员工管理界面主要功能代码有: /增加Operator用户 private void toolStripButton1_Click(object sender, EventArgs e) try if (this.txt_OperID.Text = ) MessageBox.Show(请输入编号!, 信息提示); clearTextBox(); return;
25、 string addStr = Insert into Operator(OperID,OperName,OperPassword) Values(OperID,OperName,OperPassword); /创建一个与Connection关联的Command SqlCommand cmd = new SqlCommand(addStr, conn); cmd.Parameters.Add(new SqlParameter(OperID, this.txt_OperID.Text); cmd.Parameters.Add(new SqlParameter(OperName, this.tx
26、t_OperName.Text); cmd.Parameters.Add(new SqlParameter(OperPassword, this.txt_Password.Text); /cmd.CommandType = CommandType.Text; cmd.ExecuteNonQuery(); this.dataGridView1.DataSource = Update_dgv_Operator(select OperID as 编号,OperName as 用户名,OperPassword as 密码 from Operator); clearTextBox(); catch (E
27、xception ex) MessageBox.Show(该编号已存在!); /MessageBox.Show(ex.Message); clearTextBox(); /删除Operator用户 private void toolStripButton2_Click(object sender, EventArgs e) try if (this.txt_OperID.Text = ) MessageBox.Show(请选择要删除的编号!, 信息提示); clearTextBox(); return; if (MessageBox.Show(确定要删除该用户吗?, 信息提示, Message
28、BoxButtons.YesNo, MessageBoxIcon.Exclamation) = DialogResult.Yes) string deleStr = delete from Operator where OperID= + this.txt_OperID.Text; SqlCommand cmd = conn.CreateCommand(); cmd.CommandType = CommandType.Text; cmd.CommandText = deleStr; cmd.ExecuteNonQuery(); this.dataGridView1.DataSource = U
29、pdate_dgv_Operator(select OperID as 编号,OperName as 用户名,OperPassword as 密码 from Operator); clearTextBox(); catch (Exception ex) MessageBox.Show(ex.Message); clearTextBox(); /修改Operator private void toolStripButton3_Click(object sender, EventArgs e) try if (this.txt_OperID.Text = ) MessageBox.Show(请选择
30、要修改的编号!, 信息提示); clearTextBox(); return; string updateStr = update Operator set OperID = + this.txt_OperID.Text + ,OperName = + this.txt_OperName.Text + ,OperPassword = + this.txt_Password.Text + + where OperID= + this.dataGridView1.CurrentRow.Cells0.Value.ToString(); SqlCommand cmd = new SqlCommand(
31、updateStr, conn); cmd.ExecuteNonQuery(); this.dataGridView1.DataSource = Update_dgv_Operator(select OperID as 编号,OperName as 用户名,OperPassword as 密码 from Operator); clearTextBox(); catch (Exception ex) MessageBox.Show(ex.Message); 5.5 申请信息管理模块设计申请信息管理是该公司的主要管理功能,是对公司业务的管理,如请假,购买设备等等的申请提交,然后通过一级,二级审批完
32、成整个公司业务的流程,审批信息可以打印出来或者导出到Excel中。其中审批需要相应的审批权限。申请信息管理系统就是为了这一目的设计的。界面如图5.5.1所示。图5.5.1 申请管理界面主要代码: private void toolStripButton1_Click(object sender, EventArgs e) apply_Add AA = new apply_Add(this); AA.ShowDialog(); /删除申请信息记录 private void toolStripButton2_Click(object sender, EventArgs e) if (this.da
33、taGridView1.CurrentRow.Cells0.Value.ToString() != ) if (MessageBox.Show(确定要删除该记录?, 信息提示, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) = DialogResult.Yes) string deleStr = DELETE FROM Step WHERE StepID= + this.dataGridView1.CurrentRow.Cells0.Value.ToString().Trim(); SqlCommand cmd = new SqlCommand(deleStr, conn); cmd.ExecuteNonQuery(); apply_manage_Update(); /申请信息打印预览 private void toolStripButton5_Click(object sender, EventArgs e) printPreviewDialog1.Document = th