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

📄 tongji.cpp

📁 这是采用mfc编写的工资管理系统
💻 CPP
字号:
// TongJi.cpp : implementation file
//

#include "stdafx.h"
#include "salarymanagement.h"
#include "TongJi.h"


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

/////////////////////////////////////////////////////////////////////////////
// CTongJi dialog


CTongJi::CTongJi(CWnd* pParent /*=NULL*/)
	: CDialog(CTongJi::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTongJi)
	m_AllWage = 0.0f;
	m_AvgWage = 0.0f;
	m_HighWage = 0.0f;
	m_LowWage = 0.0f;
	//}}AFX_DATA_INIT

	m_ado.OnInitADOConn();
}

CTongJi::~CTongJi()
{
	m_ado.ExitConnect();
}

void CTongJi::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTongJi)
	DDX_Control(pDX, IDC_COMBO2, m_cbodepart);
	DDX_Control(pDX, IDC_COMBO1, m_cbomonth);
	DDX_Text(pDX, IDC_AllWage, m_AllWage);
	DDX_Text(pDX, IDC_AvgWage, m_AvgWage);
	DDX_Text(pDX, IDC_HighestWage, m_HighWage);
	DDX_Text(pDX, IDC_LowstWage, m_LowWage);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTongJi, CDialog)
	//{{AFX_MSG_MAP(CTongJi)
	ON_BN_CLICKED(IDC_Tongji, OnTongji)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTongJi message handlers

void CTongJi::OnCancel() 
{
	((CDialog*)this->GetParent())->EndDialog(IDCANCEL);	
	CDialog::OnCancel();
}

BOOL CTongJi::OnInitDialog() 
{
	CDialog::OnInitDialog();

	CString month[12]={"1","2","3","4","5","6","7","8","9","10","11","12"};
	for (int i=0;i<12;i++)
	{
		m_cbomonth.AddString(month[i]);
	}
	m_cbomonth.SetCurSel(0);

	//初始化职位组合框中的职位选项
	m_recordset=m_ado.GetRecordSet("Select distinct 部门名称 From DepartmentSet");
	m_cbodepart.ResetContent();
	
	CString str="",temp;
	while(!m_recordset->adoEOF)
	{
		temp=(LPCTSTR)_bstr_t(m_recordset->GetCollect("部门名称"));
		if(str!=temp)
		{
			m_cbodepart.AddString(temp);
			str=temp;
		}
		m_recordset->MoveNext();
	}
	m_cbodepart.SetCurSel(0);

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CTongJi::OnTongji() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	CString strm,strd,sql,str;
	index=m_cbomonth.GetCurSel();
	m_cbomonth.GetLBText(index,strm);
	index=m_cbodepart.GetCurSel();
	m_cbodepart.GetLBText(index,strd);

	try{
		//满足条件的记录是否存在,不存在则返回,存在则继续执行
		sql.Format("Select * From Wage Where 月份='%s' and 所属部门='%s'",
			strm,strd);
		m_recordset=m_ado.GetRecordSet(sql);	
		if (m_recordset->adoEOF) 
		{
			str.Format("%s在%s月份的工资记录为空!",strd,strm);
			MessageBox(str);
			return;
		}
		
		//统计最高工资
		sql.Format("Select max(实发工资) As 工资 From Wage Where 月份='%s' and 所属部门='%s'",
			strm,strd);
		m_recordset=m_ado.GetRecordSet(sql);	
		
		str=(LPCTSTR)(_bstr_t)m_recordset->GetCollect("工资");
		m_HighWage=(float)atof(str);
		
		//统计最低工资
		sql.Format("Select min(实发工资) As 工资 From Wage Where 月份='%s' and 所属部门='%s'",
			strm,strd);
		m_recordset=m_ado.GetRecordSet(sql);
		str=(LPCTSTR)(_bstr_t)m_recordset->GetCollect("工资");
		m_LowWage=(float)atof(str);
		
		//统计平均工资
		sql.Format("Select avg(实发工资) As 工资 From Wage Where 月份='%s' and 所属部门='%s'",
			strm,strd);
		m_recordset=m_ado.GetRecordSet(sql);
		str=(LPCTSTR)(_bstr_t)m_recordset->GetCollect("工资");
		m_AvgWage=(float)atof(str);
		
		//统计应发工资之和
		sql.Format("Select sum(实发工资) As 工资 From Wage Where 月份='%s' and 所属部门='%s'",
			strm,strd);
		m_recordset=m_ado.GetRecordSet(sql);
		str=(LPCTSTR)(_bstr_t)m_recordset->GetCollect("工资");
		m_AllWage=(float)atof(str);
	}
	catch(_com_error e)
	{
		AfxMessageBox(e.Description());
	}

	UpdateData(FALSE);

}

⌨️ 快捷键说明

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