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

📄 kaoqinsalaryset.cpp

📁 这是采用mfc编写的工资管理系统
💻 CPP
字号:
// KaoqinSalarySet.cpp : implementation file
//

#include "stdafx.h"
#include "salarymanagement.h"
#include "KaoqinSalarySet.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CKaoqinSalarySet dialog

#define DEFAULT_VALUE "0"	//设置休假,请假,出差时默认工资为0
CKaoqinSalarySet::CKaoqinSalarySet(CWnd* pParent /*=NULL*/)
	: CDialog(CKaoqinSalarySet::IDD, pParent)
{
	//{{AFX_DATA_INIT(CKaoqinSalarySet)
	m_bKuangGong = FALSE;
	m_bLater = FALSE;
	m_bZaoTui = FALSE;
	m_bOverTime = FALSE;
	m_bVacation = FALSE;
	m_bQingJia = FALSE;
	m_bChuChai = FALSE;
	m_chuChai = _T(DEFAULT_VALUE);
	m_kuangGong = _T("");
	m_later = _T("");
	m_overTime = _T("");
	m_qingJia = _T(DEFAULT_VALUE);
	m_vacation = _T(DEFAULT_VALUE);
	m_zaoTui = _T("");
	m_bYangLaoJin = FALSE;
	m_bGongJiJin = FALSE;
	m_gongJiJin = _T("");
	m_yangLaoJin = _T("");
	m_diXin = _T("");
	m_bDiXin = FALSE;
	//}}AFX_DATA_INIT
	m_ado.OnInitADOConn();
}

CKaoqinSalarySet::~CKaoqinSalarySet()
{
	m_ado.ExitConnect();
}

void CKaoqinSalarySet::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CKaoqinSalarySet)
	DDX_Control(pDX, IDC_COMBO2, m_cboPosition);
	DDX_Control(pDX, IDC_COMBO1, m_cboDepart);
	DDX_Check(pDX, IDC_CHECK1, m_bKuangGong);
	DDX_Check(pDX, IDC_CHECK2, m_bLater);
	DDX_Check(pDX, IDC_CHECK3, m_bZaoTui);
	DDX_Check(pDX, IDC_CHECK4, m_bOverTime);
	DDX_Check(pDX, IDC_CHECK5, m_bVacation);
	DDX_Check(pDX, IDC_CHECK6, m_bQingJia);
	DDX_Check(pDX, IDC_CHECK7, m_bChuChai);
	DDX_Text(pDX, IDC_CHUCHAI, m_chuChai);
	DDX_Text(pDX, IDC_KUANGGONG, m_kuangGong);
	DDX_Text(pDX, IDC_LATER, m_later);
	DDX_Text(pDX, IDC_OVERTIME, m_overTime);
	DDX_Text(pDX, IDC_QINGJIA, m_qingJia);
	DDX_Text(pDX, IDC_VACATION, m_vacation);
	DDX_Text(pDX, IDC_ZAOTUI, m_zaoTui);
	DDX_Check(pDX, IDC_CHECK10, m_bYangLaoJin);
	DDX_Check(pDX, IDC_CHECK9, m_bGongJiJin);
	DDX_Text(pDX, IDC_GONGJIJIN, m_gongJiJin);
	DDX_Text(pDX, IDC_YANGLAOJIN, m_yangLaoJin);
	DDX_Text(pDX, IDC_BASE, m_diXin);
	DDX_Check(pDX, IDC_CHECK8, m_bDiXin);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CKaoqinSalarySet, CDialog)
	//{{AFX_MSG_MAP(CKaoqinSalarySet)
	ON_BN_CLICKED(IDC_SET, OnSet)
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	ON_BN_CLICKED(IDC_RESET, OnReset)
	ON_WM_SHOWWINDOW()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CKaoqinSalarySet message handlers

BOOL CKaoqinSalarySet::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	//通过数据库中的数据初始化各控件
	OnInitCtrl();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CKaoqinSalarySet::OnSet() 
{
	UpdateData();

	//获取部门和职位
	CString position,department,nID;
	m_cboDepart.GetLBText(m_cboDepart.GetCurSel(),department);
	m_cboPosition.GetLBText(m_cboPosition.GetCurSel(),position);

	try{
		//查询对应职位和部门的记录
		CString sql;
		sql.Format("Select * From DepartmentSet Where 部门名称='%s' And 职位='%s'",
			department,position);
		_RecordsetPtr recordset=m_ado.GetRecordSet(sql);
		
		//更新数据库
		if(m_bKuangGong) recordset->PutCollect("旷工工资",(_variant_t)m_kuangGong);
		if(m_bLater) recordset->PutCollect("迟到工资",(_variant_t)m_later);
		if(m_bZaoTui) recordset->PutCollect("早退工资",(_variant_t)m_zaoTui);
		if(m_bOverTime) recordset->PutCollect("加班工资",(_variant_t)m_overTime);
		if(m_bVacation) recordset->PutCollect("休假工资",(_variant_t)m_vacation);
		if(m_bQingJia) recordset->PutCollect("请假工资",(_variant_t)m_qingJia);

		if(m_bDiXin) recordset->PutCollect("底薪",(_variant_t)m_diXin);
		if(m_bGongJiJin) recordset->PutCollect("公积金",(_variant_t)m_gongJiJin);
		if(m_bYangLaoJin) recordset->PutCollect("养老金",(_variant_t)m_yangLaoJin);

		recordset->Update();
	}
	catch(_com_error e)
	{
		AfxMessageBox(e.Description());
	}
}

void CKaoqinSalarySet::OnSelchangeCombo1() 
{
	try{
		//当部门发生变化时,职位也应相应的改变
		CString sql,department;
		int index=m_cboDepart.GetCurSel();
		if(index==-1)
			return;
		m_cboDepart.GetLBText(index,department);
		sql.Format("Select 职位 From DepartmentSet Where 部门名称='%s'",department);
		_RecordsetPtr record=m_ado.GetRecordSet(sql);
		
		//清空原来的内容,重置新的数据
		m_cboPosition.ResetContent();
		while(!record->adoEOF)
		{
			m_cboPosition.AddString(_bstr_t(record->GetCollect("职位")));
			record->MoveNext();
		}
		m_cboPosition.SetCurSel(0);	
	}
	catch(_com_error e)
	{
		AfxMessageBox(e.Description());
	}
}

void CKaoqinSalarySet::OnReset() 
{
	//重置各控件
	CWnd* pWnd=GetDlgItem(IDC_KUANGGONG);
	pWnd->SetWindowText("");
	while(pWnd!=GetDlgItem(IDC_CHUCHAI))
	{
		pWnd=GetNextDlgTabItem(pWnd,FALSE);
		pWnd->SetWindowText("");
	}	
}

void CKaoqinSalarySet::OnInitCtrl()
{
	try{
		//初时化部门显示的组合控件
		CString sql="Select distinct 部门名称 From DepartmentSet";
		_RecordsetPtr record=m_ado.GetRecordSet(sql);
		
		//无重复显示
		CString str="",temp;
		while(!record->adoEOF)
		{
			temp=(LPCTSTR)_bstr_t(record->GetCollect("部门名称"));
			if(str!=temp)
			{
				m_cboDepart.AddString(temp);
				str=temp;
			}
			record->MoveNext();
		}
		m_cboDepart.SetCurSel(0);
	}
	catch(_com_error e)
	{
		AfxMessageBox(e.Description());
	}

	//初时化职位显示的组合控件
	OnSelchangeCombo1();
}

void CKaoqinSalarySet::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CDialog::OnShowWindow(bShow, nStatus);
	
	//当窗口显示时,重新初始化各控件
	if(bShow)
		OnInitCtrl();	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -