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

📄 money.cpp

📁 一个空调安装工工资计算
💻 CPP
字号:
// Money.cpp : implementation file
//

#include "stdafx.h"
#include "工资管理系统.h"
#include "Money.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMoney dialog


CMoney::CMoney(CWnd* pParent /*=NULL*/)
	: CDialog(CMoney::IDD, pParent)
{
	//{{AFX_DATA_INIT(CMoney)
	m_startdate = 0;
	m_enddate = 0;
	m_1_5P = _T("");
	m_1_P = _T("");
	m_2_5P = _T("");
	m_2_P = _T("");
	m_3_P = _T("");
	m_4_P = _T("");
	m_d_1_5_edit = _T("");
	m_d_1_edit = _T("");
	m_d_2_5_edit = _T("");
	m_d_2_edit = _T("");
	m_d_3_edit = _T("");
	m_d_4_edit = _T("");
	m_1_5P_Z = _T("");
	m_1P_Z = _T("");
	m_2_5P_Z = _T("");
	m_2P_Z = _T("");
	m_3P_Z = _T("");
	m_4P_Z = _T("");
	m_1P=0;
	m_15P=0;
	m_2P=0;
	m_25P=0;
	m_3P=0;
	m_4P=0;
    enable=0;
	m_worker = _T("");
	//}}AFX_DATA_INIT
}


void CMoney::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMoney)
	DDX_Control(pDX, IDC_COMBO, m_name_cbo);
	DDX_DateTimeCtrl(pDX, IDC_DATE_1, m_startdate);
	DDX_DateTimeCtrl(pDX, IDC_DATE_2, m_enddate);
	DDX_Text(pDX, IDC_STATIC_1_5P, m_1_5P);
	DDX_Text(pDX, IDC_STATIC_1P, m_1_P);
	DDX_Text(pDX, IDC_STATIC_2_5P, m_2_5P);
	DDX_Text(pDX, IDC_STATIC_2P, m_2_P);
	DDX_Text(pDX, IDC_STATIC_3P, m_3_P);
	DDX_Text(pDX, IDC_STATIC_4P, m_4_P);
	DDX_Text(pDX, IDC_D_1_5_EDIT, m_d_1_5_edit);
	DDX_Text(pDX, IDC_D_1_EDIT, m_d_1_edit);
	DDX_Text(pDX, IDC_D_2_5_EDIT, m_d_2_5_edit);
	DDX_Text(pDX, IDC_D_2_EDIT, m_d_2_edit);
	DDX_Text(pDX, IDC_D_3_EDIT, m_d_3_edit);
	DDX_Text(pDX, IDC_D_4_EDIT, m_d_4_edit);
	DDX_Text(pDX, IDC_1_5P_STATIC, m_1_5P_Z);
	DDX_Text(pDX, IDC_1P_STATIC, m_1P_Z);
	DDX_Text(pDX, IDC_2_5P_STATIC, m_2_5P_Z);
	DDX_Text(pDX, IDC_2P_STATIC, m_2P_Z);
	DDX_Text(pDX, IDC_3P_STATIC, m_3P_Z);
	DDX_Text(pDX, IDC_4P_STATIC, m_4P_Z);
	DDX_CBString(pDX, IDC_COMBO, m_worker);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CMoney, CDialog)
	//{{AFX_MSG_MAP(CMoney)
	ON_BN_CLICKED(IDC_XIUGAI_1_BUT, OnXiugai1But)
	ON_BN_CLICKED(IDC_XIUGAI_1_5_BUT, OnXiugai15But)
	ON_BN_CLICKED(IDC_XIUGAI_2_BUT, OnXiugai2But)
	ON_BN_CLICKED(IDC_XIUGAI_2_5_BUT, OnXiugai25But)
	ON_BN_CLICKED(IDC_XIUGAI_3_BUT, OnXiugai3But)
	ON_BN_CLICKED(IDC_XIUGAI_4_BUT, OnXiugai4But)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMoney message handlers

void CMoney::OnOK() 
{
 
  CString sSQL,sStartdate,sEnddate;
  UpdateData(TRUE);
  if(m_worker=="")
  {
	  MessageBox("请选择员工姓名!");
	  return;
  }
  sStartdate=CTimeToCString(m_startdate);
  sEnddate=CTimeToCString(m_enddate);
  if(m_startdate>m_enddate)
  {
	  AfxMessageBox("日期选择错误,请重新选择!");
	  return;
  }
  rst->MoveFirst();
  sSQL.Format("SELECT * from 员工业务表 WHERE 安装工1 LIKE '%s%%' or 安装工2 LIKE '%s%%' and  安装日期 BETWEEN #%s# AND #%s#",m_worker,m_worker,sStartdate,sEnddate);
  rst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);

  int a,b,c,d,e,f;
  a=b=c=d=e=f=0;
  rst->MoveFirst();
  for(int i=0;!rst->_EOF;i++)
  {
	  if(GetFieldValue("空调匹次")=="1P")
		  a++;
	  if(GetFieldValue("空调匹次")=="1.5P")
		  b++;
	  if(GetFieldValue("空调匹次")=="2P")
		  c++;
	  if(GetFieldValue("空调匹次")=="2.5P")
		  d++;
	  if(GetFieldValue("空调匹次")=="3P")
		  e++;
	  if(GetFieldValue("空调匹次")=="4P")
		  f++;
	  rst->MoveNext();
  }

 
  
    m_1_P.Format("1P机               %d台 ×",a);
    m_1_5P.Format("1.5P机            %d台 ×",b);//="1.5P机                台 ×";
    m_2_P.Format("2P机               %d台 ×",c);//="2P机                   台 ×";
    m_2_5P.Format("2.5P机            %d台 ×",d);//="2.5P机                台 ×";
    m_3_P.Format("3P机               %d台 ×",e);//="3P机                   台 ×";
    m_4_P.Format("4P机               %d台 ×",f);//="4P机                   台 ×";
    
    m_1P_Z.Format("     %d  元",a*m_1P);
	m_1_5P_Z.Format("     %d  元",b*m_15P);
	m_2P_Z.Format("     %d  元",c*m_2P);
	m_2_5P_Z.Format("     %d  元",d*m_25P);
	m_3P_Z.Format("     %d  元",e*m_3P);
	m_4P_Z.Format("     %d  元",f*m_4P);
	sSQL.Format(" 总计   :        %d 元",a*m_1P+b*m_15P+c*m_2P+d*m_25P+e*m_3P+f*m_4P);
    GetDlgItem(IDC_ZONGJI_STATIC)->SetWindowText(sSQL);


    UpdateData(FALSE);

}

BOOL CMoney::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CString str;
	m_StatusBar.EnableAutomation();
	m_StatusBar.Create(WS_CHILD|WS_VISIBLE,CRect(0,0,0,0),this,ID_STATUSBAR);
	int width[]={145,320};
	m_StatusBar.SetParts(2, &width[0]);
	m_StatusBar.SetText(str,0,0);
	m_StatusBar.SetText("程序设计:吴晓宁",0,0);
	m_StatusBar.SetText("欢迎使用工资管理系统 V1.2版",0,1);

    rst.CreateInstance(__uuidof(Recordset));
    rst=cnn->Execute("员工信息表",NULL,adCmdTable);
    for(int i=0;i<theApp.GetRecordCount(rst);i++)
	{	
		rst->MoveFirst();
		rst->Move(i);
		m_name_cbo.AddString(GetFieldValue("姓名"));

	}

    CTime t=CTime::GetCurrentTime();//得到系统当前时间
	m_startdate=t;
	m_enddate=t;

	m_1P=GetPrivateProfileInt("MoneyInfo","1P",2,".\\config.ini");
	m_15P=GetPrivateProfileInt("MoneyInfo","1.5P",2,".\\config.ini");
    m_2P=GetPrivateProfileInt("MoneyInfo","2P",2,".\\config.ini");
	m_25P=GetPrivateProfileInt("MoneyInfo","2.5P",2,".\\config.ini");
	m_3P=GetPrivateProfileInt("MoneyInfo","3P",2,".\\config.ini");
	m_4P=GetPrivateProfileInt("MoneyInfo","4P",2,".\\config.ini");
	str.Format("%d",m_1P);
	m_d_1_edit=str;
	str.Format("%d",m_15P);
	m_d_1_5_edit=str;
	str.Format("%d",m_2P);
	m_d_2_edit=str;
	str.Format("%d",m_25P);
    m_d_2_5_edit=str;
	str.Format("%d",m_3P);
	m_d_3_edit=str;
	str.Format("%d",m_4P);
	m_d_4_edit=str;

	m_1_P="1P机                   台 ×";
    m_1_5P="1.5P机                台 ×";
    m_2_P="2P机                   台 ×";
    m_2_5P="2.5P机                台 ×";
    m_3_P="3P机                   台 ×";
    m_4_P="4P机                   台 ×";
	UpdateData(FALSE);

	return TRUE;  
}

CString CMoney::GetFieldValue(CString Field)
{
   CString sValue;
   _variant_t value;
   value=rst->GetCollect((_bstr_t)Field);
   if(value.vt==VT_EMPTY||value.vt==VT_NULL)
	   sValue="";
   else
   {
	   sValue=(char*)(_bstr_t)value;
	   sValue.TrimRight();
	   sValue.TrimLeft();
   }
   return sValue;
}

CString CMoney::CTimeToCString(CTime date)
{
	int nYear,nMonth,nDay;
	
	CString sMonth,sDay,sDate;
	nYear=date.GetYear();
	nMonth=date.GetMonth();
	nDay=date.GetDay();
	sMonth.Format("%d",nMonth);
	sMonth=Padl(sMonth,2,"0");
	sDay.Format("%d",nDay);
	sDay=Padl(sDay,2,"0");

	sDate.Format("%d-%s-%s",nYear,sMonth,sDay);
	return sDate;
}

CString CMoney::Padl(CString String, int digit, CString Fill, int Way)
{
    int Padl_n;
	CString Padl_string;
	Padl_string.Empty();
	for(Padl_n=1;Padl_n<=digit-String.GetLength();Padl_n++)
	{
	Padl_string=Padl_string+Fill;
	}
	if(Way==1)
		return Padl_string+String;
	else
		return String+Padl_string;
}

void CMoney::OnXiugai1But() 
{
	switch(enable)
	{
	  case 0:
	         GetDlgItem(IDC_D_1_EDIT)->EnableWindow(TRUE);
	         GetDlgItem(IDC_XIUGAI_1_BUT)->SetWindowText("确定");
			 enable++;
			 break;
	  case 1:
		     GetDlgItem(IDC_D_1_EDIT)->EnableWindow(FALSE);
             GetDlgItem(IDC_XIUGAI_1_BUT)->SetWindowText("修改");
             UpdateData(TRUE);
             WritePrivateProfileString("MoneyInfo","1P",m_d_1_edit,".\\config.ini"); 
			 enable--;
			 break;
	  default:
		  //AfxMessageBox("请将上个修改结果确定后,再修改当前安装单价!"); 
		  break;
	}
}

void CMoney::OnXiugai15But() 
{
	switch(enable)
	{
	  case 0:
	         GetDlgItem(IDC_D_1_5_EDIT)->EnableWindow(TRUE);
	         GetDlgItem(IDC_XIUGAI_1_5_BUT)->SetWindowText("确定");
			 enable++;
			 break;
	  case 1:
		     GetDlgItem(IDC_D_1_5_EDIT)->EnableWindow(FALSE);
             GetDlgItem(IDC_XIUGAI_1_5_BUT)->SetWindowText("修改");
             UpdateData(TRUE);
             WritePrivateProfileString("MoneyInfo","1.5P",m_d_1_5_edit,".\\config.ini"); 
			 enable--;
			 break;
	  default:
		     //AfxMessageBox("请将上个修改结果确定后,再修改当前安装单价!");
			 break;
	}
}

void CMoney::OnXiugai2But() 
{
	switch(enable)
	{
	  case 0:
	         GetDlgItem(IDC_D_2_EDIT)->EnableWindow(TRUE);
	         GetDlgItem(IDC_XIUGAI_2_BUT)->SetWindowText("确定");
			 enable++;
			 break;
	  case 1:
		     GetDlgItem(IDC_D_2_EDIT)->EnableWindow(FALSE);
             GetDlgItem(IDC_XIUGAI_2_BUT)->SetWindowText("修改");
             UpdateData(TRUE);
             WritePrivateProfileString("MoneyInfo","2P",m_d_2_edit,".\\config.ini"); 
			 enable--;
			 break;
	  default:
		     //AfxMessageBox("请将上个修改结果确定后,再修改当前安装单价!");
			 break;
	}	
}

void CMoney::OnXiugai25But() 
{
	switch(enable)
	{
	  case 0:
	         GetDlgItem(IDC_D_2_5_EDIT)->EnableWindow(TRUE);
	         GetDlgItem(IDC_XIUGAI_2_5_BUT)->SetWindowText("确定");
			 enable++;
			 break;
	  case 1:
		     GetDlgItem(IDC_D_2_5_EDIT)->EnableWindow(FALSE);
             GetDlgItem(IDC_XIUGAI_2_5_BUT)->SetWindowText("修改");
             UpdateData(TRUE);
             WritePrivateProfileString("MoneyInfo","2.5P",m_d_2_5_edit,".\\config.ini"); 
			 enable--;
			 break;
	  default:
		     //AfxMessageBox("请将上个修改结果确定后,再修改当前安装单价!");
			 break;
	}	
}

void CMoney::OnXiugai3But() 
{
	switch(enable)
	{
	  case 0:
	         GetDlgItem(IDC_D_3_EDIT)->EnableWindow(TRUE);
	         GetDlgItem(IDC_XIUGAI_3_BUT)->SetWindowText("确定");
			 enable++;
			 break;
	  case 1:
		     GetDlgItem(IDC_D_3_EDIT)->EnableWindow(FALSE);
             GetDlgItem(IDC_XIUGAI_3_BUT)->SetWindowText("修改");
             UpdateData(TRUE);
             WritePrivateProfileString("MoneyInfo","3P",m_d_3_edit,".\\config.ini"); 
			 enable--;
			 break;
	  default:
		     //AfxMessageBox("请将上个修改结果确定后,再修改当前安装单价!");
			 break;
	}	
}

void CMoney::OnXiugai4But() 
{
	switch(enable)
	{
	  case 0:
	         GetDlgItem(IDC_D_4_EDIT)->EnableWindow(TRUE);
	         GetDlgItem(IDC_XIUGAI_4_BUT)->SetWindowText("确定");
			 enable++;
			 break;
	  case 1:
		     GetDlgItem(IDC_D_4_EDIT)->EnableWindow(FALSE);
             GetDlgItem(IDC_XIUGAI_4_BUT)->SetWindowText("修改");
             UpdateData(TRUE);
             WritePrivateProfileString("MoneyInfo","4P",m_d_4_edit,".\\config.ini"); 
			 enable--;
			 break;
	  default:
		     //AfxMessageBox("请将上个修改结果确定后,再修改当前安装单价!");
			 break;
	}	
}

⌨️ 快捷键说明

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