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

📄 jobinfo.cpp

📁 一个空调安装工工资计算
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// Jobinfo.cpp : implementation file
//

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

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

/////////////////////////////////////////////////////////////////////////////
// CJobinfo dialog


CJobinfo::CJobinfo(CWnd* pParent /*=NULL*/)
	: CDialog(CJobinfo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CJobinfo)
	m_tongji = _T("");
	page=0;
	nowpage=1;
	cx_page=0;
	cx_nowpage=1;
	cx_jieguo=0;
	m_neirong = _T("");
	m_tiaojian = -1;
	//}}AFX_DATA_INIT
}


void CJobinfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CJobinfo)
	DDX_Control(pDX, IDC_LIST_JOB, m_job);
	DDX_Text(pDX, IDC_STATIC_TONGJI, m_tongji);
	DDX_Text(pDX, IDC_EDIT_NEIRONG, m_neirong);
	DDX_CBIndex(pDX, IDC_COMBO_TIAOJIAN, m_tiaojian);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CJobinfo, CDialog)
	//{{AFX_MSG_MAP(CJobinfo)
	ON_NOTIFY(NM_RCLICK, IDC_LIST_JOB, OnRclickListJob)
	ON_COMMAND(IDD_ADDNEW, OnAddnew)
	ON_BN_CLICKED(IDC_RUSH_BUT, OnRushBut)
	ON_BN_CLICKED(IDC_FIRST_BUT, OnFirstBut)
	ON_BN_CLICKED(IDC_NEXT_BUT, OnNextBut)
	ON_BN_CLICKED(IDC_PREVIOUS_BUT, OnPreviousBut)
	ON_BN_CLICKED(IDC_LAST_BUT, OnLastBut)
	ON_BN_CLICKED(IDC_FIND_BUT, OnFindBut)
	ON_BN_CLICKED(IDC_FIRST_BUT2, OnFirstBut2)
	ON_BN_CLICKED(IDC_PREVIOUS_BUT2, OnPreviousBut2)
	ON_BN_CLICKED(IDC_NEXT_BUT2, OnNextBut2)
	ON_BN_CLICKED(IDC_LAST_BUT2, OnLastBut2)
	ON_COMMAND(IDD_DELETE, OnDelete)
	ON_COMMAND(IDD_UPDATE, OnUpdate)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CJobinfo message handlers

void CJobinfo::OnOK() 
{

	
//	CDialog::OnOK();
}

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

	//初始化列表框
	DWORD dwSytle=::GetWindowLong(m_job.m_hWnd,GWL_STYLE);
    // 设置为报表形式
    SetWindowLong(m_job.m_hWnd,GWL_STYLE,dwSytle|LVS_REPORT);
    DWORD ExStyle=m_job.GetExtendedStyle();
    // 设置为报表形式
    m_job.SetExtendedStyle(ExStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
    // 初始化列表控件
    m_job.InsertColumn(0,"编号",LVCFMT_CENTER,30,0);
    m_job.InsertColumn(1,"工程师1",LVCFMT_CENTER,70,0);
	m_job.InsertColumn(2,"工程师2",LVCFMT_CENTER,70,0);
    m_job.InsertColumn(3,"发票号",LVCFMT_CENTER,45,0);
	m_job.InsertColumn(4,"空调品牌",LVCFMT_CENTER,80,0);
    m_job.InsertColumn(5,"空调匹次",LVCFMT_CENTER,60,0);
	m_job.InsertColumn(6,"所属商场",LVCFMT_CENTER,60,0);
    m_job.InsertColumn(7,"安装日期",LVCFMT_CENTER,100,0);
   
	rst.CreateInstance(__uuidof(Recordset));
    rst=cnn->Execute("员工业务表",NULL,adCmdTable);
	
	int nCount=cx_jieguo=theApp.GetRecordCount(rst);
	if(nCount<=0)
	{
		AfxMessageBox("当前无记录,请添加记录!");
        GetDlgItem(IDC_FIND_BUT)->EnableWindow(FALSE);
  //      GetDlgItem(IDC_RUSH_BUT)->EnableWindow(FALSE);
   	    GetDlgItem(IDC_FIRST_BUT)->EnableWindow(FALSE);
	    GetDlgItem(IDC_PREVIOUS_BUT)->EnableWindow(FALSE);
	    GetDlgItem(IDC_NEXT_BUT)->EnableWindow(FALSE);
	    GetDlgItem(IDC_LAST_BUT)->EnableWindow(FALSE);
	    GetDlgItem(IDC_FIRST_BUT2)->ShowWindow(FALSE);
	    GetDlgItem(IDC_PREVIOUS_BUT2)->ShowWindow(FALSE);
 	    GetDlgItem(IDC_NEXT_BUT2)->ShowWindow(FALSE);
	    GetDlgItem(IDC_LAST_BUT2)->ShowWindow(FALSE);

		return TRUE;
	}
//确定记录数将作几页显示
	int nPage;
	nPage=nCount/20;
	if(nCount>20)
	{
         if(nPage==0)
	     	page=1;
         if(nCount%20!=0)
	        page=nPage+1;
	}
	else
		page=1;
	if(page==1)
	{

	   GetDlgItem(IDC_NEXT_BUT)->EnableWindow(FALSE);
	   GetDlgItem(IDC_LAST_BUT)->EnableWindow(FALSE);
	}
	GetDlgItem(IDC_FIRST_BUT)->EnableWindow(FALSE);
	GetDlgItem(IDC_PREVIOUS_BUT)->EnableWindow(FALSE);
	GetDlgItem(IDC_FIRST_BUT2)->ShowWindow(FALSE);
	GetDlgItem(IDC_PREVIOUS_BUT2)->ShowWindow(FALSE);
	GetDlgItem(IDC_NEXT_BUT2)->ShowWindow(FALSE);
	GetDlgItem(IDC_LAST_BUT2)->ShowWindow(FALSE);


	rst->MoveFirst();
    for(int i=0;i<nCount;i++)
	{
		if(i==20)
			goto End;
       str.Format("%d",i+1);
       int iPos=m_job.InsertItem(i,str);
	   m_job.SetItemText(iPos,0,str);
	   m_job.SetItemText(iPos,1,GetFieldValue("安装工1"));
       m_job.SetItemText(iPos,2,GetFieldValue("安装工2"));
       m_job.SetItemText(iPos,3,GetFieldValue("发票号"));
       m_job.SetItemText(iPos,4,GetFieldValue("空调品牌"));
       m_job.SetItemText(iPos,5,GetFieldValue("空调匹次"));
       m_job.SetItemText(iPos,6,GetFieldValue("所属商场"));
       m_job.SetItemText(iPos,7,GetFieldValue("安装日期"));
	   rst->MoveNext();
	}
End:
	str.Format("【本系统现有业务记录共 %d 条】\n【当前显示条第 1 条至 第 %d 条记录】",nCount,i);
	m_tongji=str;
	UpdateData(FALSE);
	return TRUE;  
}



CString CJobinfo::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;
}

void CJobinfo::OnRclickListJob(NMHDR* pNMHDR, LRESULT* pResult) 
{

	CMenu  menu ,* pSubMenu;//定义下面要用到的cmenu对象
    menu.LoadMenu(IDR_MENU_WORKER);//装载自定义的右键菜单
    pSubMenu = menu.GetSubMenu(0);//获取第一个弹出菜单,所以第一个菜单必须有子菜单
    CPoint oPoint;//定义一个用于确定光标位置的位置
    GetCursorPos( &oPoint);//获取当前光标的位置,以便使得菜单可以跟随光标
	if(m_job.GetFirstSelectedItemPosition()==0)//GetFirstSelectedItemPosition();可得到选择的项,点击空白处,pos为0,返回即可
	{
		menu.EnableMenuItem(IDD_DELETE,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);//设置删除菜单不可用
		menu.EnableMenuItem(IDD_UPDATE,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);//设置修改菜单不可用
	}
    pSubMenu->TrackPopupMenu (TPM_LEFTALIGN, oPoint.x, oPoint.y, this); //在指定位置显示弹出菜单
	*pResult = 0;
}

void CJobinfo::OnAddnew() 
{
   CEditJob dlg;
   dlg.Enable=0;
   dlg.DoModal();
	
}

void CJobinfo::OnRushBut() 
{
	m_job.DeleteAllItems();
	CString str;
	int nCount,i;
	rst.CreateInstance(__uuidof(Recordset));
    rst=cnn->Execute("员工业务表",NULL,adCmdTable);
	if(!rst->_EOF)
	{
	   nCount=theApp.GetRecordCount(rst);
  	   rst->MoveFirst();
      for( i=0;i<nCount;i++)
	  {
		if(i==20)
			goto End;
       str.Format("%d",i+1);
       int iPos=m_job.InsertItem(i,str);
	   m_job.SetItemText(iPos,0,str);
	   m_job.SetItemText(iPos,1,GetFieldValue("安装工1"));
       m_job.SetItemText(iPos,2,GetFieldValue("安装工2"));
       m_job.SetItemText(iPos,3,GetFieldValue("发票号"));
       m_job.SetItemText(iPos,4,GetFieldValue("空调品牌"));
       m_job.SetItemText(iPos,5,GetFieldValue("空调匹次"));
       m_job.SetItemText(iPos,6,GetFieldValue("所属商场"));
       m_job.SetItemText(iPos,7,GetFieldValue("安装日期"));
	   rst->MoveNext();
	  }
	}
	else
	{
       MessageBox("暂无记录!请添加新记录!");
	   return;
	}
 End:
	  str.Format("【本系统现有业务记录共 %d 条】\n【当前显示条第 1 条至 第 %d 条记录】",nCount,i);
	  m_tongji=str;
 	  m_tiaojian=-1;
	  m_neirong="";
	  UpdateData(FALSE);

	GetDlgItem(IDC_FIRST_BUT)->ShowWindow(TRUE);
	GetDlgItem(IDC_PREVIOUS_BUT)->ShowWindow(TRUE);
	GetDlgItem(IDC_NEXT_BUT)->ShowWindow(TRUE);
	GetDlgItem(IDC_LAST_BUT)->ShowWindow(TRUE);

    GetDlgItem(IDC_NEXT_BUT)->EnableWindow(TRUE);
	GetDlgItem(IDC_LAST_BUT)->EnableWindow(TRUE);
	GetDlgItem(IDC_FIRST_BUT)->EnableWindow(TRUE);
	GetDlgItem(IDC_PREVIOUS_BUT)->EnableWindow(TRUE);

	if(page==1)
	{
       GetDlgItem(IDC_NEXT_BUT)->EnableWindow(FALSE);
	   GetDlgItem(IDC_LAST_BUT)->EnableWindow(FALSE);
	}
	GetDlgItem(IDC_FIRST_BUT)->EnableWindow(FALSE);
	GetDlgItem(IDC_PREVIOUS_BUT)->EnableWindow(FALSE);

	GetDlgItem(IDC_FIRST_BUT2)->ShowWindow(FALSE);
	GetDlgItem(IDC_PREVIOUS_BUT2)->ShowWindow(FALSE);
	GetDlgItem(IDC_NEXT_BUT2)->ShowWindow(FALSE);
	GetDlgItem(IDC_LAST_BUT2)->ShowWindow(FALSE);
	
}

void CJobinfo::OnFirstBut() 
{
	nowpage=1;
	CString str;
	m_job.DeleteAllItems();
	int nCount=theApp.GetRecordCount(rst);
	rst->MoveFirst();
    for(int i=0;i<20;i++)
	{
       str.Format("%d",i+1);
       int iPos=m_job.InsertItem(i,str);
       m_job.SetItemText(iPos,0,str);
 	   m_job.SetItemText(iPos,1,GetFieldValue("安装工1"));
       m_job.SetItemText(iPos,2,GetFieldValue("安装工2"));
       m_job.SetItemText(iPos,3,GetFieldValue("发票号"));
       m_job.SetItemText(iPos,4,GetFieldValue("空调品牌"));
       m_job.SetItemText(iPos,5,GetFieldValue("空调匹次"));
       m_job.SetItemText(iPos,6,GetFieldValue("所属商场"));
       m_job.SetItemText(iPos,7,GetFieldValue("安装日期"));
	   rst->MoveNext();
	}
    str.Format("【本系统现有业务记录共 %d 条】\n【当前显示条第 1 条至 第 20 条记录】",nCount);
	m_tongji=str;
	UpdateData(FALSE);
	if(nowpage!=page)
	{
       GetDlgItem(IDC_FIRST_BUT)->EnableWindow(FALSE);
	   GetDlgItem(IDC_PREVIOUS_BUT)->EnableWindow(FALSE);
	   GetDlgItem(IDC_NEXT_BUT)->EnableWindow(TRUE);
	   GetDlgItem(IDC_LAST_BUT)->EnableWindow(TRUE);
	}
	else
	{
       GetDlgItem(IDC_FIRST_BUT)->EnableWindow(FALSE);
	   GetDlgItem(IDC_PREVIOUS_BUT)->EnableWindow(FALSE);
	   GetDlgItem(IDC_NEXT_BUT)->EnableWindow(FALSE);
	   GetDlgItem(IDC_LAST_BUT)->EnableWindow(FALSE);
	}
}

void CJobinfo::OnNextBut() 
{
	CString str,id;
	int Item=0;
	m_job.DeleteAllItems();
	rst.CreateInstance(__uuidof(Recordset));
    rst=cnn->Execute("员工业务表",NULL,adCmdTable);
	int nCount=(nowpage+1)*20;
	rst->Move(nowpage*20);
    for(int i=nowpage*20;!rst->_EOF;i++)
	{
		if(Item==20)
			goto End;
	
       str.Format("%d",Item+1);
       id.Format("%d",i+1);
       int iPos=m_job.InsertItem(Item,str);
       m_job.SetItemText(iPos,0,id);
	   m_job.SetItemText(iPos,1,GetFieldValue("安装工1"));
       m_job.SetItemText(iPos,2,GetFieldValue("安装工2"));
       m_job.SetItemText(iPos,3,GetFieldValue("发票号"));
       m_job.SetItemText(iPos,4,GetFieldValue("空调品牌"));
       m_job.SetItemText(iPos,5,GetFieldValue("空调匹次"));
       m_job.SetItemText(iPos,6,GetFieldValue("所属商场"));
       m_job.SetItemText(iPos,7,GetFieldValue("安装日期"));
	   Item++;
	   rst->MoveNext();
	}
End:
	str.Format("【本系统现有业务记录共 %d 条】\n【当前显示条第 %d 条至 第 %d 条记录】",theApp.GetRecordCount(rst),nowpage*20+1,i);
	m_tongji=str;
	UpdateData(FALSE);
	nowpage++;
	if(nowpage==page)
	{
	   GetDlgItem(IDC_FIRST_BUT)->EnableWindow(TRUE);
	   GetDlgItem(IDC_PREVIOUS_BUT)->EnableWindow(TRUE);
	   GetDlgItem(IDC_NEXT_BUT)->EnableWindow(FALSE);
	   GetDlgItem(IDC_LAST_BUT)->EnableWindow(FALSE);
	}
	else
	{
	   GetDlgItem(IDC_FIRST_BUT)->EnableWindow(TRUE);
	   GetDlgItem(IDC_PREVIOUS_BUT)->EnableWindow(TRUE);
	   GetDlgItem(IDC_NEXT_BUT)->EnableWindow(TRUE);
	   GetDlgItem(IDC_LAST_BUT)->EnableWindow(TRUE);
	}
	
}

void CJobinfo::OnPreviousBut() 
{
    CString str,id;
	m_job.DeleteAllItems();
	rst.CreateInstance(__uuidof(Recordset));
    rst=cnn->Execute("员工业务表",NULL,adCmdTable);
	nowpage--;
	int nCount=nowpage*20;
	int adress=(nowpage-1)*20;
	int Item=0;
	rst->Move(adress);
    for(int i=adress;i<20;i++)

⌨️ 快捷键说明

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