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 + -
显示快捷键?