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

📄 workerview.cpp

📁 一个简单的管理程序
💻 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 + -