📄 salaryset.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 + -