📄 wage.cpp
字号:
// Wage.cpp : implementation file
//
#include "stdafx.h"
#include "Rsglxt.h"
#include "Wage.h"
#include "Titleset.h"
#include "Duty.h"
#include "Employ.h"
#include "ExternDllHeader.h"
#include "DBaseQuery.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWage dialog
CWage::CWage(CWnd* pParent /*=NULL*/)
: CDialog(CWage::IDD, pParent)
{
//{{AFX_DATA_INIT(CWage)
//}}AFX_DATA_INIT
}
void CWage::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CWage)
DDX_Control(pDX, IDC_BTNDATASHOW, m_Btndatashow);
DDX_Control(pDX, IDC_BTNACCOUNT, m_Btnaccount);
DDX_Control(pDX, IDC_BTNADD, m_Btnadd);
DDX_Control(pDX, IDC_BTNCHANGE, m_Btnchange);
DDX_Control(pDX, IDC_BTNDEL, m_Btndel);
DDX_Control(pDX, IDC_BTNEXIT, m_Btnexit);
DDX_Control(pDX, IDC_BTNSAVE, m_Btnsave);
DDX_Control(pDX, IDC_BTNUNDO, m_Btnundo);
DDX_Control(pDX, IDC_EDTOLDWAGE, m_Edtoldwage);
DDX_Control(pDX, IDC_EDTSTAFFID, m_EdtStaffID);
DDX_Control(pDX, IDC_EDTWORKAGEWAGE, m_Edtworkagewage);
DDX_Control(pDX, IDC_EDTTRWAGE, m_Edttrwage);
DDX_Control(pDX, IDC_EDTTAXWAGE, m_Edttaxwage);
DDX_Control(pDX, IDC_EDTTAX, m_Edttax);
DDX_Control(pDX, IDC_EDTSHOULDWAGE, m_Edtshouldwage);
DDX_Control(pDX, IDC_EDTOTHERINWAGE, m_Edtotherinwage);
DDX_Control(pDX, IDC_EDTOTHERDEWAGE, m_Edtotherdewage);
DDX_Control(pDX, IDC_EDTMEDWAGE, m_Edtmedwage);
DDX_Control(pDX, IDC_EDTLATEWAGE, m_Edtlatewage);
DDX_Control(pDX, IDC_EDTHOLWAGE, m_Edtholwage);
DDX_Control(pDX, IDC_EDTHIGHWAGE, m_Edthighwage);
DDX_Control(pDX, IDC_EDTFACTWAGE, m_Edtfactwage);
DDX_Control(pDX, IDC_EDTALLOWAGE, m_Edtallowage);
DDX_Control(pDX, IDC_EDTADDWAGE, m_Edtaddwage);
DDX_Control(pDX, IDC_EDTABSENTWAGE, m_Edtabsentwage);
DDX_Control(pDX, IDC_EDTBASEWAGE, m_EdtBasewage);
DDX_Control(pDX, IDC_EDTYGXS, m_Edtygxs);
DDX_Control(pDX, IDC_EDTCDTS, m_Edtcdts);
DDX_Control(pDX, IDC_EDTCFJE, m_Edtcfje);
DDX_Control(pDX, IDC_EDTJBST, m_Edtjbst);
DDX_Control(pDX, IDC_EDTJLJE, m_Edtjlje);
DDX_Control(pDX, IDC_EDTKGTS, m_Edtkgts);
DDX_Control(pDX, IDC_EDTQJTS, m_Edtqjts);
DDX_Control(pDX, IDC_EDTWAGEID, m_EdtWageID);
DDX_Control(pDX, IDC_DATEWAGETIME, m_Wagetime);
DDX_Control(pDX, IDC_EDTSTAFFTITLE, m_EdtStaffTitle);
DDX_Control(pDX, IDC_EDTSTAFFNAME, m_EdtStaffName);
DDX_Control(pDX, IDC_EDTSTAFFDEP, m_EdtStaffDep);
DDX_Control(pDX, IDC_EDTSTAFFDUTY, m_EdtStaffDuty);
DDX_Control(pDX, IDC_COMSQLDEP, m_ComDep);
DDX_Control(pDX, IDC_LIST1, m_Sql_Grid);
DDX_Control(pDX, IDC_EDTSQLNAME, m_EdtSqlname);
DDX_Control(pDX, IDC_EDTSQLID, m_EdtSqlID);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CWage, CDialog)
//{{AFX_MSG_MAP(CWage)
ON_COMMAND(ID_MENU_DUTY, OnMenuDuty)
ON_COMMAND(ID_MENU_EMPLOY, OnMenuEmploy)
ON_COMMAND(ID_MENU_TITLE, OnMenuTitle)
ON_BN_CLICKED(IDC_BTNSEL, OnBtnsel)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
ON_BN_CLICKED(IDC_BTNDATASHOW, OnBtndatashow)
ON_BN_CLICKED(IDC_BTNADD, OnBtnadd)
ON_BN_CLICKED(IDC_BTNACCOUNT, OnBtnaccount)
ON_BN_CLICKED(IDC_BTNCHANGE, OnBtnchange)
ON_BN_CLICKED(IDC_BTNDEL, OnBtndel)
ON_BN_CLICKED(IDC_BTNSAVE, OnBtnsave)
ON_BN_CLICKED(IDC_BTNUNDO, OnBtnundo)
ON_BN_CLICKED(IDC_BTNEXIT, OnBtnexit)
ON_WM_PAINT()
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWage message handlers
void CWage::OnMenuDuty()
{
// TODO: Add your command handler code here
CDuty dlg;
dlg.DoModal();
}
void CWage::OnMenuEmploy()
{
// TODO: Add your command handler code here
CEmploy dlg;
dlg.DoModal();
}
void CWage::OnMenuTitle()
{
// TODO: Add your command handler code here
CTitleset dlg;
dlg.DoModal();
}
BOOL CWage::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CDBaseQuery* ParentWnd=(CDBaseQuery*)FindWindow(NULL,"工资信息查询");
m_sID=ParentWnd->m_Grid.GetItemText(ParentWnd->m_Grid.GetRow(),0);
CString sdep;
rst.Open("员工查询视图");
RxRecordset rs,ts;
rs.Open("部门视图");
m_ComDep.SetRecordset(rs,"部门名称");
m_Sql_Grid.ReadOnly(true);
m_Sql_Grid.SetDataBase("员工查询视图",adCmdTable);
CString FieldName;
ts.Open("select 部门名称 from 部门视图");
m_ComDep.SetFieldset(ts);
m_ComDep.SelectString(0,"所有部门");
this->m_ComDep.m_CurrentFieldType="字符型";
this->m_EdtSqlID.SetFocus();
this->DisPlayInfo(m_sID);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CWage::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::PreTranslateMessage(pMsg);
}
void CWage::OnBtnsel()
{
// TODO: Add your control notification handler code here
CString sSQL,sName,sSID,sSdep;
this->m_EdtSqlname.GetWindowText(sName);
this->m_EdtSqlID.GetWindowText(sSID);
this->m_ComDep.GetWindowText(sSdep);
if(sSdep=="所有部门")
{
if(sName.IsEmpty() && sSID.IsEmpty())
sSQL.Format("SELECT * FROM 员工查询视图");
if(!sName.IsEmpty())
{
if(sSID.IsEmpty())
sSQL.Format("SELECT * FROM 员工查询视图 where 姓名 LIKE '%%%s%%'",sName);
else
sSQL.Format("SELECT * FROM 员工查询视图 where 编号 LIKE '%%%s%%' OR 姓名 LIKE '%%%s%%'",sSID,sName);
}
else
{
if(!sSID.IsEmpty())
sSQL.Format("SELECT * FROM 员工查询视图 where 编号 LIKE '%%%s%%'",sSID);
}
}
if(sSdep!="所有部门")
{
if(sName.IsEmpty() && sSID.IsEmpty())
sSQL.Format("SELECT * FROM 员工查询视图 where 部门='%s'",sSdep);
if(!sName.IsEmpty())
{
if(sSID.IsEmpty())
sSQL.Format("SELECT * FROM 员工查询视图 where 姓名 LIKE '%%%s%%' AND 部门='%s'",sName,sSdep);
else
sSQL.Format("SELECT * FROM 员工查询视图 where 编号 LIKE '%%%s%%' OR 姓名 LIKE '%%%s%%' AND 部门='%s'",sSID,sName,sSdep);
}
else
{
if(!sSID.IsEmpty())
sSQL.Format("SELECT * FROM 员工查询视图 where 编号 LIKE '%%%s%%' AND 部门='%s'",sSID,sSdep);
}
}
rst.Open(sSQL,adCmdText);
m_Sql_Grid.AddCellValue(rst);
}
void CWage::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
RxRecordset rRst;
CString sSql,sname,sID,sdep,sduty,stitle;
if(m_Sql_Grid.GetHotItem()<0)
return;
m_tID=this->m_Sql_Grid.GetItemText(m_Sql_Grid.GetHotItem(),0);
sSql.Format("SELECT * FROM 员工查询视图 WHERE 编号='%s'",m_tID);
rRst.Open(sSql,adCmdText);
sID=rRst.GetFieldValue("编号");
sname=rRst.GetFieldValue("姓名");
sdep=rRst.GetFieldValue("部门");
sduty=rRst.GetFieldValue("职务");
stitle=rRst.GetFieldValue("职称");
m_EdtStaffID.SetWindowText(sID);
m_EdtStaffName.SetWindowText(sname);
m_EdtStaffDep.SetWindowText(sdep);
m_EdtStaffDuty.SetWindowText(sduty);
m_EdtStaffTitle.SetWindowText(stitle);
*pResult = 0;
}
void CWage::OnBtndatashow()
{
// TODO: Add your control notification handler code here
RxRecordset kst,jst,yst,zwst,zcst,ygxst;
CString kqs,jcs,ygs,TID,jbts,kgts,cdts,wyear,wmonth,wdate,ygxs,kgday,qjday,cdday,jbday,dep;
CTime time;
m_EdtStaffID.GetWindowText(TID);
m_Wagetime.GetTime(time);
wdate=CTimeToCString(time);
wyear=wdate.Mid(0,4);
wmonth=wdate.Mid(5,2);
if(wmonth.Find("-")>=0)
wmonth=wdate.Mid(5,1);
if(TID.IsEmpty())
{
MessageBox("员工编号不能为空,请重新输入!","系统提示",MB_OK|MB_ICONSTOP);
m_EdtStaffID.SetFocus();
return;
}
kqs.Format("select * from 员工考勤视图 where 员工编号='%s' and 考勤年份='%s' and 考勤月份='%s'",TID,wyear,wmonth);
kst.Open(kqs,adCmdText);
if(kst.GetRecordCount()<1)
{
CString text;
text.Format("编号为'%s'的员工在'%s'年'%s'月份没有考勤记录,请返回到考勤管理进行登记",TID,wyear,wmonth);
MessageBox(text,"系统提示");
return;
}
kgday=kst.GetFieldValue("旷工天数");
qjday=kst.GetFieldValue("请假天数");
cdday=kst.GetFieldValue("迟到天数");
jbday=kst.GetFieldValue("加班天数");
m_Edtjbst.SetWindowText(jbday);
m_Edtcdts.SetWindowText(cdday);
m_Edtqjts.SetWindowText(qjday);
m_Edtkgts.SetWindowText(kgday);
jcs.Format("select * from 员工奖惩视图 where 员工编号='%s' and 奖惩年份='%s' and 奖惩月份='%s'",TID,wyear,wmonth);
jst.Open(jcs,adCmdText);
if(jst.GetRecordCount()<1)
{
m_Edtcfje.SetWindowText("0");
m_Edtjlje.SetWindowText("0");
}
else
{
CString jlje,cfje;
jlje=jst.GetFieldValue("奖励金额");
cfje=jst.GetFieldValue("处罚金额");
m_Edtcfje.SetWindowText(cfje);
m_Edtjlje.SetWindowText(jlje);
}
ygs.Format("select * from 员工信息视图 where 员工编号='%s'",TID);
yst.Open(ygs,adCmdText);
dep=yst.GetFieldValue("部门");
ygxs=yst.GetFieldValue("用工形式");
m_Edtygxs.SetWindowText(ygxs);
CString zwsql,zcsql,zw,zc,zwgz,zcgz,ygxssql,ygxsgz,basewage;
zw=yst.GetFieldValue("职务");
zc=yst.GetFieldValue("职称");
if(zc.IsEmpty())
{
zcgz="0";
}
else
{
zcsql.Format("select * from 职称视图 where 职称名称='%s'",zc);
zcst.Open(zcsql,adCmdText);
zcgz=zcst.GetFieldValue("职称补贴");
}
if(zw.IsEmpty())
{
zwgz="0";
}
else
{
zwsql.Format("select * from 职务视图 where 职务名称='%s'",zw);
zwst.Open(zwsql,adCmdText);
zwgz=zwst.GetFieldValue("职务补贴");
}
ygxssql.Format("select * from 用工形式视图 where 部门='%s' and 用工形式名称='%s'",dep,ygxs);
ygxst.Open(ygxssql,adCmdText);
ygxsgz=ygxst.GetFieldValue("用工形式补贴");
float numzw,numzc,numygxs,znum;
numzw=atof(zwgz);
numzc=atof(zcgz);
numygxs=atof(ygxsgz);
znum=numzw+numzc+numygxs;
basewage.Format("%f",znum);
m_EdtBasewage.SetWindowText(basewage);
}
void CWage::OnBtnadd()
{
// TODO: Add your control notification handler code here
AddOrChange=1;
this->Clear();
this->ButtonEnabled(true);
CString NewID=ado.AutoNumber("WageInfo","Wage_ID","HT",2);
m_EdtWageID.SetWindowText(NewID);
m_EdtStaffID.SetFocus();
}
void CWage::OnBtnaccount()
{
// TODO: Add your control notification handler code here
CString addwage,absentwage,latewage,medwage,trwage,workagewage,tax,otherinwage,factwage,highwage;
CString holwage,allowage,oldwage,shouldwage,basewage,jlje,cfje,jbts,kgts,cdts,qjts,otherdewage,taxwage;
m_Edtaddwage.GetWindowText(addwage);//加班
m_Edtjbst.GetWindowText(jbts);//加班次数
m_Edtabsentwage.GetWindowText(absentwage);//旷工
m_Edtkgts.GetWindowText(kgts);//
m_Edtworkagewage.GetWindowText(workagewage);//工龄补贴
m_Edtlatewage.GetWindowText(latewage);//迟到
m_Edtcdts.GetWindowText(cdts);
m_Edtholwage.GetWindowText(holwage);//请假
m_Edtqjts.GetWindowText(qjts);
m_Edtallowage.GetWindowText(allowage);//津贴
m_Edttrwage.GetWindowText(trwage);//交通
m_Edthighwage.GetWindowText(highwage);//高温
m_Edtoldwage.GetWindowText(oldwage);//养老
m_Edtmedwage.GetWindowText(medwage);//医疗
m_Edtotherinwage.GetWindowText(otherinwage);//其他保险
m_Edttax.GetWindowText(tax);//税率
m_EdtBasewage.GetWindowText(basewage);//基本工资
m_Edtjlje.GetWindowText(jlje);
m_Edtcfje.GetWindowText(cfje);
m_Edtotherdewage.GetWindowText(otherdewage);
if(addwage.IsEmpty())
{
addwage="0";
}
else
{
char ch;
int len;
len=addwage.GetLength();
for(int i=0;i<len;i++)
{
ch=addwage.GetAt(i);
if(ch!=46||(ch>='0' && ch<='9'))//(ch>47 && ch<58)
{
MessageBox("加班费(次/元)输入无效,请重新输入。","系统提示",MB_OKCANCEL|MB_ICONQUESTION!=1);
m_Edtaddwage.SetFocus();
return;
}
}
}
if(absentwage.IsEmpty())
{
absentwage="0";
}
else
{
char ch;
int len;
len=absentwage.GetLength();
for(int i=0;i<len;i++)
{
ch=absentwage.GetAt(i);
if(ch!=46||(ch>='0' && ch<='9'))//(ch>47 && ch<58)
{
MessageBox("矿工费(次/元)输入无效,请重新输入。","系统提示",MB_OKCANCEL|MB_ICONQUESTION!=1);
m_Edtabsentwage.SetFocus();
return;
}
}
}
if(workagewage.IsEmpty())
{
workagewage="0";
}
else
{
char ch;
int len;
len=workagewage.GetLength();
for(int i=0;i<len;i++)
{
ch=workagewage.GetAt(i);
if(ch!=46||(ch>='0' && ch<='9'))//(ch>47 && ch<58)
{
MessageBox("工龄补贴输入无效,请重新输入。","系统提示",MB_OKCANCEL|MB_ICONQUESTION!=1);
m_Edtworkagewage.SetFocus();
return;
}
}
}
if(latewage.IsEmpty())
{
latewage="0";
}
else
{
char ch;
int len;
len=latewage.GetLength();
for(int i=0;i<len;i++)
{
ch=latewage.GetAt(i);
if(ch!=46||(ch>='0' && ch<='9'))//(ch>47 && ch<58)
{
MessageBox("迟到早退扣除(次/元)输入无效,请重新输入。","系统提示",MB_OKCANCEL|MB_ICONQUESTION!=1);
m_Edtlatewage.SetFocus();
return;
}
}
}
if(holwage.IsEmpty())
{
holwage="0";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -