• 1.52 MB
  • 2022-05-17 13:19:31 发布

基于c#+oracle的考勤管理系统的设计与开发_

  • 45页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
基于C#+Oracle的考勤管理系统的设计与开发《基于C#+Oracle的考勤管理系统的设计与开发》年级:***********学号:***********姓名:***********院系:***********专业:***********第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发基于C#+Oracle的考勤管理系统的设计与开发一、系统设计基本情况1.系统设计目标利用计算机管理考勤信息,在很大程度上减轻了统计的工作量,实现企业员工考勤管理的规范化,考勤数据统计的自动化。2.设计思想除了能够手工录入员工的考勤记录外,还能与考勤机相配合,实现考勤信息录入自动化;考勤类型灵活设定,以便用户随时调整应具有报表功能,查询统计时能够直接生成相关员工的考勤报表,报表能导出系统应采用模块程序设计,便于组合和修改综合考虑,确定本系统采用C/S工作模式,以oracle作为后台数据库,C#为前台程序开发语言。3.系统功能模块划分3.1员工信息管理模块3.2考勤类型的设定模块第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发3.1员工考勤信息手工录入模块3.2员工考勤情况统计报表生成模块第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发二、数据库设计1.数据库需求分析与用户结合,调查用户需求操作的资料,弄清用户怎样处理各种数据资料,理清数据库中各数据之间的关系。通过分析,设计数据集和数据项如下:1.1员工信息数据集,数据项为员工号,员工姓名,员工性别,员工所属部门。1.2考勤类型数据集:数据项为类型号,类型名称1.3员工考勤情况数据集:数据项为考勤日期,员工号,考勤类型号,备注。2.数据库结构设计2.1员工信息实体E-R图2.2考勤类型实体E-R图第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发2.1员工考勤实体E-R图2.2实体与实体间的关系E-R图1.各表格数据库设计代码(Oracle平台)3.1考勤类型表格CREATETABLEKQLXB(BHVARCHAR(4)NOTNULLPRIMARYKEY,LXVARCHAR(20)NULL);3.2员工信息表格CREATETABLEYGB(BHVARCHAR(8)NOTNULLPRIMARYKEY,XMVARCHAR(12)NOTNULL,XBVARCHAR(2)NOTNULL,BMVARCHAR(20));第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发3.1考勤情况管理表格CREATETABLEKQGLB(KQRQDATENOTNULL,YGBHVARCHAR(8)NOTNULL,LXBHVARCHAR(4)NOTNULL,BZVARCHAR(60),CONSTRAINTKQGLBPRIPRIMARYKEY(KQRQ,YGBH));3.2外键设计ALTERTABLEKQGLBADD(CONSTRAINTKQGL_BH_FKFOREIGNKEY(LXBH)REFERENCESKQLXB(BH),CONSTRAINTYG_BH_FKFOREIGNKEY(YGBH)REFERENCESYGB(BH));3.3触发器CREATEorREPLACETRIGGERdelete_ygbAFTERDELETEONygbFOREACHROWBEGINDELETEFROMkqglbWHEREkqglb.ygbh=:old.bh;ENDdelete_ygb;CREATEorREPLACETRIGGERupdate_ygbBEFOREUPDATEONygbFOREACHROWBEGINUPDATEkqglbSETkqglb.ygbh=:new.bhwherekqglb.ygbh=:old.bh;ENDupdate_ygb;CREATEorREPLACETRIGGERdelete_kqlxbAFTERDELETEONkqlxbFOREACHROWBEGINDELETEFROMkqglbWHEREkqglb.lxbh=:old.bh;ENDdelete_kqlxb;CREATEorREPLACETRIGGERupdate_kqlxbBEFOREUPDATEONkqlxbFOREACHROWBEGIN第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发UPDATEkqglbSETkqglb.lxbh=:new.bhwherekqglb.lxbh=:old.bh;ENDupdate_kqlxb;三、系统设计页面1.主界面:2.员工信息管理界面:第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发1.考勤类型管理界面:2.考勤信息录入界面:3.考勤统计报表界面:第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发四、系统编程的实现1.主界面模块功能:打开各个操作界面。//自定义变量publicfrm_ygxxygxx=null;//员工信息窗体变量publicfrm_kqlxkqlx=null;//考勤类型窗体变量publicfrm_kqglkqgl=null;//考勤管理窗体变量publicfrm_kqtjkqtj=null;//考勤统计窗体变量//////窗体加载事件///privatevoidfrm_kqglxt_Load(objectsender,EventArgse){pBtn.Left=(Width-pBtn.Width)/2;}//////各子窗体状态处理事件///privatevoidCloseFrm()第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发{if(ygxx!=null)ygxx.WindowState=FormWindowState.Minimized;if(kqlx!=null)kqlx.WindowState=FormWindowState.Minimized;if(kqgl!=null)kqgl.WindowState=FormWindowState.Minimized;if(kqtj!=null)kqtj.WindowState=FormWindowState.Minimized;}//////员工信息按钮事件///privatevoidbtnYGXX_Click(objectsender,EventArgse){CloseFrm();if(ygxx==null){ygxx=newfrm_ygxx();ygxx.MdiParent=this;ygxx.Show();}else{ygxx.WindowState=FormWindowState.Normal;ygxx.Activate();}ygxx.Location=newPoint(0,30);}//////考勤类型按钮事件///privatevoidbtnKQLX_Click(objectsender,EventArgse){CloseFrm();if(kqlx==null){kqlx=newfrm_kqlx();kqlx.MdiParent=this;kqlx.Show();}第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发else{kqlx.WindowState=FormWindowState.Normal;kqlx.Activate();}kqlx.Location=newPoint(0,30);}//////考勤管理按钮事件///privatevoidbtnKQGL_Click(objectsender,EventArgse){CloseFrm();if(kqgl==null){kqgl=newfrm_kqgl();kqgl.MdiParent=this;kqgl.Show();}else{kqgl.WindowState=FormWindowState.Normal;kqgl.Activate();}kqgl.Location=newPoint(0,30);}//////考勤统计按钮事件///privatevoidbtnKQTJ_Click(objectsender,EventArgse){CloseFrm();if(kqtj==null){kqtj=newfrm_kqtj();kqtj.MdiParent=this;kqtj.Show();第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发}else{kqtj.WindowState=FormWindowState.Normal;kqtj.Activate();}kqtj.Location=newPoint(0,30);}1.员工信息管理模块功能:操作当前员工信息表,并可以进行员工信息增、改、删的操作。//自定义变量privatestringtype="";//按钮禁用判断标记privateDataTabletable=null;//封装数据privateboolisbj=false;//状态标记//////窗体加载事件///privatevoidfrm_ygxx_Load(objectsender,EventArgse){table=Program.ConnRead("select*fromYGB");dgvYG.DataSource=table;ChangeButton("JZ");}//////数据表行选择更改事件///privatevoiddgvYG_SelectionChanged(objectsender,EventArgse){try{tbBH.Text=dgvYG.SelectedRows[0].Cells[0].Value.ToString();tbXM.Text=dgvYG.SelectedRows[0].Cells[1].Value.ToString();cbXB.Text=dgvYG.SelectedRows[0].Cells[2].Value.ToString();tbBM.Text=dgvYG.SelectedRows[0].Cells[3].Value.ToString();}第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发catch{}}//////窗体按钮是否禁用处理事件///privatevoidChangeButton(stringtype){if(type=="XG")tbBH.Enabled=!isbj;elsetbBH.Enabled=isbj;tbXM.Enabled=isbj;cbXB.Enabled=isbj;tbBM.Enabled=isbj;dgvYG.Enabled=!isbj;btnZJ.Enabled=!isbj;if(dgvYG.Rows.Count==0){btnXG.Enabled=false;btnSC.Enabled=false;}else{btnXG.Enabled=!isbj;btnSC.Enabled=!isbj;}btnTC.Enabled=!isbj;btnBC.Enabled=isbj;btnQX.Enabled=isbj;}//////编号文本框输入格式检查事件///privatevoidtbBH_TextChanged(objectsender,EventArgse){if(tbBH.Text.Length==0)return;第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发if(!char.IsNumber(tbBH.Text,tbBH.Text.Length-1)){tbBH.Text=tbBH.Text.Substring(0,tbBH.Text.Length-1);if(tbBH.Text.Length>0)tbBH.Select(tbBH.Text.Length,0);}}//////判断是否清空文本框数据事件///privatevoidbtnZJ_Click(objectsender,EventArgse){type="ZJ";isbj=true;tbBH.Text="";tbXM.Text="";cbXB.Text="男";tbBM.Text="";ChangeButton("ZJ");}//////修改数据事件///privatevoidbtnXG_Click(objectsender,EventArgse){if(tbBH.Text=="")return;type="XG";isbj=true;ChangeButton("XG");}///第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发///保存数据事件///privatevoidbtnBC_Click(objectsender,EventArgse){tbBH.Text=tbBH.Text.Trim();tbXM.Text=tbXM.Text.Trim();tbBM.Text=tbBM.Text.Trim();if(tbBH.Text==""){MessageBox.Show("编号不能为空。","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);tbBH.Focus();return;}elseif(tbBH.Text.Length<8){MessageBox.Show("编号长度不能少于位。","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);tbBH.Focus();return;}else{if(type!="XG"){for(inti=0;i0){if(type=="ZJ"){table.Rows.Add(tbBH.Text,tbXM.Text,cbXB.Text,tbBM.Text);dgvYG.DataSource=table;dgvYG.Rows[dgvYG.Rows.Count-1].Selected=true;MessageBox.Show("添加成功。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{for(inti=0;i///取消事件///privatevoidbtnQX_Click(objectsender,EventArgse){try{tbBH.Text=dgvYG.SelectedRows[0].Cells[0].Value.ToString();tbXM.Text=dgvYG.SelectedRows[0].Cells[1].Value.ToString();cbXB.Text=dgvYG.SelectedRows[0].Cells[2].Value.ToString();tbBM.Text=dgvYG.SelectedRows[0].Cells[3].Value.ToString();}catch{}type="";isbj=false;ChangeButton("QX");}///第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发///删除数据事件///privatevoidbtnSC_Click(objectsender,EventArgse){if(MessageBox.Show("确定要删除?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Asterisk).ToString()=="Yes"){stringsql="deletefromYGBwhereBH=""+tbBH.Text+""";if(Program.ConnNonRead(sql)>0){for(inti=0;i0){if(dgvYG.SelectedRows.Count<=0)dgvYG.Rows[dgvYG.Rows.Count-1].Selected=true;tbBH.Text=dgvYG.SelectedRows[0].Cells[0].Value.ToString();tbXM.Text=dgvYG.SelectedRows[0].Cells[1].Value.ToString();cbXB.Text=dgvYG.SelectedRows[0].Cells[2].Value.ToString();tbBM.Text=dgvYG.SelectedRows[0].Cells[3].Value.ToString();}ChangeButton("SC");MessageBox.Show("删除成功。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}elseMessageBox.Show("删除失败,请重新修改。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发}}//////退出事件///privatevoidbtnTC_Click(objectsender,EventArgse){Close();}//////退出判断事件///privatevoidfrm_ygxx_FormClosing(objectsender,FormClosingEventArgse){if(isbj){MessageBox.Show("请先关闭编辑。","提示",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);e.Cancel=true;}}//////退出后处理主界面变量事件///privatevoidfrm_ygxx_FormClosed(objectsender,FormClosedEventArgse){Program.kqglxt.ygxx=null;}1.考勤类型管理模块功能:操作当前考勤类型表,并可以进行考勤类型增、改、删的操作。//自定义变量privatestringtype="";//按钮禁用判断标记privateDataTabletable=null;//封装数据privateboolisbj=false;//状态标记第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发//////窗体加载事件///privatevoidfrm_kqlx_Load(objectsender,EventArgse){table=Program.ConnRead("select*fromKQLXB");dgvKQ.DataSource=table;ChangeButton("JZ");}//////数据表行选择更改事件///privatevoiddgvKQ_SelectionChanged(objectsender,EventArgse){try{tbBH.Text=dgvKQ.SelectedRows[0].Cells[0].Value.ToString();tbLX.Text=dgvKQ.SelectedRows[0].Cells[1].Value.ToString();}catch{}}//////编号文本框输入格式检查事件///privatevoidtbBH_TextChanged(objectsender,EventArgse){if(tbBH.Text.Length==0)return;if(!char.IsNumber(tbBH.Text,tbBH.Text.Length-1)){tbBH.Text=tbBH.Text.Substring(0,tbBH.Text.Length-1);if(tbBH.Text.Length>0)tbBH.Select(tbBH.Text.Length,0);}}第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发//////窗体按钮是否禁用处理事件///privatevoidChangeButton(stringtype){if(type=="XG")tbBH.Enabled=!isbj;elsetbBH.Enabled=isbj;tbLX.Enabled=isbj;dgvKQ.Enabled=!isbj;btnZJ.Enabled=!isbj;if(dgvKQ.Rows.Count==0){btnXG.Enabled=false;btnSC.Enabled=false;}else{btnXG.Enabled=!isbj;btnSC.Enabled=!isbj;}btnTC.Enabled=!isbj;btnBC.Enabled=isbj;btnQX.Enabled=isbj;}//////增加数据事件///privatevoidbtnZJ_Click(objectsender,EventArgse){type="ZJ";isbj=true;tbBH.Text="";tbLX.Text="";第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发ChangeButton("ZJ");}//////修改数据事件///privatevoidbtnXG_Click(objectsender,EventArgse){if(tbBH.Text=="")return;type="XG";isbj=true;ChangeButton("XG");}//////保存数据事件///privatevoidbtnBC_Click(objectsender,EventArgse){tbBH.Text=tbBH.Text.Trim();tbLX.Text=tbLX.Text.Trim();if(tbBH.Text==""){MessageBox.Show("编号不能为空。","提示",MessageBoxButtons.OK,MessageBoxIcon.Error);tbBH.Focus();return;}else{if(type!="XG"){for(inti=0;i0){if(type=="ZJ"){table.Rows.Add(tbBH.Text,tbLX.Text);dgvKQ.DataSource=table;dgvKQ.Rows[dgvKQ.Rows.Count-1].Selected=true;MessageBox.Show("添加成功。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{for(inti=0;i///取消事件///privatevoidbtnQX_Click(objectsender,EventArgse){try{tbBH.Text=dgvKQ.SelectedRows[0].Cells[0].Value.ToString();tbLX.Text=dgvKQ.SelectedRows[0].Cells[1].Value.ToString();}catch{}type="";isbj=false;第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发ChangeButton("QX");}//////删除数据事件///privatevoidbtnSC_Click(objectsender,EventArgse){if(MessageBox.Show("确定要删除?","提示",MessageBoxButtons.YesNo,MessageBoxIcon.Asterisk).ToString()=="Yes"){stringsql="deletefromKQLXBwhereBH=""+tbBH.Text+""";if(Program.ConnNonRead(sql)>0){for(inti=0;i0){if(dgvKQ.SelectedRows.Count<=0)dgvKQ.Rows[dgvKQ.Rows.Count-1].Selected=true;tbBH.Text=dgvKQ.SelectedRows[0].Cells[0].Value.ToString();tbLX.Text=dgvKQ.SelectedRows[0].Cells[1].Value.ToString();}ChangeButton("SC");MessageBox.Show("删除成功。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发elseMessageBox.Show("删除失败,请重新修改。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}}//////退出事件///privatevoidbtnTC_Click(objectsender,EventArgse){Close();}//////退出判断事件///privatevoidfrm_yglx_FormClosing(objectsender,FormClosingEventArgse){if(isbj){MessageBox.Show("请先关闭编辑。","提示",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);e.Cancel=true;}}//////退出后处理主界面变量事件///privatevoidfrm_kqlx_FormClosed(objectsender,FormClosedEventArgse){Program.kqglxt.kqlx=null;}1.员工考勤信息录入模块功能:操作当前考勤信息表,并可以进行考勤信息增、改、删的操作。//自定义变量privatestringtype="";//按钮禁用判断标记第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发privateDataTabletable1=null;//封装数据privateDataTabletable2=null;//封装数据privateDataTabletable3=null;//封装数据privateboolisbj=false;//状态标记//////窗体加载事件///privatevoidfrm_kqgl_Load(objectsender,EventArgse){type="JZ";table2=Program.ConnRead("selectBH,XMfromYGB");foreach(DataRowrowintable2.Rows)cbYG.Items.Add(row["BH"].ToString()+""+row["XM"].ToString());table3=Program.ConnRead("select*fromKQLXB");foreach(DataRowrowintable3.Rows)cbCQQK.Items.Add(row["BH"].ToString()+""+row["LX"].ToString());stringtime=dtpTIME.Value.Day+"-"+dtpTIME.Value.Month+"月-"+dtpTIME.Value.Year;table1=Program.ConnRead("selectKQRQ,YGBH,XM,LXBH,LX,BZfromKQLXB,YGB,KQGLBwhereYGBH=YGB.BHandLXBH=KQLXB.BHandKQRQ=""+time+""");BindData();type="";ChangeInfo();}//////绑定数据///privatevoidBindData(){intcount=dgvKQGL.Rows.Count;for(inti=0;i///窗体按钮是否禁用处理事件///privatevoidChangeEnabled(){if(dgvKQGL.Rows.Count==0)btnXG.Enabled=false;elsebtnXG.Enabled=!isbj;btnZJ.Enabled=!isbj;btnTC.Enabled=!isbj;btnBC.Enabled=isbj;btnQX.Enabled=isbj;dtpTIME.Enabled=!isbj;dgvKQGL.Enabled=!isbj;gbXX.Enabled=isbj;}//////改变显示数据事件///privatevoidChangeInfo(){if(type!="JZ"&&dgvKQGL.Rows.Count>0&&dgvKQGL.SelectedRows.Count>0)第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发{string[]temp={dgvKQGL.SelectedRows[0].Cells[1].Value.ToString(),dgvKQGL.SelectedRows[0].Cells[2].Value.ToString()};stringYGBH=temp[0].Substring(0,temp[0].IndexOf(""));stringLXBH=temp[1].Substring(0,temp[1].IndexOf(""));for(inti=0;i///选择日期后处理数据事件///privatevoiddtpTIME_CloseUp(objectsender,EventArgse){type="JZ";第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发stringtime=dtpTIME.Value.Day+"-"+dtpTIME.Value.Month+"月-"+dtpTIME.Value.Year;table1=Program.ConnRead("selectKQRQ,YGBH,XM,LXBH,LX,BZfromKQLXB,YGB,KQGLBwhereYGBH=YGB.BHandLXBH=KQLXB.BHandKQRQ=""+time+""");BindData();type="";ChangeInfo();}//////数据表行选择更改事件///privatevoiddgvKQGL_SelectionChanged(objectsender,EventArgse){ChangeInfo();}//////增加数据事件///privatevoidbtnZJ_Click(objectsender,EventArgse){isbj=true;type="ZJ";cbYG.SelectedIndex=0;cbCQQK.SelectedIndex=0;tbBZ.Text="";ChangeEnabled();}//////修改数据事件///privatevoidbtnXG_Click(objectsender,EventArgse){isbj=true;type="XG";第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发ChangeEnabled();cbYG.Enabled=false;}//////保存数据事件///privatevoidbtnBC_Click(objectsender,EventArgse){if(type=="ZJ"){for(inti=0;i0){if(type=="ZJ"){dgvKQGL.Rows.Add();dgvKQGL.Rows[dgvKQGL.Rows.Count-1].Cells[0].Value=dtpTIME.Value.ToLongDateString();dgvKQGL.Rows[dgvKQGL.Rows.Count-1].Cells[1].Value=cbYG.Text;dgvKQGL.Rows[dgvKQGL.Rows.Count-1].Cells[2].Value=cbCQQK.Text;dgvKQGL.Rows[dgvKQGL.Rows.Count-1].Cells[3].Value=tbBZ.Text;dgvKQGL.Rows[dgvKQGL.Rows.Count-1].Selected=true;MessageBox.Show("添加成功。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}else{for(inti=0;i///取消事件///privatevoidbtnQX_Click(objectsender,EventArgse){isbj=false;type="";ChangeInfo();ChangeEnabled();cbYG.Enabled=true;}//////退出事件///privatevoidbtnTC_Click(objectsender,EventArgse){Close();}//////退出判断事件///privatevoidfrm_kqgl_FormClosing(objectsender,FormClosingEventArgse){if(isbj){MessageBox.Show("请先关闭编辑。","提示",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);e.Cancel=true;第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发}}//////退出后处理主界面变量事件///privatevoidfrm_kqgl_FormClosed(objectsender,FormClosedEventArgse){Program.kqglxt.kqgl=null;}1.员工出勤情况统计报表模块功能:查询当前考勤信息表,并可以进行考勤信息组合查询、打印预览、打印操作。//////窗体加载事件///privatevoidfrm_kqtj_Load(objectsender,EventArgse){DataTabletable=Program.ConnRead("selectdistinctBMfromYGB");cbBM.Items.Add("全部");foreach(DataRowrowintable.Rows)cbBM.Items.Add(row["BM"].ToString());table=Program.ConnRead("selectLXfromKQLXB");cbLX.Items.Add("全部");foreach(DataRowrowintable.Rows)cbLX.Items.Add(row["LX"].ToString());cbBM.SelectedIndex=0;cbLX.SelectedIndex=0;stringtime=GetTime();stringsql="selectBM,XM,LX,Count(*)CSfromKQLXB,YGB,KQGLBwhereKQLXB.BH=LXBHandYGB.BH=YGBH";sql+="andKQRQ>=""+time.Substring(0,time.IndexOf(""))+""andKQRQ<=""+time.Substring(time.IndexOf(""))+""groupbyBM,XM,LX";table=Program.ConnRead(sql);foreach(DataRowrowintable.Rows){dgvKQTJ.Rows.Add();第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发dgvKQTJ.Rows[dgvKQTJ.Rows.Count-1].Cells[0].Value=row["BM"].ToString();dgvKQTJ.Rows[dgvKQTJ.Rows.Count-1].Cells[1].Value=row["XM"].ToString();dgvKQTJ.Rows[dgvKQTJ.Rows.Count-1].Cells[2].Value=row["LX"].ToString();dgvKQTJ.Rows[dgvKQTJ.Rows.Count-1].Cells[3].Value=row["CS"].ToString();}}//////获取时间格式事件///privatestringGetTime(){returndtpKS.Value.Day+"-"+dtpKS.Value.Month+"月-"+dtpKS.Value.Year+""+dtpJS.Value.Day+"-"+dtpJS.Value.Month+"月-"+dtpJS.Value.Year;}//////开始时间选择判断事件///privatevoiddtpKS_CloseUp(objectsender,EventArgse){if(dtpKS.Value>dtpJS.Value)dtpJS.Value=dtpKS.Value;}//////结束时间选择判断事件///privatevoiddtpJS_CloseUp(objectsender,EventArgse){if(dtpJS.Value///统计事件///privatevoidbtnTJ_Click(objectsender,EventArgse){stringtime=GetTime();stringsql="selectBM,XM,LX,Count(*)CSfromKQLXB,YGB,KQGLBwhereKQLXB.BH=LXBHandYGB.BH=YGBH";if(cbBM.Text!="全部")sql+="andBM=""+cbBM.Text+""";if(cbLX.Text!="全部")sql+="andLX=""+cbLX.Text+""";sql+="andKQRQ>=""+time.Substring(0,time.IndexOf(""))+""andKQRQ<=""+time.Substring(time.IndexOf(""))+""groupbyBM,XM,LX";DataTabletable=Program.ConnRead(sql);for(inti=dgvKQTJ.Rows.Count;i>0;--i)dgvKQTJ.Rows.RemoveAt(0);foreach(DataRowrowintable.Rows){dgvKQTJ.Rows.Add();dgvKQTJ.Rows[dgvKQTJ.Rows.Count-1].Cells[0].Value=row["BM"].ToString();dgvKQTJ.Rows[dgvKQTJ.Rows.Count-1].Cells[1].Value=row["XM"].ToString();dgvKQTJ.Rows[dgvKQTJ.Rows.Count-1].Cells[2].Value=row["LX"].ToString();dgvKQTJ.Rows[dgvKQTJ.Rows.Count-1].Cells[3].Value=row["CS"].ToString();}}//////打印预览事件///privatevoidbtnDYYL_Click(objectsender,EventArgse)第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发{if(dgvKQTJ.RowCount>0){ppdYL.Document=pdDY;ppdYL.ShowIcon=false;ppdYL.ShowDialog();}elseMessageBox.Show(this,"表中并没有信息可供打印预览。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}//////打印事件///privatevoidbtnDY_Click(objectsender,EventArgse){if(dgvKQTJ.RowCount>0)pdDY.Print();elseMessageBox.Show(this,"表中并没有信息可供打印。","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}//////绘制页面事件///privatevoidpdDY_PrintPage(objectsender,System.Drawing.Printing.PrintPageEventArgse){Fontfont=newFont("宋体",10);int[]columnsWidth={100,100,100,60};introwHidth=22;inttableLeft=(e.PageBounds.Width-360)/2;inttableTop=100;inttableHeadHeight=25;int[]columnsLeft={tableLeft,tableLeft+100,tableLeft+200,tableLeft第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发+300};//居中打印StringFormatsf=newStringFormat();sf.Alignment=StringAlignment.Center;//打印页面标题e.Graphics.DrawString("考勤管理统计",newFont("宋体",15),Brushes.Black,newPoint(e.PageBounds.Width/2,40),sf);//打印表中的列名for(intc=0;c///退出事件///privatevoidbtnTC_Click(objectsender,EventArgse){Close();}//////退出后处理主界面变量事件///privatevoidfrm_kqtj_FormClosed(objectsender,FormClosedEventArgse){Program.kqglxt.kqtj=null;}五、系统的测试运行1.运行时的主窗口第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发1.点击“员工信息”按钮,弹出窗口2.1增加、修改员工信息2.2保存员工信息第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发2.1删除员工信息1.点击“考勤类型”按钮,弹出窗口3.1增加、修改考勤类型第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发3.1保存考勤类型3.2删除考勤类型1.点击“考勤管理”按钮,弹出窗口4.1增加、修改考勤管理第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发4.1保存考勤管理1.点击“考勤统计”按钮,弹出窗口1.1选择条件后统计1.2打印预览第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发序号名称规格型号单位数量备注一制冷系统1压缩机组4AV10台42冷凝器LN-70台13贮氨器ZA-1.5台14桶泵组合ZWB-1.5台15氨液分离器AF-65台16集油器JY-219台17空气分离器KF-32台18紧急泄氨器JX-108台19冷风机KLL-250台810冷风机KLD-150台411冷风机KLD-100台212阀门套8613电磁阀套614管道及支架吨18.615管道及设备保温m32216管道保温包扎镀锌板吨1.617附件套1二气调系统1中空纤维制氮机CA-30B台12二氧化碳洗涤器GA-15台13气动电磁阀D100台144电脑控制系统CNJK-406台15信号转换器8线台16果心温度探头台77库气平衡袋5m3个78库气安全阀液封式个79小活塞空压机0.05/7台110PVC管套111附件套1三水冷系统1冷却塔DBNL3-100台22水泵SBL80-160I台23水泵SBL50-160I台24阀门套305管道及支架吨2.86附件套1四电仪控系统1电器控制柜套12照明系统套13电线电缆套14桥架管线套15附件套1第45页共45页 基于C#+Oracle的考勤管理系统的设计与开发第45页共45页