page1.cpp

来自「大学班务管理系统」· C++ 代码 · 共 335 行

CPP
335
字号
// Page1.cpp : implementation file
//

#include "stdafx.h"
#include "教学管理信息系统.h"
#include "Page1.h"
#include "teacherset.h"
#include "Page2.h"
#include "Public.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPage1 property page

IMPLEMENT_DYNCREATE(CPage1, CPropertyPage)

CPage1::CPage1() : CPropertyPage(CPage1::IDD)
{
	//{{AFX_DATA_INIT(CPage1)
	m_studyara = _T("");
	m_teachername = _T("");
	m_teachernum = _T("");
	m_xibie = _T("");
	m_zhicheng = _T("");
	//}}AFX_DATA_INIT
}

CPage1::~CPage1()
{
}

void CPage1::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPage1)
	DDX_Control(pDX, IDC_LISTteacher, m_lsteacher);
	DDX_Text(pDX, IDC_EDITstudyara, m_studyara);
	DDX_Text(pDX, IDC_EDITteachername, m_teachername);
	DDX_Text(pDX, IDC_EDITteachernum, m_teachernum);
	DDX_Text(pDX, IDC_EDITxibie, m_xibie);
	DDX_Text(pDX, IDC_EDITzhicheng, m_zhicheng);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPage1, CPropertyPage)
	//{{AFX_MSG_MAP(CPage1)
	ON_BN_CLICKED(IDC_BUTTONaddteacher, OnBUTTONaddteacher)
	ON_NOTIFY(NM_CLICK, IDC_LISTteacher, OnClickLISTteacher)
	ON_BN_CLICKED(IDC_BUTTONupdata, OnBUTTONupdata)
	ON_BN_CLICKED(IDC_BUTTONdelteacher, OnBUTTONdelteacher)
	ON_NOTIFY(LVN_COLUMNCLICK, IDC_LISTteacher, OnColumnclickLISTteacher)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPage1 message handlers

void CPage1::OnBUTTONaddteacher() 
{
	// TODO: Add your control notification handler code here
		UpdateData(TRUE); 

try{
	if(m_teacherset.IsOpen())
			m_teacherset.Close();
	 m_teacherset.Open(CRecordset::dynaset,NULL,CRecordset::none);

	 m_teacherset.MoveLast();


    m_teacherset.AddNew();
   if(m_teachernum.IsEmpty())
   {
	   MessageBox("教职工号不能为空!");
   }


    m_teacherset.m_teachernum=m_teachernum;
    m_teacherset.m_teachername=m_teachername;
	m_teacherset.m_xibie=m_xibie;
	m_teacherset.m_zhicheng=m_zhicheng;
    m_teacherset.m_studayara=m_studyara;


    m_teacherset.Update();
    m_teacherset.Requery();
    m_teacherset.Close();
    m_lsteacher.DeleteAllItems();
    this->initctrldata();
	 SetDlgItemText(IDC_EDITteachernum,""); 
	 SetDlgItemText(IDC_EDITteachername,"");
	 SetDlgItemText(IDC_EDITxibie,"");
	 SetDlgItemText(IDC_EDITzhicheng,"");
	 SetDlgItemText(IDC_EDITstudyara,"");



}
catch(CDBException*e)
	{
		e->ReportError();
		return;
	}
}

BOOL CPage1::PreTranslateMessage(MSG* pMsg) 
{
	// TODO: Add your specialized code here and/or call the base class
if(pMsg->message==WM_KEYDOWN)
   return 0;
    return CDialog::PreTranslateMessage(pMsg);
}



BOOL CPage1::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
   if(CPublic::or==2)
    {
	GetDlgItem(IDC_BUTTONaddteacher)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTONupdata)->EnableWindow(FALSE);
	GetDlgItem(IDC_BUTTONdelteacher)->EnableWindow(FALSE);
	}
	
	// TODO: Add extra initialization here

		int i;
	DWORD dwNewStyle= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP |
		LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT;
		m_lsteacher.SetExtendedStyle(dwNewStyle);//(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_lsteacher.InsertColumn(0,"教师号",LVCFMT_CENTER);
	m_lsteacher.InsertColumn(1,"教师名",LVCFMT_CENTER);
	m_lsteacher.InsertColumn(2,"职称",LVCFMT_CENTER);
	m_lsteacher.InsertColumn(3,"所属系别",LVCFMT_CENTER);
	m_lsteacher.InsertColumn(4,"研究方向",LVCFMT_CENTER);

    this->initctrldata();
	for(i=0;i<5;i++)
	m_lsteacher.SetColumnWidth(i,80);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CPage1::insertstuinfo(CString teachernum,CString teachername,CString 
								zhicheng,CString xibie,CString studyara)
{
	int index=m_lsteacher.GetItemCount();
	LV_ITEM lvitem;
	lvitem.mask=LVIF_TEXT;
	lvitem.iItem=index;
	lvitem.iSubItem=0;
	CString temp;

	temp.Format("%s");
    lvitem.pszText=(char*)(LPCTSTR)temp;

	m_lsteacher.InsertItem(&lvitem);

	m_lsteacher.SetItemText(index,0,teachernum);
	m_lsteacher.SetItemText(index,1,teachername);
    m_lsteacher.SetItemText(index,2,zhicheng);
	m_lsteacher.SetItemText(index,3,xibie);
	m_lsteacher.SetItemText(index,4,studyara);

	}




void CPage1::initctrldata()
{
	 CDatabase m_database;
	   
	if(!m_database.Open(NULL,FALSE,FALSE,"ODBC;DSN=教务课程信息管理数据库"))
	{
		AfxMessageBox("连接数据库失败");
	}

	try{
        m_teacherset.Open(CRecordset::dynaset,NULL,CRecordset::none);
		while(!m_teacherset.IsEOF())
		{
		CString teachernum,teachername,zhicheng,xibie,studyara;


		m_teacherset.GetFieldValue((short)0,teachernum);
        m_teacherset.GetFieldValue(1,teachername);
		m_teacherset.GetFieldValue(2,zhicheng);
		m_teacherset.GetFieldValue(3,xibie);
	    m_teacherset.GetFieldValue(4,studyara);

        insertstuinfo(teachernum,teachername,zhicheng,xibie,studyara);
		m_teacherset.MoveNext();
	}
	m_teacherset.Close();
	}
	catch(CDBException*e)
	{
		e->ReportError();
	return;
	}

}

void CPage1::OnClickLISTteacher(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	 nitem=m_lsteacher.GetNextItem(-1,LVNI_SELECTED);
	if(nitem!=-1)
	{
		m_teachernum=m_lsteacher.GetItemText(nitem,0);
        m_teachername=m_lsteacher.GetItemText(nitem,1);
		m_zhicheng=m_lsteacher.GetItemText(nitem,2);
		m_xibie=m_lsteacher.GetItemText(nitem,3);
		m_studyara=m_lsteacher.GetItemText(nitem,4);

         UpdateData(FALSE);
	}

	*pResult = 0;
}

void CPage1::OnBUTTONupdata() 
{
	// TODO: Add your control notification handler code here
	 if(m_teacherset.IsOpen())
	   m_teacherset.Close();
	 m_teacherset.Open(CRecordset::dynaset,NULL,CRecordset::none);

	m_teacherset.MoveFirst();
	 for(int i=0;i<=nitem;i++)
	 {
		 if(i==nitem)
		 {
    UpdateData(TRUE); 
	m_teacherset.Edit();
    m_teacherset.m_teachernum=m_teachernum;
    m_teacherset.m_teachername=m_teachername;
	m_teacherset.m_xibie=m_xibie;
	m_teacherset.m_zhicheng=m_zhicheng;
    m_teacherset.m_studayara=m_studyara;
    m_teacherset.Update();
    m_teacherset.Requery();
    m_teacherset.Close();
    m_lsteacher.DeleteAllItems();
    initctrldata(); 

	}
		 else
		 {
			 m_teacherset.MoveNext();
			 
		 }
 }
}

void CPage1::OnBUTTONdelteacher() 
{
	// TODO: Add your control notification handler code here
		 if(m_teacherset.IsOpen())
	   m_teacherset.Close();
	 m_teacherset.Open(CRecordset::dynaset,NULL,CRecordset::none);

	m_teacherset.MoveFirst();
	 for(int i=0;i<=nitem;i++)
	 {
		 if(i==nitem)
		 {
    UpdateData(TRUE); 
    m_teacherset.Delete();
    m_teacherset.Requery();
    m_teacherset.Close();
    m_lsteacher.DeleteAllItems();
    initctrldata(); 
	SetDlgItemText(IDC_EDITteachernum,""); 
	 SetDlgItemText(IDC_EDITteachername,"");
	 SetDlgItemText(IDC_EDITxibie,"");
	 SetDlgItemText(IDC_EDITzhicheng,"");
	 SetDlgItemText(IDC_EDITstudyara,"");
	}
		 else
		 {
			 m_teacherset.MoveNext();
			 
		 }
 }
}
//单击列表框表头实现排序
void CPage1::OnColumnclickLISTteacher(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	int i=pNMListView->iSubItem;
    if(m_teacherset.IsOpen())
	m_teacherset.Close();
	m_teacherset.Open(CRecordset::dynaset,NULL,CRecordset::none);
	if(i==0)
	{
	m_teacherset.m_strSort="teachernum";
	m_teacherset.Close();
    m_lsteacher.DeleteAllItems();
	initctrldata();}
	if(i==1)
	{
	m_teacherset.m_strSort="teachername";
	m_teacherset.Close();
    m_lsteacher.DeleteAllItems();
	initctrldata();}
	if(i==2)
	{
	m_teacherset.m_strSort="zhicheng";
	m_teacherset.Close();
    m_lsteacher.DeleteAllItems();
	initctrldata();}
	if(i==3)
	{
	m_teacherset.m_strSort="xibie";
	m_teacherset.Close();
    m_lsteacher.DeleteAllItems();
	initctrldata();}
	if(i==4)
	{
	m_teacherset.m_strSort="studayara";
	m_teacherset.Close();
    m_lsteacher.DeleteAllItems();
	initctrldata();}
	*pResult = 0;
}

⌨️ 快捷键说明

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