📄 pagesalarymanage.cpp
字号:
// PageSalaryManage.cpp : implementation file
//
#include "stdafx.h"
#include "PersonelManage.h"
#include "PageSalaryManage.h"
#include "BasicSalarySetDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPageSalaryManage property page
IMPLEMENT_DYNCREATE(CPageSalaryManage, CResizablePage)
CPageSalaryManage::CPageSalaryManage() : CResizablePage(CPageSalaryManage::IDD)
{
//{{AFX_DATA_INIT(CPageSalaryManage)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_psp.dwFlags &= (~PSP_HASHELP);
m_psp.dwFlags |= ( PSP_USEHICON );
HICON hIconTab = AfxGetApp()->LoadIcon(IDI_PERSON);
m_psp.hIcon = hIconTab;
}
CPageSalaryManage::~CPageSalaryManage()
{
}
void CPageSalaryManage::DoDataExchange(CDataExchange* pDX)
{
CResizablePage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPageSalaryManage)
DDX_Control(pDX, IDC_LIST_EMPSALARY, m_ctrlSalary);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPageSalaryManage, CResizablePage)
//{{AFX_MSG_MAP(CPageSalaryManage)
ON_BN_CLICKED(IDC_BUTTON_SETSALARY, OnButtonSetsalary)
ON_BN_CLICKED(IDC_BUTTON_SHOWALL, OnButtonShowall)
ON_BN_CLICKED(IDC_BUTTON_EMPQUERY, OnButtonEmpquery)
ON_BN_CLICKED(IDC_BUTTON_HISTORYQUERY, OnButtonHistoryquery)
ON_BN_CLICKED(IDC_BUTTON_GRPBYDEPT, OnButtonGrpbydept)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPageSalaryManage message handlers
BOOL CPageSalaryManage::OnInitDialog()
{
CResizablePage::OnInitDialog();
// TODO: Add extra initialization here
AddAnchor(IDC_BUTTON_EMPQUERY, TOP_LEFT);
AddAnchor(IDC_BUTTON_HISTORYQUERY, TOP_LEFT);
AddAnchor(IDC_BUTTON_GRPBYDEPT, TOP_LEFT);
AddAnchor(IDC_LIST_EMPSALARY, TOP_LEFT, BOTTOM_RIGHT);
AddAnchor(IDC_BUTTON_SETSALARY, BOTTOM_LEFT);
AddAnchor(IDC_BUTTON_SHOWALL, BOTTOM_LEFT);
DWORD dwStyle = m_ctrlSalary.GetExtendedStyle();
dwStyle |= LVS_EX_GRIDLINES | LVS_EX_FULLROWSELECT;
m_ctrlSalary.SetExtendedStyle(dwStyle);
//显示数据
FillSalaryList();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPageSalaryManage::FillSalaryList()
{
CString strEmployeeID;
CString strSalaryTime;
CString strBasicSalary;
CString strOvertimeSalary;
CString strAbsenceSalary;
CString strOtherSalary;
CADODatabase *pDb = new CADODatabase;
try
{
if(pDb->Open())
{
CADORecordset *pRs = new CADORecordset(pDb);
if(pRs->Open("tblSalary", CADORecordset::openTable))
{
DelAllColumns();
m_ctrlSalary.InsertColumn(0, "EmployeeID", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(1, "SalaryTime", LVCFMT_LEFT, 192);
m_ctrlSalary.InsertColumn(2, "BasicSalary", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(3, "OvertimeSalary", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(4, "AbsenceSalary", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(5, "OtherSalary", LVCFMT_LEFT, 128);
int cur = 0;
while(!pRs->IsEOF())
{
pRs->GetFieldValue("EmployeeID", strEmployeeID);
m_ctrlSalary.InsertItem(cur, strEmployeeID);
pRs->GetFieldValue("SalaryTime", strSalaryTime);
m_ctrlSalary.SetItemText(cur, 1, strSalaryTime);
pRs->GetFieldValue("BasicSalary", strBasicSalary);
m_ctrlSalary.SetItemText(cur, 2, strBasicSalary);
pRs->GetFieldValue("OvertimeSalary", strOvertimeSalary);
m_ctrlSalary.SetItemText(cur, 3, strOvertimeSalary);
pRs->GetFieldValue("AbsenceSalary", strAbsenceSalary);
m_ctrlSalary.SetItemText(cur, 4, strAbsenceSalary);
pRs->GetFieldValue("OtherSalary", strOtherSalary);
m_ctrlSalary.SetItemText(cur, 5, strOtherSalary);
cur++;
pRs->MoveNext();
}
pRs->Close();
}
delete pRs;
pDb->Close();
}
delete pDb;
}
catch(CADOException)
{
}
}
void CPageSalaryManage::DelAllColumns()
{
m_ctrlSalary.DeleteAllItems();
for(int i = 0, j = m_ctrlSalary.GetHeaderCtrl()->GetItemCount(); i < j; i++)
m_ctrlSalary.DeleteColumn(0);
}
void CPageSalaryManage::OnButtonSetsalary()
{
// TODO: Add your control notification handler code here
int nItem = m_ctrlSalary.GetNextItem(-1, LVIS_SELECTED);
if(nItem == -1)
{
AfxMessageBox("请选择一个员工!");
return;
}
CString strEmployeeID;
long nEmployeeID;
long nBasicSalary;
strEmployeeID = m_ctrlSalary.GetItemText(nItem, 0);
nEmployeeID = _ttoi(strEmployeeID);
CBasicSalarySetDlg basicSet;
if(basicSet.DoModal() == IDOK)
{
nBasicSalary = basicSet.m_nBasicSalary;
CString strConnection = _T("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BlueHill;Data Source=dragonflylong\\sqlexpress");
CADODatabase *pDb = new CADODatabase;
pDb->SetConnectionString(strConnection);
try
{
if(pDb->Open())
{
CADOCommand pCmd(pDb, "spwinSetBasicSalary", CADOCommand::typeCmdStoredProc);
CADOParameter pInEmpID(CADORecordset::typeInteger, sizeof(long), CADOParameter::paramInput);
CADOParameter pInBasicSalary(CADORecordset::typeInteger, sizeof(long), CADOParameter::paramInput);
pInEmpID.SetValue(nEmployeeID);
pInBasicSalary.SetValue(nBasicSalary);
pCmd.AddParameter(&pInEmpID);
pCmd.AddParameter(&pInBasicSalary);
pCmd.Execute(CADOCommand::typeCmdStoredProc);
pDb->Close();
}
delete pDb;
}
catch(CADOException)
{
}
}
}
void CPageSalaryManage::OnButtonShowall()
{
// TODO: Add your control notification handler code here
FillSalaryList();
}
void CPageSalaryManage::OnButtonEmpquery()
{
// TODO: Add your control notification handler code here
int nItem = m_ctrlSalary.GetNextItem(-1, LVIS_SELECTED);
if(nItem == -1)
{
AfxMessageBox("请选择一个员工!");
return;
}
CString strEmployeeID;
long nEmployeeID;
CString strEmpID, strName, strBasic;
strEmployeeID = m_ctrlSalary.GetItemText(nItem, 0);
nEmployeeID = _ttoi(strEmployeeID);
CString strConnection = _T("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BlueHill;Data Source=dragonflylong\\sqlexpress");
CADODatabase *pDb = new CADODatabase;
pDb->SetConnectionString(strConnection);
try
{
if(pDb->Open())
{
CADOCommand pCmd(pDb, "spwinBasicSalaryByEmpID", CADOCommand::typeCmdStoredProc);
CADOParameter pInEmpID(CADORecordset::typeInteger, sizeof(long), CADOParameter::paramInput);
pInEmpID.SetValue(nEmployeeID);
pCmd.AddParameter(&pInEmpID);
CADORecordset *pRs = new CADORecordset(pDb);
if(pRs->Execute(&pCmd))
{
if(pRs->GetRecordCount() > 0)
{
DelAllColumns();
m_ctrlSalary.InsertColumn(0, "员工编号", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(1, "员工姓名", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(2, "基本薪资", LVCFMT_LEFT, 128);
int cur = 0;
while(!pRs->IsEOF())
{
pRs->GetFieldValue("员工编号", strEmpID);
m_ctrlSalary.InsertItem(cur, strEmpID);
pRs->GetFieldValue("员工姓名", strName);
m_ctrlSalary.SetItemText(cur, 1, strName);
pRs->GetFieldValue("基本薪资", strBasic);
m_ctrlSalary.SetItemText(cur, 2, strBasic);
cur++;
pRs->MoveNext();
}
}
else
AfxMessageBox("未找到任何信息!");
}
pRs->Close();
delete pRs;
pDb->Close();
}
delete pDb;
}
catch(CADOException)
{
}
}
void CPageSalaryManage::OnButtonHistoryquery()
{
// TODO: Add your control notification handler code here
int nItem = m_ctrlSalary.GetNextItem(-1, LVIS_SELECTED);
if(nItem == -1)
{
AfxMessageBox("请选择一个员工!");
return;
}
CString strEmployeeID;
long nEmployeeID;
CString strName, strTime, strBasic, strOvertime, strAbsence, strOther;
strEmployeeID = m_ctrlSalary.GetItemText(nItem, 0);
nEmployeeID = _ttoi(strEmployeeID);
CString strConnection = _T("Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=BlueHill;Data Source=dragonflylong\\sqlexpress");
CADODatabase *pDb = new CADODatabase;
pDb->SetConnectionString(strConnection);
try
{
if(pDb->Open())
{
CADOCommand pCmd(pDb, "spwinSalaryHistoryByEmpID", CADOCommand::typeCmdStoredProc);
CADOParameter pInEmpID(CADORecordset::typeInteger, sizeof(long), CADOParameter::paramInput);
pInEmpID.SetValue(nEmployeeID);
pCmd.AddParameter(&pInEmpID);
CADORecordset *pRs = new CADORecordset(pDb);
if(pRs->Execute(&pCmd))
{
if(pRs->GetRecordCount() > 0)
{
DelAllColumns();
m_ctrlSalary.InsertColumn(0, "员工编号", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(1, "姓名", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(2, "时间", LVCFMT_LEFT, 192);
m_ctrlSalary.InsertColumn(3, "BasicSalary", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(4, "OvertimeSalary", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(5, "AbsenceSalary", LVCFMT_LEFT, 128);
m_ctrlSalary.InsertColumn(6, "OtherSalary", LVCFMT_LEFT, 128);
int cur = 0;
while(!pRs->IsEOF())
{
m_ctrlSalary.InsertItem(cur, strEmployeeID);
pRs->GetFieldValue("姓名", strName);
m_ctrlSalary.SetItemText(cur, 1, strName);
pRs->GetFieldValue("时间", strName);
m_ctrlSalary.SetItemText(cur, 2, strName);
pRs->GetFieldValue("BasicSalary", strBasic);
m_ctrlSalary.SetItemText(cur, 3, strBasic);
pRs->GetFieldValue("OvertimeSalary", strOvertime);
m_ctrlSalary.SetItemText(cur, 4, strOvertime);
pRs->GetFieldValue("AbsenceSalary", strAbsence);
m_ctrlSalary.SetItemText(cur, 5, strAbsence);
pRs->GetFieldValue("OtherSalary", strOther);
m_ctrlSalary.SetItemText(cur, 6, strOther);
cur++;
pRs->MoveNext();
}
}
else
AfxMessageBox("未找到任何信息!");
}
pRs->Close();
delete pRs;
pDb->Close();
}
delete pDb;
}
catch(CADOException)
{
}
}
void CPageSalaryManage::OnButtonGrpbydept()
{
// TODO: Add your control notification handler code here
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -