目录一、概述§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实体和部分属性图(E-R图)§4.2数据库关系设计五、详细设计§5.1登录模块设计§5.2主界面模块设计§5.3基础单元设置模块设计§5.4操作员工模块设计§5.5申请信息管理模块设计§5.6系统维护模块设计§5.7打印模块设计六、总结七、问题汇总八、参考文献九、使用说明书一、概述§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硬件要求●处理器: 1.6GHz或更高●内存大小:384M 或更高●硬件空间:20G以上§2.3.2;软件要求●操作系统:Windons 2000或Windows XP●数据库:Microsoft Server 2000●运行环境配置:Microsoft Visual Studio 2008,Microsoft Server 2000●开发语言:C#三、系统功能模块划分§3.1系统模块设计图3.1.1 总体设计图3.1.2 基础单元管理图3.1.4 部门信息管理图3.1.5 申请类型管理图3.1.6 申请状态管理图3.1.7 文化程度管理图 3.1.9 操作员工管理图 3.1.10 申请信息管理四、数据库设计§4.1实体和部分属性图§4.2数据库关系设计图4.2.1关系表员工表审核表申请类型表审批人表申请状态表教育程度表部门表用户登录表婚姻状况表五、详细设计§5.1登录模块设计通过此登录界面的认可,才能够进入公司业务管理系统。
正确的执行业务管理的功能。
对应的登录界面如图5.1.1所示。
图5.1.1 登陆界面在此窗口中公司操作员工必须输入正确的用户名和密码,才能进入系统主界面。
如下是登录界面的部分源代码:public partial class Login : Form{SqlConnection 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();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("用户名或密码错误!","登录失败",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);count++;if (count>2){count = 0;MessageBox.Show("尝试登录已达到3次!程序退出!","信息提示",MessageBoxButtons.OK,rmation);this.Close();}}reader.Close();}catch (Exception ex){MessageBox.Show(ex.Message);}}private void btn_LG_Cancel_Click(object sender, EventArgs e){Application.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 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();}private 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 DataTable 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 '部门',PeopleSex as '性别',EducationName as '文化程度',MarriageName as '婚姻状况',Birthday as '出生日期' from People,Department,Marriage,Education wherePeople.DepartID=Department.DepartID and People.MarriageID=Marriage.MarriageID andcationID=cationID", conn);da.Fill(ds2);this.dataGridView1.DataSource = ds2.Tables[0];}//初始化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();Init_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 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 cationID=cationID", conn);da.Fill(ds2);this.dataGridView1.AutoGenerateColumns = true;this.dataGridView1.DataSource = ds2.Tables[0];}else{string strSQL = "select PeopleID as '工作证号',PeopleName as '姓名',DepartName as '部门',PeopleSex as '性别',MarriageName as '婚姻状况',EducationName as '文化程度',Birthday as '出生日期' from People,Department,Marriage,Education wherePeople.DepartID=Department.DepartID and People.MarriageID=Marriage.MarriageID andcationID=cationID AND'" + str + "'=DepartName";ds2 = new DataSet();SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);da.Fill(ds2);this.dataGridView1.AutoGenerateColumns = true;this.dataGridView1.DataSource = ds2.Tables[0];}}//初始化Treeview中的数据private void Init_TreeView(){SqlCommand cmd = new SqlCommand("select DepartName from Department", conn);//使用While设置一个循环//先设置父节点的名称:TreeNode tn = treeView1.Nodes.Add("所有部门");SqlDataReader sdr = cmd.ExecuteReader();while (sdr.Read()){tn.Nodes.Add(sdr["DepartName"].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 '文化程度',MarriageName as '婚姻状况',Birthday as '出生日期' from People,Department,Marriage,Education wherePeople.DepartID=Department.DepartID and People.MarriageID=Marriage.MarriageID andcationID=cationID", conn);da.Fill(ds2);this.dataGridView1.AutoGenerateColumns = true;this.dataGridView1.DataSource = ds2.Tables[0];//ds.Clear();}§5.4 操作员工管理模块设计操作员工管理是对登录该管理系统的用户进行管理的。