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

📄 teacherlist.cpp

📁 课程设计的简单Access学生数据库系统
💻 CPP
字号:
// TeacherList.cpp: implementation of the TeacherList class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "SM.h"
#include "Teacher.h"
#include "TeacherList.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

//##ModelId=40A481F1029F
TeacherList::TeacherList(CListCtrl * pList)
	:BaseList(pList), TD(&theDatabase)
{
	TD.Open("Teacher");
	RS.Open(&TD);
}

//##ModelId=40A481F102A1
TeacherList::~TeacherList()
{
	RS.Close();
	TD.Close();
}

//##ModelId=40A481F10281
void TeacherList::Load()
{
	pList->DeleteAllItems();
	int i = 0;
	LoadData();
	for(vector<Teacher>::iterator iter=Teachers.begin(); iter!=Teachers.end(); iter++, i++)
	{
		CString s;
		s.Format("%ld", iter->ID);
		pList->InsertItem(i, s);
		pList->SetItem(i, 1, LVIF_TEXT, iter->Name, 0, 0, 0, 0);
		pList->SetItem(i, 2, LVIF_TEXT, iter->Sex?_T("男"):_T("女"), 0, 0, 0, 0);
		pList->SetItem(i, 3, LVIF_TEXT, iter->Tele, 0, 0, 0, 0);
		pList->SetItem(i, 4, LVIF_TEXT, iter->Mail, 0, 0, 0, 0);
		pList->SetItemData(i, i);
	}
	pList->SetItemState(0, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
	
}

//##ModelId=40A481F10274
void TeacherList::Delete(long ID)
{
	int i=0;
	for(vector<Teacher>::iterator iter=Teachers.begin(); iter!=Teachers.end(); iter++, i++)
	{
		if(iter->ID == ID)
		{
			pList->DeleteItem(i);
			Teachers.erase(iter);
			pList->SetItemState(i-1, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
			break;
		}
	}
}

//##ModelId=40A481F10272
void TeacherList::AddNew(long ID)
{
	Teacher t;
	t.ID = ID;
	t.Load(&RS);
	Teachers.push_back(t);
	vector<Teacher>::iterator iter=Teachers.end()-1;
	int i = pList->GetItemCount();
	CString s;
	s.Format("%ld", iter->ID);
	pList->InsertItem(i, s);
	pList->SetItem(i, 1, LVIF_TEXT, iter->Name, 0, 0, 0, 0);
	pList->SetItem(i, 2, LVIF_TEXT, iter->Sex?_T("男"):_T("女"), 0, 0, 0, 0);
	pList->SetItem(i, 3, LVIF_TEXT, iter->Tele, 0, 0, 0, 0);
	pList->SetItem(i, 4, LVIF_TEXT, iter->Mail, 0, 0, 0, 0);
	pList->SetItemData(i, i);
	pList->SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
}

//##ModelId=40A481F10264
void TeacherList::Update(long ID)
{
	int i=0;
	for(vector<Teacher>::iterator iter=Teachers.begin(); iter!=Teachers.end(); iter++, i++)
	{
		if(iter->ID == ID)
		{
			iter->Load(&RS);
			pList->SetItem(i, 1, LVIF_TEXT, iter->Name, 0, 0, 0, 0);
			pList->SetItem(i, 2, LVIF_TEXT, iter->Sex?_T("男"):_T("女"), 0, 0, 0, 0);
			pList->SetItem(i, 3, LVIF_TEXT, iter->Tele, 0, 0, 0, 0);
			pList->SetItem(i, 4, LVIF_TEXT, iter->Mail, 0, 0, 0, 0);
			break;
		}
	}	
}

//##ModelId=40A481F10263
Teacher & TeacherList::GetSelect()
{
	POSITION pos;
	pos = pList->GetFirstSelectedItemPosition();
	if(pos)
	{
		return Teachers[pList->GetItemData(pList->GetNextSelectedItem(pos))];
	}
	else
		return Teachers[0];
}

//##ModelId=40A481F10261
void TeacherList::SetSelect(long ID)
{
	int i=0;
	for(vector<Teacher>::iterator iter=Teachers.begin(); iter!=Teachers.end(); iter++, i++)
	{
		if(iter->ID == ID)
		{
			pList->SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
			break;
		}
	}	
}

//##ModelId=40A481F10253
void TeacherList::Search(CString &s)
{
	int i=0;
/*	POSITION pos;
	pos = pList->GetFirstSelectedItemPosition();
	if(pos)
	{
		return Teachers[pList->GetItemData(pList->GetNextSelectedItem(pos))];
	}*/
	for(vector<Teacher>::iterator iter=Teachers.begin(); iter!=Teachers.end(); iter++, i++)
	{
		if(iter->Name == s)
		{
			pList->SetItemState(i, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
			break;
		}
	}	
}

//##ModelId=40A481F10251
void TeacherList::SearchID(long ID)
{
	CString s;
	s.Format("%ld", ID);
	SetSelected(Find(0, s));
}

//##ModelId=40A481F10245
void TeacherList::Init()
{
	pList->InsertColumn(0, _T("ID"), LVCFMT_LEFT, 46);
	pList->InsertColumn(1, _T("姓名"), LVCFMT_LEFT, 80);
	pList->InsertColumn(2, _T("性别"), LVCFMT_LEFT, 40);
	pList->InsertColumn(3, _T("电话"), LVCFMT_LEFT, 100);
	pList->InsertColumn(4, _T("EMail"), LVCFMT_LEFT, 135);
}

//##ModelId=40A481F10244
void TeacherList::LoadData()
{
	Teachers.clear();
	RS.MoveFirst();
	while(!RS.IsEOF())
	{
		Teachers.push_back(
			Teacher(RS.GetFieldValue(_T("ID")).lVal,
					V_BSTRT(&RS.GetFieldValue(_T("Name"))),
					RS.GetFieldValue(_T("Sex")).boolVal==-1,
					V_BSTRT(&RS.GetFieldValue(_T("Tele"))),
					V_BSTRT(&RS.GetFieldValue(_T("Email")))
					)
						  );
		RS.MoveNext();
	}
}

//##ModelId=40A481F10243
void TeacherList::InitForTeachingSet()
{
	pList->InsertColumn(0, _T("ID"), LVCFMT_LEFT, 35);
	pList->InsertColumn(1, _T("姓名"), LVCFMT_LEFT, 100);
	pList->InsertColumn(2, _T("性别"), LVCFMT_LEFT, 50);
}

//##ModelId=40A481F10242
void TeacherList::LoadForTeachingSet()
{
	pList->DeleteAllItems();
	int i = 0;
	LoadData();
	for(vector<Teacher>::iterator iter=Teachers.begin(); iter!=Teachers.end(); iter++, i++)
	{
		CString s;
		s.Format("%ld", iter->ID);
		pList->InsertItem(i, s);
		pList->SetItem(i, 1, LVIF_TEXT, iter->Name, 0, 0, 0, 0);
		pList->SetItem(i, 2, LVIF_TEXT, iter->Sex?_T("男"):_T("女"), 0, 0, 0, 0);
		pList->SetItemData(i, i);
	}
	pList->SetItemState(0, LVIS_SELECTED|LVIS_FOCUSED, LVIS_SELECTED|LVIS_FOCUSED);
}

⌨️ 快捷键说明

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