📄 人员管理系统view.cpp
字号:
if(m_recordsort=="")
{
MessageBox("请输入查询字符!");
return;
}
CString str;
m_RecordComboBox.GetLBText(m_RecordComboBox.GetCurSel(),str);
CString sql;
sql="select * from [员工档案] where ";
sql+=str;
sql+=" like '";
sql+=m_recordsort;
sql+="'";
ShowPersonRecord(sql);
}
void CMyView::OnRecordFindall()
{
// TODO: Add your control notification handler code here
CString sql;
sql="select * from [员工档案]";
ShowPersonRecord(sql);
}
void CMyView::OnRecordSqlfind()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_recordsqlsort=="")
{
MessageBox("请输入查询语句!");
return;
}
CString sql;
sql="select * from [员工档案] where ";
sql+=m_recordsqlsort;
ShowPersonRecord(sql);
}
void CMyView::OnLaborageFind()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_laboragesort=="")
{
MessageBox("请输入查询数值!");
return;
}
CString str;
m_LaborageComboBox.GetLBText(m_LaborageComboBox.GetCurSel(),str);
CString sql;
sql="select * from [员工工资] where ";
sql+=str;
m_LaboragenexusComboBox.GetLBText(m_LaboragenexusComboBox.GetCurSel(),str);
sql+=str;
sql+=m_laboragesort;
ShowPersonLaborage(sql);
}
void CMyView::OnLaborageFindall()
{
// TODO: Add your control notification handler code here
CString sql;
sql="select * from [员工工资]";
ShowPersonLaborage(sql);
}
void CMyView::OnLaborageSqlfind()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_laboragesqlsort=="")
{
MessageBox("请输入查询语句!");
return;
}
CString sql;
sql="select * from [员工工资] where ";
sql+=m_laboragesqlsort;
ShowPersonLaborage(sql);
}
void CMyView::OnLaborageSqlupdate()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_laboragesqlsort.Find("编号")!=-1)
{
MessageBox("[编号]字段不能被修改!");
return;
}
CString sql;
sql="update [员工工资] set ";
sql+=m_laboragesqlsort;
m_PersonLaborage.m_pDatabase->ExecuteSQL(sql);
ShowPersonLaborage();
}
BOOL CMyView::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
m_tip.RelayEvent(pMsg);
if(pMsg->hwnd==m_LaborageSort.m_hWnd && pMsg->message==WM_CHAR)
{
UINT key=pMsg->wParam;
if( (key<'0' || key>'9') && (key!=8 && key!='.' && key!='-'))
return TRUE;
}
if(pMsg->message==WM_RBUTTONDOWN)
{
if(pMsg->hwnd==m_RecordList.m_hWnd)
{
CMenu menu;
CPoint xy;
::GetCursorPos(&xy);
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING,IDC_RECORD_FINDALL,"所有记录");
menu.AppendMenu(MF_STRING,WM_ADD_RECORD,"增加记录");
int count=m_RecordList.GetSelectedCount();
if(count>0)
menu.AppendMenu(MF_STRING,WM_DELETE_RECORD,"删除记录");
else
menu.AppendMenu(MF_STRING|MF_GRAYED,WM_DELETE_RECORD,"删除记录");
menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,xy.x,xy.y,this);
return TRUE;
}
if(pMsg->hwnd==m_LaborageList.m_hWnd)
{
CMenu menu;
CPoint xy;
::GetCursorPos(&xy);
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING,IDC_LABORAGE_FINDALL,"所有记录");
int count=m_LaborageList.GetSelectedCount();
if(count>0)
menu.AppendMenu(MF_STRING,WM_GIVE_LABORAGE,"发放本月工资");
else
menu.AppendMenu(MF_STRING|MF_GRAYED,WM_GIVE_LABORAGE,"发放本月工资");
menu.TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON,xy.x,xy.y,this);
return TRUE;
}
}
if(pMsg->message==WM_MOUSEMOVE && pMsg->hwnd==m_LaborageList.GetHeaderCtrl()->m_hWnd)
return TRUE;
return CFormView::PreTranslateMessage(pMsg);
}
void CMyView::DeleteRecord()
{
int count=m_RecordList.GetSelectedCount();
if(count<=0)
{
MessageBox("您没有选中任何记录!");
return;
}
POSITION pos=m_RecordList.GetFirstSelectedItemPosition();
m_PersonRecord.Open();
m_PersonLaborage.Open();
while(pos!=NULL)
{
int index=m_RecordList.GetNextSelectedItem(pos);
CString data=m_RecordList.GetItemText(index,0);
CString sql="delete * from [员工档案] where 编号=";
sql+=data;
m_PersonRecord.m_pDatabase->ExecuteSQL(sql);
sql="delete * from [员工工资] where 编号=";
sql+=data;
m_PersonLaborage.m_pDatabase->ExecuteSQL(sql);
if(atol(data)==m_maxid) m_maxid--;
}
m_PersonRecord.Close();
m_PersonLaborage.Close();
ShowPersonRecord();
ShowPersonLaborage();
}
void CMyView::GiveLaborage()
{
int count=m_LaborageList.GetSelectedCount();
if(count<=0)
{
MessageBox("您没有选中任何记录!");
return;
}
POSITION pos=m_LaborageList.GetFirstSelectedItemPosition();
m_PersonLaborage.Open();
while(pos!=NULL)
{
int index=m_LaborageList.GetNextSelectedItem(pos);
CString data=m_LaborageList.GetItemText(index,0);
CString sql="update [员工工资] set 本月工资=0 where 编号=";
sql+=data;
m_PersonLaborage.m_pDatabase->ExecuteSQL(sql);
}
m_PersonLaborage.Close();
ShowPersonLaborage();
}
void CMyView::AddRecord()
{
CPerson per;
//初始化'编号'
per.m_id=m_maxid+1;
if(per.DoModal()==IDOK)
{
m_PersonRecord.Open();
m_PersonLaborage.Open();
m_PersonRecord.AddNew();
m_PersonLaborage.AddNew();
m_PersonRecord.m_column1=per.m_id;
m_PersonRecord.m_column2=per.m_name;
if(per.m_sex==1)
m_PersonRecord.m_column3="女";
else
m_PersonRecord.m_column3="男";
m_PersonRecord.m_column4=per.m_birthday;
m_PersonRecord.m_column5=per.m_address;
m_PersonRecord.m_column6=per.m_telephone;
m_PersonRecord.m_column7=per.m_mobilephone;
m_PersonRecord.m_column8=per.m_email;
m_PersonRecord.m_column9=per.m_departement;
m_PersonRecord.m_column10=CTime::GetCurrentTime();
m_PersonRecord.m_column11=per.m_other;
m_PersonLaborage.m_column1=per.m_id;
m_PersonLaborage.m_column2=per.m_laborage;
m_PersonLaborage.m_column3=per.m_bonus;
m_PersonLaborage.m_column4=0;
m_PersonLaborage.m_column5=0;
m_PersonLaborage.m_column6=(float)(-(CTime::GetCurrentTime().GetDay()));
m_PersonLaborage.m_column7=0;
m_PersonRecord.Update();
m_PersonLaborage.Update();
m_PersonRecord.Close();
m_PersonLaborage.Close();
ShowPersonRecord();
ShowPersonLaborage();
if(per.m_id>m_maxid) m_maxid++;
}
}
void CMyView::OnGethelp()
{
// TODO: Add your command handler code here
char name[256];
::GetModuleFileName(NULL,name,255);
CString str=name;
str=str.Left(str.ReverseFind('.')+1);
str+="chm";
if(::GetFileAttributes(str)==-1)
{
CString inf;
inf.Format("找不到 '%s' 帮助文件!",str.Right(str.GetLength()-str.ReverseFind('\\')-1));
MessageBox(inf);
return;
}
::ShellExecute(NULL,NULL,str,NULL,NULL,SW_RESTORE);
}
void CMyView::OnHomepage()
{
// TODO: Add your command handler code here
::ShellExecute(NULL,NULL,"http://fxstudio.nease.net",NULL,NULL,NULL);
}
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFormView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
m_tip.Create(this);
m_RecordEdit.m_list=&m_RecordList;
m_RecordEdit.m_record=&m_PersonRecord;
m_RecordEdit.m_table="[员工档案]";
m_LaborageEdit.m_list=&m_LaborageList;
m_LaborageEdit.m_record=&m_PersonLaborage;
m_LaborageEdit.m_table="[员工工资]";
m_LaborageEdit.m_isnumber=TRUE;
m_RecordEdit.Create(WS_CHILD|ES_CENTER,CRect(0,0,0,0),this,WM_USER+300);
m_RecordList.m_edithwnd=m_RecordEdit.m_hWnd;
m_LaborageEdit.Create(WS_CHILD|ES_CENTER,CRect(0,0,0,0),this,WM_USER+301);
m_LaborageList.m_edithwnd=m_LaborageEdit.m_hWnd;
return 0;
}
void CMyView::OnDblclkRecordlist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
NM_LISTVIEW* pList = (NM_LISTVIEW*)pNMHDR;
int item=pList->iItem;
int subitem= pList->iSubItem;
if(subitem<=0)
{
*pResult = 0;
return;
}
CRect rc;
m_RecordList.GetSubItemRect(item,subitem,LVIR_BOUNDS,rc);
CRect rc1;
m_RecordList.GetWindowRect(&rc1);
ScreenToClient(&rc1);
rc.left+=rc1.left+2;
rc.top+=rc1.top+2;
rc.right+=rc1.left+2;
rc.bottom+=rc1.top+2;
if(rc.left<rc1.left || rc.right>rc1.right-20 || rc.top<rc1.top || rc.bottom>rc1.bottom-20)
{
*pResult = 0;
return;
}
m_RecordEdit.m_item=item;
m_RecordEdit.m_subitem=subitem;
m_RecordEdit.m_id=m_RecordList.GetItemText(item,0);
LVCOLUMN col;
col.mask = LVCF_TEXT;
col.cchTextMax=255;
char temp[256];
col.pszText=temp;
m_RecordList.GetColumn(subitem,&col);
m_RecordEdit.m_name=col.pszText;
m_RecordEdit.MoveWindow(&rc);
m_RecordEdit.ShowWindow(SW_SHOW);
m_RecordEdit.SetFocus();
m_RecordEdit.SetFont(m_RecordList.GetFont());
CString title=m_RecordList.GetItemText(item,subitem);
m_RecordEdit.m_title=title;
m_RecordEdit.SetWindowText(title);
int len=title.GetLength();
m_RecordEdit.SetSel(len,len);
*pResult = 0;
}
void CMyView::OnDblclkLaboragelist(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
NM_LISTVIEW* pList = (NM_LISTVIEW*)pNMHDR;
int item=pList->iItem;
int subitem= pList->iSubItem;
if(subitem<=0)
{
*pResult = 0;
return;
}
CRect rc;
m_LaborageList.GetSubItemRect(item,subitem,LVIR_BOUNDS,rc);
CRect rc1;
m_LaborageList.GetWindowRect(&rc1);
ScreenToClient(&rc1);
rc.left+=rc1.left+2;
rc.top+=rc1.top+2;
rc.right+=rc1.left+2;
rc.bottom+=rc1.top+2;
if(rc.left<rc1.left || rc.right>rc1.right || rc.top<rc1.top || rc.bottom>rc1.bottom)
{
*pResult = 0;
return;
}
m_LaborageEdit.m_item=item;
m_LaborageEdit.m_subitem=subitem;
m_LaborageEdit.m_id=m_LaborageList.GetItemText(item,0);
LVCOLUMN col;
col.mask = LVCF_TEXT;
col.cchTextMax=255;
char temp[256];
col.pszText=temp;
m_LaborageList.GetColumn(subitem,&col);
m_LaborageEdit.m_name=col.pszText;
m_LaborageEdit.MoveWindow(&rc);
m_LaborageEdit.ShowWindow(SW_SHOW);
m_LaborageEdit.SetFocus();
m_LaborageEdit.SetFont(m_LaborageList.GetFont());
CString title=m_LaborageList.GetItemText(item,subitem);
m_LaborageEdit.m_title=title;
m_LaborageEdit.SetWindowText(title);
int len=title.GetLength();
m_LaborageEdit.SetSel(len,len);
*pResult = 0;
}
void CMyView::OnChangePassword()
{
// TODO: Add your command handler code here
CChangePassword dlg;
dlg.DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -