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

📄 人员管理系统view.cpp

📁 这个好像不错哦
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	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 + -