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

📄 pagesalarymanage.cpp

📁 人事管理系统
💻 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 + -