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