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

📄 salaryset.cpp

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

#include "stdafx.h"
#include "salarymanagement.h"
#include "SalarySet.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSalarySet dialog


CSalarySet::CSalarySet(CWnd* pParent /*=NULL*/)
	: CDialog(CSalarySet::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSalarySet)
	m_jiangJin = _T("");
	m_tax = _T("");
	m_faKuan = _T("");
	m_qiTa = _T("");
	m_buTie = _T("");
	m_bJiangJin = FALSE;
	m_bFaKuan = FALSE;
	m_bQiTa = FALSE;
	m_bBuTie = FALSE;
	m_bTax = FALSE;
	//}}AFX_DATA_INIT

	m_ado.OnInitADOConn();
}

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

void CSalarySet::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSalarySet)
	DDX_Control(pDX, IDC_DATETIMEPICKER, m_date);
	DDX_Control(pDX, IDC_COMBO3, m_cboID);
	DDX_Control(pDX, IDC_COMBO2, m_cboPosition);
	DDX_Control(pDX, IDC_COMBO1, m_cboDepart);
	DDX_Text(pDX, IDC_REWARD, m_jiangJin);
	DDX_Text(pDX, IDC_TAX, m_tax);
	DDX_Text(pDX, IDC_PUNISH, m_faKuan);
	DDX_Text(pDX, IDC_QITA, m_qiTa);
	DDX_Text(pDX, IDC_ALLOWANCE, m_buTie);
	DDX_Check(pDX, IDC_CHECK4, m_bJiangJin);
	DDX_Check(pDX, IDC_CHECK6, m_bFaKuan);
	DDX_Check(pDX, IDC_CHECK8, m_bQiTa);
	DDX_Check(pDX, IDC_CHECK3, m_bBuTie);
	DDX_Check(pDX, IDC_CHECK2, m_bTax);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSalarySet, CDialog)
	//{{AFX_MSG_MAP(CSalarySet)
	ON_BN_CLICKED(IDC_BUTTON3, OnSet)
	ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
	ON_CBN_SELCHANGE(IDC_COMBO2, OnSelchangeCombo2)
	ON_BN_CLICKED(IDC_CANCEL, OnCancel)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSalarySet message handlers

BOOL CSalarySet::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	//初时化部门显示的组合控件
	CString sql="Select 部门名称 From DepartmentSet";
	_RecordsetPtr record=m_ado.GetRecordSet(sql);

	while(!record->adoEOF)
	{
		m_cboDepart.AddString(_bstr_t(record->GetCollect("部门名称")));
		record->MoveNext();
	}
	m_cboDepart.SetCurSel(0);

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

	m_cboID.SetCurSel(0);

	//初始化时间控件,只显示年份和月份
	m_date.SetFormat("yyy年MM月");

	return TRUE; 
}

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

	CString nID;
	m_cboID.GetWindowText(nID);
	
	//获取时间控件中的时间
	CTime time;
	m_date.GetTime(time);
	
	CString sql;
	_RecordsetPtr pRecordset;
	
	try{
		//在Wage表中主键为年份、月份和员工ID,按主键搜索
		sql.Format("Select * From BasicInfomation Where 员工ID='%s'",nID);
		
		pRecordset=m_ado.GetRecordSet(sql);
		if(pRecordset->adoEOF)
		{
			MessageBox("员工ID不存在,请确认后重新输入!!!");
			return;
		}
		//通过员工ID获取其对应的姓名、部门和职位
		_variant_t name=pRecordset->GetCollect("员工姓名");
		_variant_t department=pRecordset->GetCollect("部门名称");
		_variant_t position=pRecordset->GetCollect("职位");
		
		sql.Format("Select * From Wage Where 年份='%d' And 月份='%d' And 员工ID='%s'",
			time.GetYear(),time.GetMonth(),nID);
		pRecordset=m_ado.GetRecordSet(sql);
		
		if(pRecordset->adoEOF)
		{
			//如果没有记录,则增加一条新记录
			pRecordset->AddNew();
			pRecordset->PutCollect("员工ID",(_variant_t)nID);
			CString temp;
			temp.Format("%d",time.GetYear());
			pRecordset->PutCollect("年份",(_variant_t)temp);
			temp.Format("%d",time.GetMonth());
			pRecordset->PutCollect("月份",(_variant_t)temp);
			
			pRecordset->PutCollect("姓名",name);
			pRecordset->PutCollect("所属部门",department);
			pRecordset->PutCollect("职位",position);
		}

		//如果已经有该记录,则进行更改
		if(m_bJiangJin) pRecordset->PutCollect("奖金",(_variant_t)m_jiangJin);
		if(m_bTax) pRecordset->PutCollect("所得税",(_variant_t)m_tax);
		if(m_bBuTie) pRecordset->PutCollect("职务补贴",(_variant_t)m_buTie);
		if(m_bFaKuan) pRecordset->PutCollect("违章罚款",(_variant_t)m_faKuan);
		if(m_bQiTa) pRecordset->PutCollect("其它福利",(_variant_t)m_qiTa);
		
		pRecordset->Update();
	}
	catch(_com_error e)
	{
		AfxMessageBox(e.Description());
	}
}


void CSalarySet::OnSelchangeCombo1() 
{
	//当部门发生变化时,对应的职位也发生相应的变化
	CString sql,department;
	m_cboDepart.GetLBText(m_cboDepart.GetCurSel(),department);

	try{
		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());
	}

	OnSelchangeCombo2();
}

void CSalarySet::OnCancel() 
{
	//重置所有控件
	m_cboID.SetCurSel(0);
	CWnd* pWnd=GetDlgItem(IDC_BASE);
	pWnd->SetWindowText("");
	while(pWnd!=GetDlgItem(IDC_QITA))
	{
		pWnd=GetNextDlgTabItem(pWnd,FALSE);
		pWnd->SetWindowText("");
	}
}

void CSalarySet::OnSelchangeCombo2() 
{
	//当职位组合框被改变时,对应的用户ID组合框也会随之发生相应的变化
	CString department ,position;
	int index1=m_cboDepart.GetCurSel();
	int index2=m_cboPosition.GetCurSel();
	if(index1==-1||index2==-1)
		return;
	m_cboDepart.GetLBText(index1,department);
	m_cboPosition.GetLBText(index2,position);

	try{
		//根据部门和职位查找员工ID
		CString sql;
		sql.Format("Select 员工ID From BasicInfomation Where 部门名称='%s' And 职位='%s'",
			department,position);
		_RecordsetPtr pRecordset=m_ado.GetRecordSet(sql);
		
		//将所有符合要求的员工ID加入到员工ID组合框中
		m_cboID.ResetContent();
		while(!pRecordset->adoEOF)
		{
			m_cboID.AddString(_bstr_t(pRecordset->GetCollect("员工ID")));
			
			pRecordset->MoveNext();
		}
		m_cboID.SetCurSel(0);
	}
	catch(_com_error e)
	{
		AfxMessageBox(e.Description());
	}
}

⌨️ 快捷键说明

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