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

📄 autostumisview.cpp

📁 学校信息管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// AutoStuMisView.cpp : implementation of the CAutoStuMisView class
//

#include "stdafx.h"
#include "AutoStuMis.h"

#include "AutoStuMisDoc.h"
#include "AutoStuMisView.h"
#include "DlgStudentEdit.h"
#include "DlgClassEdit.h"
#include "DlgFilterClass.h"
#include "DlgFindStudent.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAutoStuMisView

IMPLEMENT_DYNCREATE(CAutoStuMisView, CListView)

BEGIN_MESSAGE_MAP(CAutoStuMisView, CListView)
	//{{AFX_MSG_MAP(CAutoStuMisView)
	ON_COMMAND(ID_DATA_STUDENT, OnDataStudent)
	ON_COMMAND(ID_VIEW_REFRESH, OnViewRefresh)
	ON_UPDATE_COMMAND_UI(ID_DATA_STUDENT, OnUpdateDataStudent)
	ON_COMMAND(ID_DATA_CLASS, OnDataClass)
	ON_UPDATE_COMMAND_UI(ID_DATA_CLASS, OnUpdateDataClass)
	ON_COMMAND(ID_EDIT_ADDNEW, OnEditAddnew)
	ON_COMMAND(ID_EDIT_MODIFY, OnEditModify)
	ON_COMMAND(ID_EDIT_DELETE, OnEditDelete)
	ON_COMMAND(ID_EDIT_SEARCH, OnEditSearch)
	ON_COMMAND(ID_VIEW_CLEARDATA, OnViewCleardata)
	//}}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()

/////////////////////////////////////////////////////////////////////////////
// CAutoStuMisView construction/destruction

CAutoStuMisView::CAutoStuMisView()
{
	// TODO: add construction code here

}

CAutoStuMisView::~CAutoStuMisView()
{
}

BOOL CAutoStuMisView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CListView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CAutoStuMisView drawing

void CAutoStuMisView::OnDraw(CDC* pDC)
{
	CAutoStuMisDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

void CAutoStuMisView::OnInitialUpdate()
{
	CListView::OnInitialUpdate();


	// TODO: You may populate your ListView with items by directly accessing
	//  its list control through a call to GetListCtrl().
	LONG lStyle;
	lStyle=GetWindowLong(this->GetListCtrl().GetSafeHwnd(),GWL_STYLE);//获取当前窗口类型
	lStyle&=~LVS_TYPEMASK; //清除显示方式位
	lStyle|=LVS_REPORT; //设置显示方式
	SetWindowLong(this->GetListCtrl().GetSafeHwnd(),GWL_STYLE,lStyle);//设置窗口类型
	this->GetListCtrl().SetExtendedStyle(LVS_EX_FULLROWSELECT);

	OnDataStudent();
}

/////////////////////////////////////////////////////////////////////////////
// CAutoStuMisView printing

BOOL CAutoStuMisView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CAutoStuMisView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CAutoStuMisView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CAutoStuMisView diagnostics

#ifdef _DEBUG
void CAutoStuMisView::AssertValid() const
{
	CListView::AssertValid();
}

void CAutoStuMisView::Dump(CDumpContext& dc) const
{
	CListView::Dump(dc);
}

CAutoStuMisDoc* CAutoStuMisView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CAutoStuMisDoc)));
	return (CAutoStuMisDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CAutoStuMisView message handlers

void CAutoStuMisView::OnDataStudent() 
{
	// TODO: Add your command handler code here
	m_nDataType = dtStudent;
	OnViewRefresh();
}

void CAutoStuMisView::OnViewRefresh() 
{
	// TODO: Add your command handler code here
	CListCtrl *pListCtrl;
	pListCtrl = &this->GetListCtrl(); 
	pListCtrl->DeleteAllItems();
	while(pListCtrl->DeleteColumn(0)){}

	//LV_ITEM lvitem;
	CStudent *pStu;
	CItem *pItem;
	CString sTmp;
	CClass *pClass;
	int i=0,iPos=0,j=0;
	CAutoStuMisDoc *pDoc=this->GetDocument();
	switch(m_nDataType)
	{
	case dtStudent:
		pDoc->FillStudentsToListctrl(pListCtrl,_T(""),_T("")); 
		break;
	case dtClass:
		pListCtrl->InsertColumn(0,"*",LVCFMT_LEFT,30,-1);
		pListCtrl->InsertColumn(1,"日期",LVCFMT_LEFT,80,-1);
		pListCtrl->InsertColumn(2,"时间",LVCFMT_LEFT,40,-1);
		pListCtrl->InsertColumn(3,"车号",LVCFMT_LEFT,80,-1);
		pListCtrl->InsertColumn(4,"教练",LVCFMT_LEFT,50,-1);
		pListCtrl->InsertColumn(5,"姓名",LVCFMT_LEFT,50,-1);
		pListCtrl->InsertColumn(6,"性别",LVCFMT_LEFT,40,-1);
		pListCtrl->InsertColumn(7,"身份证",LVCFMT_LEFT,100,-1);
		pListCtrl->InsertColumn(8,"联系地址",LVCFMT_LEFT,110,-1);
		pListCtrl->InsertColumn(9,"电话",LVCFMT_LEFT,80,-1);		
		pListCtrl->InsertColumn(10,"上车时间",LVCFMT_LEFT,70,-1);
		pListCtrl->InsertColumn(11,"场考时间",LVCFMT_LEFT,70,-1);
		pListCtrl->InsertColumn(12,"路考时间",LVCFMT_LEFT,70,-1);
		pListCtrl->InsertColumn(13,"考试类型",LVCFMT_LEFT,70,-1);
		pListCtrl->InsertColumn(14,"发证日期",LVCFMT_LEFT,70,-1);
		if(pDoc->ReadClasss(0,0,_T(""),_T(""))<=0)
			return;
		for(i=0;i<pDoc->m_arrClass.GetSize();i++)
		{   pClass = pDoc->m_arrClass[i]; 
			for(j=0;j<pClass->m_arrStudent.GetSize();j++)
			{
				pStu = pClass->m_arrStudent[j];
				sTmp.Format("%d",pListCtrl->GetItemCount()+1);
				iPos = pListCtrl->InsertItem(pListCtrl->GetItemCount(),sTmp,0);
				sTmp.Format("%d-%d-%d",pClass->m_F_Date.GetYear(),pClass->m_F_Date.GetMonth(),pClass->m_F_Date.GetDay());
				pListCtrl->SetItemText(iPos,1,sTmp);
				if(pClass->m_F_NoonID==0)
					sTmp = "上午";
				else
					sTmp = "下午";
				pListCtrl->SetItemText(iPos,2,sTmp);
				pListCtrl->SetItemText(iPos,3,pClass->m_F_AutoNo);
				pListCtrl->SetItemText(iPos,4,pClass->m_F_Teacher);
				pListCtrl->SetItemText(iPos,5,pStu->m_F_ItemName);
				pListCtrl->SetItemText(iPos,6,pStu->m_F_Sex);
				pListCtrl->SetItemText(iPos,7,pStu->m_F_SN);
				pListCtrl->SetItemText(iPos,8,pStu->m_F_Address);
				pListCtrl->SetItemText(iPos,9,pStu->m_F_Tel);
			//*/日期/时间/车号/教练/姓名/性别/身份证/联系地址/电话/上车时间
			//场考时间/路考时间/考试类型/发证日期
				if(pStu->m_tmUpAuto>0)
				{	
					sTmp.Format("%d-%d-%d",pStu->m_tmUpAuto.GetYear(),pStu->m_tmUpAuto.GetMonth(),pStu->m_tmUpAuto.GetDay());
					pListCtrl->SetItemText(iPos,10,sTmp);
				}
				if(pStu->m_tmExamField>0)
				{
					sTmp.Format("%d-%d-%d",pStu->m_tmExamField.GetYear(),pStu->m_tmExamField.GetMonth(),pStu->m_tmExamField.GetDay());
					pListCtrl->SetItemText(iPos,11,sTmp);
				}
				if(pStu->m_tmExamRoad>0)
				{
					sTmp.Format("%d-%d-%d",pStu->m_tmExamRoad.GetYear(),pStu->m_tmExamRoad.GetMonth(),pStu->m_tmExamRoad.GetDay());
					pListCtrl->SetItemText(iPos,12,sTmp);
				}
				pItem = pDoc->GetItemByID(&pDoc->m_arrExamType,pStu->m_nExamTypeID); 
				if(pItem)
					pListCtrl->SetItemText(iPos,13,pItem->m_F_ItemName); 
				if(pStu->m_tmEnd>0)
				{
					sTmp.Format("%d-%d-%d",pStu->m_tmEnd.GetYear(),pStu->m_tmEnd.GetMonth(),pStu->m_tmEnd.GetDay());
					pListCtrl->SetItemText(iPos,14,sTmp);
				}
				pListCtrl->SetItemData(iPos,pClass->m_F_ID);
			}
		}
		break;
	default:
		break;
	}
}

void CAutoStuMisView::OnUpdateDataStudent(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable();
	pCmdUI->SetCheck(m_nDataType == dtStudent);
}

void CAutoStuMisView::OnDataClass() 
{
	// TODO: Add your command handler code here
	m_nDataType = dtClass;
	OnViewRefresh();
}

void CAutoStuMisView::OnUpdateDataClass(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->Enable();
	pCmdUI->SetCheck(m_nDataType == dtClass);
}

void CAutoStuMisView::OnEditAddnew() 
{
	// TODO: Add your command handler code here
	CDlgStudentEdit dlg;
	CDlgClassEdit dlg2;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -