📄 teacherlist.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 + -