📄 autostumisview.cpp
字号:
// 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 + -