📄 workerview.cpp
字号:
// WorkerView.cpp : implementation of the CWorkerView class
//
#include "stdafx.h"
#include "Worker.h"
#include "SignupDlg.h"
#include "WorkerDoc.h"
#include "WorkerView.h"
#include"SearchMarriageDlg.h"
#include"Search_BirthDlg.h"
#include"SearchStanardDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CWorkerView
IMPLEMENT_DYNCREATE(CWorkerView, CListView)
BEGIN_MESSAGE_MAP(CWorkerView, CListView)
//{{AFX_MSG_MAP(CWorkerView)
ON_COMMAND(ID_Display_Signup, OnDisplaySignup)
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
ON_COMMAND(ID_Search_Standard, OnSearchStandard)
ON_COMMAND(ID_Search_Marriage, OnSearchMarriage)
ON_COMMAND(ID_Seaarch_Birth, OnSeaarchBirth)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CListView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CListView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CListView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CWorkerView construction/destruction
CWorkerView::CWorkerView()
{
// TODO: add construction code here
}
CWorkerView::~CWorkerView()
{
}
BOOL CWorkerView::PreCreateWindow(CREATESTRUCT& cs)
{
cs.style |= LVS_SHOWSELALWAYS | LVS_REPORT;// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CListView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CWorkerView drawing
void CWorkerView::OnDraw(CDC* pDC)
{
CWorkerDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
}
void CWorkerView::OnInitialUpdate()
{
CListView::OnInitialUpdate();
// TODO: You may populate your ListView with items by directly accessing
// its list control through a call to GetListCtrl().
}
/////////////////////////////////////////////////////////////////////////////
// CWorkerView printing
BOOL CWorkerView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CWorkerView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CWorkerView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CWorkerView diagnostics
#ifdef _DEBUG
void CWorkerView::AssertValid() const
{
CListView::AssertValid();
}
void CWorkerView::Dump(CDumpContext& dc) const
{
CListView::Dump(dc);
}
CWorkerDoc* CWorkerView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CWorkerDoc)));
return (CWorkerDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CWorkerView message handlers
void CWorkerView::OnDisplaySignup()
{
mDisplayID = ID_Display_Signup;
ShowSignup();
}
void CWorkerView::ShowSignup()
{
CListCtrl& ListCtrl = GetListCtrl();
while(ListCtrl.DeleteColumn(0)){};
ListCtrl.DeleteAllItems();
ListCtrl.InsertColumn(0,"编号");
ListCtrl.SetColumnWidth(0,80);
ListCtrl.InsertColumn(1,"姓名");
ListCtrl.SetColumnWidth(1,80);
ListCtrl.InsertColumn(2,"性别");
ListCtrl.SetColumnWidth(2,80);
ListCtrl.InsertColumn(3,"生日");
ListCtrl.SetColumnWidth(3,80);
ListCtrl.InsertColumn(4,"职称");
ListCtrl.SetColumnWidth(4,80);
ListCtrl.InsertColumn(5,"学历");
ListCtrl.SetColumnWidth(5,80);
ListCtrl.InsertColumn(6,"工资");
ListCtrl.SetColumnWidth(6,80);
ListCtrl.InsertColumn(7,"婚否");
ListCtrl.SetColumnWidth(7,80);
int i,j;
CString Str;
Workers* pworker = NULL;
CWorkerDoc* pDoc = GetDocument();
for(i = 0;i < pDoc->WorkerManArray.GetSize();i++)
{
pworker= &pDoc->WorkerManArray[i];
Str.Format("%d",pworker->Id);
ListCtrl.InsertItem(i,Str);
j=1;
Str.Format("%s",pworker->Name);
ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Sex);
ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%d-%d",pworker->Birth.GetYear(),pworker->Birth.GetMonth());
ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Standard);
ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Study);
ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%.2f",pworker->Salary);
ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Marriage);
ListCtrl.SetItem(i,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
}
}
void CWorkerView::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
NMLISTVIEW* pNM = (NMLISTVIEW*)pNMHDR;
if(pNM->iItem >= 0)
{
CWorkerDoc* pDoc = GetDocument();
int ID = AfxMessageBox("选“Yes”编辑,“No”删除,“Cancel”中止",MB_YESNOCANCEL|MB_ICONQUESTION);
if(ID == IDYES)
{
Workers& worker = pDoc->WorkerManArray[pNM->iItem];
CSignupDlg Dlg;
Dlg.m_Name = worker.Name;
Dlg.m_Id = worker.Id;
Dlg.m_Sex = worker.Sex;
Dlg.m_Birth= worker.Birth;
Dlg.m_Standard= worker.Standard;
Dlg.m_Study= worker.Study;
Dlg.m_Salary= worker.Salary;
Dlg.m_Marriage = worker.Marriage;
if(Dlg.DoModal() == IDOK)
{
worker.Name=Dlg.m_Name ;
worker.Id=Dlg.m_Id ;
worker.Sex =Dlg.m_Sex;
worker.Birth=Dlg.m_Birth;
worker.Standard=Dlg.m_Standard ;
worker.Study=Dlg.m_Study ;
worker.Salary= Dlg.m_Salary ;
worker.Marriage =Dlg.m_Marriage ;
ShowSignup();
}
}
else if(ID == IDNO)
{
pDoc->WorkerManArray.RemoveAt(pNM->iItem);
ShowSignup();
}
}// TODO: Add your control notification handler code here
*pResult = 0;
}
void CWorkerView::OnSearchStandard()
{
CListCtrl& ListCtrl = GetListCtrl();
while(ListCtrl.DeleteColumn(0)){ };
ListCtrl.DeleteAllItems();
ListCtrl.InsertColumn(0,"编号");
ListCtrl.SetColumnWidth(0,80);
ListCtrl.InsertColumn(1,"姓名");
ListCtrl.SetColumnWidth(1,80);
ListCtrl.InsertColumn(2,"性别");
ListCtrl.SetColumnWidth(2,80);
ListCtrl.InsertColumn(3,"生日");
ListCtrl.SetColumnWidth(3,80);
ListCtrl.InsertColumn(4,"职称");
ListCtrl.SetColumnWidth(4,80);
ListCtrl.InsertColumn(5,"学历");
ListCtrl.SetColumnWidth(5,80);
ListCtrl.InsertColumn(6,"工资");
ListCtrl.SetColumnWidth(6,80);
ListCtrl.InsertColumn(7,"婚否");
ListCtrl.SetColumnWidth(7,80);
SearchStanardDlg Dlg;
CString Str,pStr;
Workers *pworker = NULL;
CWorkerDoc* pDoc = GetDocument();
if(Dlg.DoModal() == IDOK)
{
pStr=Dlg.m_Search_Standard;
//TODO: Add your command handler code here
}
int j;
int p=-1;
for(int i=0;i<pDoc->WorkerManArray.GetSize();i++)
{ pworker= &pDoc->WorkerManArray[i];
if(_stricmp((pworker->Standard),pStr)==0)
{ p++;
Str.Format("%d",pworker->Id);
ListCtrl.InsertItem(p,Str);
j=1;
Str.Format("%s",pworker->Name);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Sex);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%d-%d",pworker->Birth.GetYear(),pworker->Birth.GetMonth());
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Standard);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Study);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%.2f",pworker->Salary);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Marriage);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
}
}
}
void CWorkerView::OnSearchMarriage()
{
CListCtrl& ListCtrl = GetListCtrl();
while(ListCtrl.DeleteColumn(0)){};
ListCtrl.DeleteAllItems();
ListCtrl.InsertColumn(0,"编号");
ListCtrl.SetColumnWidth(0,80);
ListCtrl.InsertColumn(1,"姓名");
ListCtrl.SetColumnWidth(1,80);
ListCtrl.InsertColumn(2,"性别");
ListCtrl.SetColumnWidth(2,80);
ListCtrl.InsertColumn(3,"生日");
ListCtrl.SetColumnWidth(3,80);
ListCtrl.InsertColumn(4,"职称");
ListCtrl.SetColumnWidth(4,80);
ListCtrl.InsertColumn(5,"学历");
ListCtrl.SetColumnWidth(5,80);
ListCtrl.InsertColumn(6,"工资");
ListCtrl.SetColumnWidth(6,80);
ListCtrl.InsertColumn(7,"婚否");
ListCtrl.SetColumnWidth(7,80);
SearchMarriageDlg Dlg;
CString Str,pStr;
Workers *pworker = NULL;
CWorkerDoc* pDoc = GetDocument();
if(Dlg.DoModal() == IDOK)
{
pStr=Dlg.m_Search_Mrriagedlg;
//TODO: Add your command handler code here
}
int j;
int p=-1;
for(int i=0;i<pDoc->WorkerManArray.GetSize();i++)
{ pworker= &pDoc->WorkerManArray[i];
if(_stricmp((pworker->Marriage),pStr)==0)
{ p++;
Str.Format("%d",pworker->Id);
ListCtrl.InsertItem(p,Str);
j=1;
Str.Format("%s",pworker->Name);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Sex);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%d-%d",pworker->Birth.GetYear(),pworker->Birth.GetMonth());
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Standard);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Study);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%.2f",pworker->Salary);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Marriage);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
}
}
}
void CWorkerView::OnSeaarchBirth()
{
CListCtrl& ListCtrl = GetListCtrl();
while(ListCtrl.DeleteColumn(0)){};
ListCtrl.DeleteAllItems();
ListCtrl.InsertColumn(0,"编号");
ListCtrl.SetColumnWidth(0,80);
ListCtrl.InsertColumn(1,"姓名");
ListCtrl.SetColumnWidth(1,80);
ListCtrl.InsertColumn(2,"性别");
ListCtrl.SetColumnWidth(2,80);
ListCtrl.InsertColumn(3,"生日");
ListCtrl.SetColumnWidth(3,80);
ListCtrl.InsertColumn(4,"职称");
ListCtrl.SetColumnWidth(4,80);
ListCtrl.InsertColumn(5,"学历");
ListCtrl.SetColumnWidth(5,80);
ListCtrl.InsertColumn(6,"工资");
ListCtrl.SetColumnWidth(6,80);
ListCtrl.InsertColumn(7,"婚否");
Workers *pworker = NULL;
CWorkerDoc* pDoc = GetDocument();
CString Str;
Search_BirthDlg Dlg;
int year,month;
if(Dlg.DoModal() == IDOK)
{
year=Dlg.m_Search_Birth.GetYear();
month=Dlg.m_Search_Birth.GetMonth();
};
if(Dlg.m_Choose==1)
{ int j;
int p=-1;
for(int i=0;i<pDoc->WorkerManArray.GetSize();i++)
{
pworker= &pDoc->WorkerManArray[i];
if(pworker->Birth.GetYear()<year||
pworker->Birth.GetYear()==year&&pworker->Birth.GetMonth()<month)
{ p++;
Str.Format("%d",pworker->Id);
ListCtrl.InsertItem(p,Str);
j=1;
Str.Format("%s",pworker->Name);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Sex);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%d-%d",pworker->Birth.GetYear(),pworker->Birth.GetMonth());
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Standard);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Study);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%.2f",pworker->Salary);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Marriage);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
}
}
}
if(Dlg.m_Choose==0)
{
int j;
int p=-1;
for(int i=0;i<pDoc->WorkerManArray.GetSize();i++)
{
pworker= &pDoc->WorkerManArray[i];
if(pworker->Birth.GetYear()>year||
pworker->Birth.GetYear()==year&&pworker->Birth.GetMonth()>=month)
{
p++;
Str.Format("%d",pworker->Id);
ListCtrl.InsertItem(p,Str);
j=1;
Str.Format("%s",pworker->Name);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Sex);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%d-%d",pworker->Birth.GetYear(),pworker->Birth.GetMonth());
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Standard);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Study);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%.2f",pworker->Salary);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
j++;
Str.Format("%s",pworker->Marriage);
ListCtrl.SetItem(p,j,LVIF_TEXT,Str,0,0,0,NULL);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -