📄 workerinfo.cpp
字号:
// WORKERINFO.cpp : implementation file
//
#include "stdafx.h"
#include "工资管理系统.h"
#include "WORKERINFO.h"
#include "EditWare.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWORKERINFO dialog
CWORKERINFO::CWORKERINFO(CWnd* pParent /*=NULL*/)
: CDialog(CWORKERINFO::IDD, pParent)
{
//{{AFX_DATA_INIT(CWORKERINFO)
m_selet = -1;
m_neirong = _T("");
m_emb = -1;
m_tongji = _T("");
//}}AFX_DATA_INIT
}
void CWORKERINFO::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CWORKERINFO)
DDX_Control(pDX, IDC_WORKER_LIST, m_worker);
DDX_CBIndex(pDX, IDC_TIAOJIAN_COMBO, m_selet);
DDX_Text(pDX, IDC_NEIRONG_EDIT, m_neirong);
DDX_CBIndex(pDX, IDC_EMB_COMBO, m_emb);
DDX_Text(pDX, IDC_STATIC_TONGJI, m_tongji);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CWORKERINFO, CDialog)
//{{AFX_MSG_MAP(CWORKERINFO)
ON_NOTIFY(NM_RCLICK, IDC_WORKER_LIST, OnRclickWorkerList)
ON_COMMAND(IDD_DELETE, OnDelete)
ON_COMMAND(IDD_ADDNEW, OnAddnew)
ON_COMMAND(IDD_UPDATE, OnUpdate)
ON_BN_CLICKED(IDC_FIND_BUT, OnFindBut)
ON_COMMAND(IDD_RUSH, OnRush)
ON_BN_CLICKED(IDC_RUSH_BUT, OnRushBut)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWORKERINFO message handlers
void CWORKERINFO::OnOK()
{
}
/***************对话框初始化消息响应********************/
BOOL CWORKERINFO::OnInitDialog()
{
CDialog::OnInitDialog();
//创建状态栏
TBBUTTON button;
CString str;
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_worker.m_hWnd,GWL_STYLE);
// 设置为报表形式
SetWindowLong(m_worker.m_hWnd,GWL_STYLE,dwSytle|LVS_REPORT);
DWORD ExStyle=m_worker.GetExtendedStyle();
// 设置为报表形式
m_worker.SetExtendedStyle(ExStyle|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
// 初始化列表控件
m_worker.InsertColumn(0,"编号",LVCFMT_CENTER,30,0);
m_worker.InsertColumn(1,"姓名",LVCFMT_CENTER,100,0);
m_worker.InsertColumn(2,"性别",LVCFMT_CENTER,40,0);
m_worker.InsertColumn(3,"联系电话",LVCFMT_CENTER,140,0);
m_worker.InsertColumn(4,"备 注",LVCFMT_CENTER,140,0);
rst.CreateInstance(__uuidof(Recordset));
rst=cnn->Execute("员工信息表",NULL,adCmdTable);
rst->MoveFirst();
int nCount=GetRecordsetCount();
CString s;
//初始化列表控件内容
for(int i=0;i<nCount;i++)
{
s.Format("%d",i+1);
int iPos=m_worker.InsertItem(i,s);
m_worker.SetItemText(iPos,1,GetFieldValue("姓名"));
m_worker.SetItemText(iPos,2,GetFieldValue("性别"));
m_worker.SetItemText(iPos,3,GetFieldValue("联系电话"));
m_worker.SetItemText(iPos,4,GetFieldValue("备注"));
rst->MoveNext();
}
if(nCount<=0)
{
AfxMessageBox("当前无记录,请添加记录!");
return TRUE;
}
str.Format("【本系统共有员工%d名】",nCount);
m_tongji=str;
UpdateData(FALSE);
return TRUE;
}
/************获取记录总数*************/
int CWORKERINFO::GetRecordsetCount()
{
int nCount = 0;
try{
rst->MoveFirst();
}
catch(...)
{
return 0;
}
if(rst->_EOF)
return 0;
while(!rst->_EOF)
{
rst->MoveNext();
nCount=nCount+1;
}
rst->MoveFirst();
return nCount;
}
/*************得到数据库中指定字段的内容************/
CString CWORKERINFO::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 CWORKERINFO::OnRclickWorkerList(NMHDR* pNMHDR, LRESULT* pResult)
{
CMenu menu ,* pSubMenu;//定义下面要用到的cmenu对象
menu.LoadMenu(IDR_MENU_WORKER);//装载自定义的右键菜单
pSubMenu = menu.GetSubMenu(0);//获取第一个弹出菜单,所以第一个菜单必须有子菜单
CPoint oPoint;//定义一个用于确定光标位置的位置
GetCursorPos( &oPoint);//获取当前光标的位置,以便使得菜单可以跟随光标
if(m_worker.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 CWORKERINFO::OnDelete()
{
if(MessageBox("您确定删除该条记录?","删除确认",MB_ICONQUESTION|MB_OKCANCEL)==1)
{
int Row;
Row=m_worker.GetSelectionMark();
CString sSQL,sName;
sName=m_worker.GetItemText(Row,1);
m_worker.DeleteItem(Row);
sSQL.Format("DELETE FROM 员工信息表 WHERE 姓名='%s'",sName);
rst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
}
else
return;
}
/*************添加新记录**********/
void CWORKERINFO::OnAddnew()
{
CEditWare dlg;
dlg.Enable=TRUE;
dlg.DoModal();
}
/************修改记录************/
void CWORKERINFO::OnUpdate()
{
CEditWare dlg;
int Row=m_worker.GetSelectionMark();
dlg.m_ID =m_worker.GetItemText(Row,0);
dlg.m_name=m_worker.GetItemText(Row,1);
if(m_worker.GetItemText(Row,2)=="男")
dlg.m_sex=0;
else
dlg.m_sex=1;
dlg.m_tele=m_worker.GetItemText(Row,3);
dlg.m_beizhu=m_worker.GetItemText(Row,4);
dlg.Enable=FALSE;
UpdateData(FALSE);
dlg.DoModal();
}
/***********查询************/
void CWORKERINFO::OnFindBut()
{
m_worker.DeleteAllItems();
CString sSQL,CellText;
UpdateData(TRUE);
switch(m_selet)
{
case 0:
{
if(m_emb==0)
sSQL.Format("SELECT * from 员工信息表 WHERE 姓名 LIKE '%s%%'",m_neirong);
else
sSQL.Format("SELECT * from 员工信息表 WHERE 姓名 = '%s'",m_neirong);
}
break;
case 1:
{
if(m_emb==0)
sSQL.Format("SELECT * from 员工信息表 WHERE 联系电话 LIKE '%s%%'",m_neirong);
else
sSQL.Format("SELECT * from 员工信息表 WHERE 联系电话 = '%s'",m_neirong);
}
break;
case 2:
{
if(m_emb==0)
sSQL.Format("SELECT * from 员工信息表 WHERE 备注 LIKE '%s%%'",m_neirong);
else
sSQL.Format("SELECT * from 员工信息表 WHERE 备注 = '%s'",m_neirong);
}
break;
}
rst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
//确定插入列表的行数
for(int i=0;i<theApp.GetRecordCount(rst);i++)
{
m_worker.InsertItem(i,"");
}
//确定插入列表的内容
for( i=0;i<theApp.GetRecordCount(rst);i++)
{
rst->MoveFirst();
rst->Move(i);
for(int j=0;j<rst->GetFields()->GetCount();j++)
{
CellText=(char*)(_bstr_t)rst->GetFields()->GetItem((long)j)->Value;
m_worker.SetItemText(i,j,CellText);
}
}
}
void CWORKERINFO::OnRush()
{
m_worker.DeleteAllItems();
CString s,str;
//初始化列表控件内容
rst=cnn->Execute("员工信息表",NULL,adCmdTable);
rst->MoveFirst();
int nCount=GetRecordsetCount();
for(int i=0;i<nCount;i++)
{
s.Format("%d",i+1);
int iPos=m_worker.InsertItem(i,s);
m_worker.SetItemText(iPos,1,GetFieldValue("姓名"));
m_worker.SetItemText(iPos,2,GetFieldValue("性别"));
m_worker.SetItemText(iPos,3,GetFieldValue("联系电话"));
m_worker.SetItemText(iPos,4,GetFieldValue("备注"));
rst->MoveNext();
}
str.Format("【本系统共有员工%d名】",nCount);
m_tongji=str;
UpdateData(FALSE);
}
void CWORKERINFO::OnRushBut()
{
OnRush();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -