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