⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wage.cpp

📁 一个有关人事系统的所有代码和有关文件包括里面小量数据库。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -