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

📄 申花队队员管理系统view.cpp

📁 球队队员管理系统. 利用MFC+ODBC 开发的一个MIS系统案例!~ (适合初学者研究MFC 开发MIS系统)
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 申花队队员管理系统View.cpp : implementation of the CMyView class
//

#include "stdafx.h"
#include "申花队队员管理系统.h"

#include "申花队队员管理系统Set.h"
#include "申花队队员管理系统Doc.h"
#include "申花队队员管理系统View.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMyView

IMPLEMENT_DYNCREATE(CMyView, CRecordView)

BEGIN_MESSAGE_MAP(CMyView, CRecordView)
	//{{AFX_MSG_MAP(CMyView)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_DELETE, OnDelete)
	ON_BN_CLICKED(IDC_MODIFY, OnModify)
	ON_BN_CLICKED(IDC_SEARCH, OnSearch)
	ON_BN_CLICKED(IDC_SHOWALL, OnShowall)
	ON_BN_CLICKED(IDC_QUIT, OnQuit)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyView construction/destruction

CMyView::CMyView()
	: CRecordView(CMyView::IDD)
{
	//{{AFX_DATA_INIT(CMyView)
		// NOTE: the ClassWizard will add member initialization here
	m_pSet = NULL;
	//}}AFX_DATA_INIT
	// TODO: add construction code here

}

CMyView::~CMyView()
{
}

void CMyView::DoDataExchange(CDataExchange* pDX)
{
	CRecordView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CMyView)
	DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
	//}}AFX_DATA_MAP
}

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

	return CRecordView::PreCreateWindow(cs);
}

void CMyView::OnInitialUpdate()
{
	
	
	m_pSet = &GetDocument()->m_mySet;
	CRecordView::OnInitialUpdate();
	GetParentFrame()->RecalcLayout();
	ResizeParentToFit();
	CEnterDlg dlg;
	dlg.DoModal();
	if(dlg.k)  //设置K来使得部分按键变灰
	{
		GetDlgItem(IDC_ADD)->EnableWindow(TRUE);
		GetDlgItem(IDC_DELETE)->EnableWindow(TRUE);
		GetDlgItem(IDC_MODIFY)->EnableWindow(TRUE);
	}
	else
	{
		GetDlgItem(IDC_ADD)->EnableWindow(FALSE);
		GetDlgItem(IDC_DELETE)->EnableWindow(FALSE);
		GetDlgItem(IDC_MODIFY)->EnableWindow(FALSE);
	}

	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//画格子
	m_ListCtrl.InsertColumn(0,_T("球员姓名"));
	m_ListCtrl.InsertColumn(1,_T("身高"));
	m_ListCtrl.InsertColumn(2,_T("体重"));
	m_ListCtrl.InsertColumn(3,_T("年龄"));
	m_ListCtrl.InsertColumn(4,_T("效力时间"));
	m_ListCtrl.InsertColumn(5,_T("位置"));
	m_ListCtrl.InsertColumn(6,_T("号码"));
	m_ListCtrl.InsertColumn(7,_T("进球数"));

	RECT rect;
	m_ListCtrl.GetClientRect(&rect);
	//m_ListCtrl2.GetClientRect(&rect2);
	int i=rect.right-rect.left;
	//int j=rect2.right-rect2.left;
	m_ListCtrl.SetColumnWidth(0,i/8);
	m_ListCtrl.SetColumnWidth(1,i/8);
	m_ListCtrl.SetColumnWidth(2,i/8);
	m_ListCtrl.SetColumnWidth(3,i/8);
	m_ListCtrl.SetColumnWidth(4,i/8);
	m_ListCtrl.SetColumnWidth(5,i/8);
	m_ListCtrl.SetColumnWidth(6,i/8);
	m_ListCtrl.SetColumnWidth(7,i/8);

	m_ListCtrl.SetTextBkColor(RGB(140,180,250));
	m_ListCtrl.SetTextColor(RGB(255,0,0));
	m_ListCtrl.SetBkColor(RGB(140,180,250));
	this->show();
}

/////////////////////////////////////////////////////////////////////////////
// CMyView diagnostics

#ifdef _DEBUG
void CMyView::AssertValid() const
{
	CRecordView::AssertValid();
}

void CMyView::Dump(CDumpContext& dc) const
{
	CRecordView::Dump(dc);
}

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

/////////////////////////////////////////////////////////////////////////////
// CMyView database support
CRecordset* CMyView::OnGetRecordset()
{
	return m_pSet;
}


/////////////////////////////////////////////////////////////////////////////
// CMyView message handlers

void CMyView::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition();
	int i=m_ListCtrl.GetNextSelectedItem(pos);
	CString s;
	s.Format("当前选项: %s    %s   ",m_ListCtrl.GetItemText(i,6),m_ListCtrl.GetItemText(i,0));
	if(!m_ListCtrl.GetItemText(i,0).IsEmpty())
	{
		GetDlgItem(IDC_AAA)->SetWindowText(s); //最好将IDC_STATIC改名

	    UpdateData(FALSE);
	}
	else
		CMyView::OnShowall();
	// TODO: Add your control notification handler code here
	
	*pResult = 0;
}

void CMyView::OnAdd() 
{
	CAddDlg dlg;
	if(dlg.DoModal()==IDOK)
	{
		m_pSet->MoveFirst();
		if(dlg.m_haoma.IsEmpty()||dlg.m_jinqiushu.IsEmpty()||dlg.m_nianling.IsEmpty()||dlg.m_shengao.IsEmpty()||dlg.m_tizhong.IsEmpty()||dlg.m_weizhi.IsEmpty()||dlg.m_xiaolishijian.IsEmpty()||dlg.m_xingming.IsEmpty())
		{
			MessageBox("字段不能为空!");
			CMyView::OnAdd();
		}
		else
		{
			m_pSet->AddNew();
			m_pSet->m_haoma=dlg.m_haoma;
			m_pSet->m_jinqiushu=dlg.m_jinqiushu;
			m_pSet->m_nianling=dlg.m_nianling;
			m_pSet->m_qiuyuanmingzi=dlg.m_xingming;
			m_pSet->m_shengao=dlg.m_shengao;
			m_pSet->m_tizhong=dlg.m_tizhong;
			m_pSet->m_weizhi=dlg.m_weizhi;
			m_pSet->m_xiaolishijian=dlg.m_xiaolishijian;
			m_pSet->Update();
			m_pSet->Requery();
			m_pSet->MoveLast();
			m_ListCtrl.DeleteAllItems();
			this->show();
		}
	}
	m_pSet->MoveFirst();
	// TODO: Add your control notification handler code here
	
}

void CMyView::OnDelete() 
{
	CDeleteDlg dlg;
	POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition();
	int i=m_ListCtrl.GetNextSelectedItem(pos);
	m_pSet->MoveFirst();
	if((m_ListCtrl.GetItemText(i,6).IsEmpty())&&(m_ListCtrl.GetItemText(i,0).IsEmpty())&&(m_ListCtrl.GetItemText(i,1).IsEmpty())&&(m_ListCtrl.GetItemText(i,2).IsEmpty())&&(m_ListCtrl.GetItemText(i,3).IsEmpty())&&(m_ListCtrl.GetItemText(i,4).IsEmpty())&&(m_ListCtrl.GetItemText(i,5).IsEmpty())&&(m_ListCtrl.GetItemText(i,7).IsEmpty()))
	{
		MessageBox("请先选择一条记录!");
	}	
	else if(dlg.DoModal()==IDOK)
	{
		CString s;
		s=m_ListCtrl.GetItemText(i,6);
		//BOOL b=FALSE;
		do
		{
			if(s!=m_pSet->m_haoma)
				m_pSet->MoveNext();
			else
			{
				m_pSet->Delete();
				//b=TRUE;
				m_pSet->Requery();
				m_pSet->MoveFirst();
				m_ListCtrl.DeleteAllItems();
				this->show();
				break;
			}
		}while(!m_pSet->IsEOF());
	}
	// TODO: Add your control notification handler code here
	
}

void CMyView::OnModify() //bug:清空某字段后按ok再按cancle,在if中再次赋值,解决了问题,号码重复问题未解决
{
    	CModifyDlg dlg;
//		BOOL aaa=FALSE;
	    POSITION pos=m_ListCtrl.GetFirstSelectedItemPosition();
		int i=m_ListCtrl.GetNextSelectedItem(pos);
		//if((!m_ListCtrl.GetItemText(i,6).IsEmpty())&&(!m_ListCtrl.GetItemText(i,0).IsEmpty())&&(!m_ListCtrl.GetItemText(i,1).IsEmpty())&&(!m_ListCtrl.GetItemText(i,2).IsEmpty())&&(!m_ListCtrl.GetItemText(i,3).IsEmpty())&&(!m_ListCtrl.GetItemText(i,4).IsEmpty())&&(!m_ListCtrl.GetItemText(i,5).IsEmpty())&&(!m_ListCtrl.GetItemText(i,7).IsEmpty()))
		//{
		dlg.m_haoma=m_ListCtrl.GetItemText(i,6);
		dlg.m_xinming=m_ListCtrl.GetItemText(i,0);
		dlg.m_shengao=m_ListCtrl.GetItemText(i,1);
		dlg.m_tizhong=m_ListCtrl.GetItemText(i,2);
		dlg.m_nianling=m_ListCtrl.GetItemText(i,3);
		dlg.m_xiaolishijian=m_ListCtrl.GetItemText(i,4);
		dlg.m_weizhi=m_ListCtrl.GetItemText(i,5);
		dlg.m_jinqiushu=m_ListCtrl.GetItemText(i,7);
		UpdateData(FALSE);
		if(dlg.m_haoma.IsEmpty()&&dlg.m_jinqiushu.IsEmpty()&&dlg.m_nianling.IsEmpty()&&dlg.m_shengao.IsEmpty()&&dlg.m_tizhong.IsEmpty()&&dlg.m_weizhi.IsEmpty()&&dlg.m_xiaolishijian.IsEmpty())
		{
			MessageBox("请先选择一条记录!");
		}
		else if(dlg.DoModal()==IDOK)
		{m_pSet->MoveFirst();
		//UpdateData(TRUE);
		if(dlg.m_haoma.IsEmpty()||dlg.m_jinqiushu.IsEmpty()||dlg.m_nianling.IsEmpty()||dlg.m_shengao.IsEmpty()||dlg.m_tizhong.IsEmpty()||dlg.m_weizhi.IsEmpty()||dlg.m_xiaolishijian.IsEmpty())
		{
			MessageBox("记录字段不能为空!");
			dlg.m_haoma=m_ListCtrl.GetItemText(i,6);
	    	dlg.m_xinming=m_ListCtrl.GetItemText(i,0);
     		dlg.m_shengao=m_ListCtrl.GetItemText(i,1);
     		dlg.m_tizhong=m_ListCtrl.GetItemText(i,2);
    		dlg.m_nianling=m_ListCtrl.GetItemText(i,3);
    		dlg.m_xiaolishijian=m_ListCtrl.GetItemText(i,4);
    		dlg.m_weizhi=m_ListCtrl.GetItemText(i,5);
    		dlg.m_jinqiushu=m_ListCtrl.GetItemText(i,7);
  			CMyView::OnModify();

⌨️ 快捷键说明

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