职工工资管理系统设计与源代码文档格式.docx
《职工工资管理系统设计与源代码文档格式.docx》由会员分享,可在线阅读,更多相关《职工工资管理系统设计与源代码文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
1职工信息管理:
a.增加职工信息。
增加新职工时输入新职工的基本信息;
b.删除某职工的基本信息。
如,职工死亡或离职时;
c.修改某职工(指定职工编号)的某些信息(如,加工资、获得新学位、晋升职称、结婚或离婚)。
2工资管理:
a.增加工资信息。
当增加新职工时,添加某职工的工资信息;
b.职工离职或死亡时,删除某职工的工资信息;
c.修改工资信息。
当月开始增加或减少某些项工资或扣款数变化时,修改某职工的部分工资信息;
3查询与统计:
a.查询职工信息,如查询全体职工信息,或按职称、学历、出生年月、出生年月之前/之后、已婚/未婚等条件或多个条件的组合来查询相应的职工信息。
b.查询指定编号职工的工资信息;
c.按时间段统计职工收入或单位的工资支出。
三、概要设计四、详细设计voidCWorkerMgr6View:
OnExit()OnExit();
voidCWorkerMgr6View:
OnRecordFirst()if(m_pSet-IsBOF()m_pSet-SetFieldNull(NULL);
elsem_pSet-MoveFirst();
UpdateData(FALSE);
/更新对话框窗口voidCWorkerMgr6View:
OnRecordLast()m_pSet-MoveLast();
OnRecordNext()if(m_pSet-IsBOF()m_pSet-SetFieldNull(NULL);
/判断是否溢出if(m_pSet-IsEOF()AfxMessageBox(已经到达最后记录);
elsem_pSet-MoveNext();
OnRecordPre()if(m_pSet-IsBOF()AfxMessageBox(已经到达第一个记录);
m_pSet-MoveFirst();
m_pSet-MovePrev();
OnAddWorker()HRESULThr;
tryhr=m_pConnection.CreateInstance(ADODB.Connection);
/创建Connection对象if(SUCCEEDED(hr)hr=m_pConnection-Open(Provider=;
DataSource=worker.mdb,adModeUnknown);
/连接数据库/上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:
Provider=;
catch(_com_errore)/捕捉异常CStringerrormessage;
errormessage.Format(连接数据库失败!
rn错误信息:
%s,e.ErrorMessage();
AfxMessageBox(errormessage);
/显示错误信息CAddWorkerdl;
if(dl.DoModal()=IDOK)m_pSet-AddNew();
m_pSet-m_name=dl.m_nm;
m_pSet-m_id=dl.m_ids;
m_pSet-m_sex=dl.m_sx;
m_pSet-m_born=dl.m_bn;
m_pSet-m_zhichen=dl.m_zhch;
m_pSet-m_xueli=dl.m_xli;
m_pSet-m_salary=dl.m_sala;
m_pSet-m_marry=dl.m_marr;
m_pSet-Update();
m_pSet-MoveLast();
UpdateData(false);
OnAddMoney();
OnDeleteWorker()HRESULThr;
/显示错误信息CDelWorkerdl;
if(dl.DoModal()=IDOK)UpdateData(true);
trylongid=dl.m_idid;
CStringstr;
str.Format(DELETEfromworkerwhereID=%d,id);
_variant_tRecordsAffected;
m_pConnection-Execute(_bstr_t)str,&
RecordsAffected,adCmdText);
AfxMessageBox(删除成功!
);
catch(_com_error*e)AfxMessageBox(e-ErrorMessage();
m_pSet-MoveNext();
if(m_pSet-IsEOF()m_pSet-MoveLast();
OnChangWorker()HRESULThr;
/显示错误信息CChangeWorkdl2;
if(dl2.DoModal()=IDOK)UpdateData(true);
longid=dl2.m_wid;
while(m_pSet-m_id!
=dl2.m_wid)m_pSet-MoveNext();
CChangeOnedl1;
dl1.m_name1=m_pSet-m_name;
dl1.m_id1=m_pSet-m_id;
dl1.m_sex1=m_pSet-m_sex;
dl1.m_born1=m_pSet-m_born;
dl1.m_zhichen1=m_pSet-m_zhichen;
dl1.m_xueli=m_pSet-m_xueli;
dl1.m_salary1=m_pSet-m_salary;
dl1.m_marry1=m_pSet-m_marry;
if(dl1.DoModal()=IDOK)m_pSet-Edit();
m_pSet-m_name=dl1.m_name1;
m_pSet-m_id=dl1.m_id1;
m_pSet-m_sex=dl1.m_sex1;
m_pSet-m_born=dl1.m_born1;
m_pSet-m_zhichen=dl1.m_zhichen1;
m_pSet-m_xueli=dl1.m_xueli;
m_pSet-m_salary=dl1.m_salary1;
m_pSet-m_marry=dl1.m_marry1;
/m_pSet-MoveNext();
OnMShowDetail()CMShowDetaildl;
longid=m_pSet-m_id;
=id)m_pSet-MoveNext();
dl.m_month=m_pSet-m_month;
dl.m_id=m_pSet-m_id;
dl.m_name=m_pSet-m_name;
dl.m_base=m_pSet-m_base;
dl.m_jintie=m_pSet-m_jintie;
dl.m_gangtie=m_pSet-m_gangtie;
dl.m_butie=m_pSet-m_butie;
dl.m_fangtie=m_pSet-m_fangtie;
dl.m_jiaotong=m_pSet-m_jiaotong;
dl.m_yingfa=dl.m_base+dl.m_jintie+dl.m_gangtie+dl.m_butie+dl.m_fangtie+dl.m_jiaotong;
dl.m_fangzu=m_pSet-m_fangzu;
dl.m_chuxu=m_pSet-m_chuxu;
dl.m_huifei=m_pSet-m_huifei;
if(dl.m_yingfa=800&
dl.m_yingfa1000&
dl.m_yingfa5000)dl.m_gerentax=dl.m_yingfa*0.2f;
dl.m_yingkou=dl.m_fangzu+dl.m_chuxu+dl.m_huifei+dl.m_gerentax;
dl.m_shifa=dl.m_yingfa-dl.m_yingkou;
dl.m_other=m_pSet-m_other;
dl.DoModal();
OnAddMoney()CAddMoneydl;
if(dl.DoModal()=IDOK)m_pSet-Edit();
m_pSet-m_base=dl.m_base;
m_pSet-m_month=dl.m_month;
m_pSet-m_jintie=dl.m_jintie;
m_pSet-m_gangtie=dl.m_gangtie;
m_pSet-m_butie=dl.m_butie;
m_pSet-m_fangtie=dl.m_fangtie;
m_pSet-m_jiaotong=dl.m_jiaotong;
m_pSet-m