📄 jobinfo.cpp
字号:
// 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 + -