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

📄 salarymandlg.cpp

📁 人事工资管理系统是非常通用的管理信息系统
💻 CPP
字号:
// SalaryManDlg.cpp : implementation file
//

#include "stdafx.h"
#include "HrSys.h"
#include "SalaryManDlg.h"
#include "SalaryEditDlg.h"
#include "_recordset.h"
#include "COMDEF.H"
#include "Columns.h"
#include "Column.h"
#include "Salary.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSalaryManDlg dialog


CSalaryManDlg::CSalaryManDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CSalaryManDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CSalaryManDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CSalaryManDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSalaryManDlg)
	DDX_Control(pDX, IDC_YEAR_COMBO, m_year);
	DDX_Control(pDX, IDC_MONTH_COMBO, m_month);
	DDX_Control(pDX, IDC_ADODC1, m_adodc);
	DDX_Control(pDX, IDC_DATAGRID1, m_datagrid);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSalaryManDlg, CDialog)
	//{{AFX_MSG_MAP(CSalaryManDlg)
	ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
	ON_BN_CLICKED(IDC_MODI_BUTTON, OnModiButton)
	ON_BN_CLICKED(IDC_DEL_BUTTON, OnDelButton)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSalaryManDlg message handlers
void CSalaryManDlg::Refresh_Data()
{
	UpdateData(TRUE);
	CString cSource;
	//读取月份信息
	CString cYear, cMonth;
	int index;
	index = m_year.GetCurSel();
	m_year.GetLBText(index, cYear);
	index = m_month.GetCurSel();
	m_month.GetLBText(index, cMonth);
	// 设计SELECT语句
	cSource = "SELECT s.Id, s.CreateDate AS 调薪日期, s.EmpId," 
			" e.EmpName AS 员工姓名, d.DepName AS 部门名称,"
			" s.OldSalary AS 原薪资, s.NewSalary AS 调后薪资, s.Reason AS 调薪原因"
			" FROM Salary s, Employees e, Departments d WHERE s.EmpId=e.EmpId "
			" AND e.DepId=d.DepId AND s.CreateDate LIKE '" + cYear + "-" + cMonth+ "%'";
	// 设置数据源
	m_adodc.SetRecordSource(cSource);
	m_adodc.Refresh();
	//设置列宽度
	_variant_t vIndex;
	vIndex = long(0);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
	vIndex = long(1);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(120);
	vIndex = long(2);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);
	vIndex = long(3);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(120);
	vIndex = long(4);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(140);
	vIndex = long(5);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(140);
	vIndex = long(6);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(140);
	vIndex = long(7);
	m_datagrid.GetColumns().GetItem(vIndex).SetWidth(180);
}

BOOL CSalaryManDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	//读取当前系统日期
	CTime t = CTime::GetCurrentTime();  
	// 从系统时间中获取年和月的信息
	int iYear, iMonth;
	iYear = t.GetYear();	
	iMonth = t.GetMonth();
	// 设置年和月控件值
	m_year.SetCurSel(iYear - 2000);
	m_month.SetCurSel(iMonth - 1);	
	UpdateData(FALSE);
	// 根据条件查询调薪记录
	Refresh_Data();		
		
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSalaryManDlg::OnAddButton() 
{
	CSalaryEditDlg dlg;
	dlg.cId = "";
	// 获取当前日期
	CTime t = CTime::GetCurrentTime();  
	dlg.m_Date.Format("%d-%d-%d", t.GetYear(), t.GetMonth(), t.GetDay()); 
	if(dlg.DoModal() == IDOK)
		Refresh_Data();	
}

void CSalaryManDlg::OnModiButton() 
{
	if (m_adodc.GetRecordset().GetEof()) 
	{
		MessageBox("请选择要修改的记录");
		return;
	}
	CSalaryEditDlg dlg;
	dlg.cId = m_datagrid.GetItem(0);				//记录编号
	dlg.m_EmpId = atoi(m_datagrid.GetItem(2));		// 员工编号
	dlg.m_Date = m_datagrid.GetItem(1);				// 调薪日期
	dlg.m_EmpName = m_datagrid.GetItem(3);			// 员工姓名
	dlg.m_DepName = m_datagrid.GetItem(4);			// 部门名称
	dlg.m_NewSalary = atoi(m_datagrid.GetItem(6));	// 新工资
	dlg.m_OldSalary = m_datagrid.GetItem(5);		// 旧工资
	dlg.m_Reason = m_datagrid.GetItem(7);			// 调薪原因
	if (dlg.DoModal() == IDOK)
		Refresh_Data();		
}

void CSalaryManDlg::OnDelButton() 
{
	if (m_adodc.GetRecordset().GetEof()) 
	{
		MessageBox("请选择要删除的记录");
		return;
	}
	if (MessageBox("是否删除当前记录","请确定", MB_YESNO) == IDYES)
	{
		CSalary sal;
		sal.sql_delete(m_datagrid.GetItem(0));
		Refresh_Data();
	}	
}

⌨️ 快捷键说明

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