📄 simsdlg.cpp
字号:
dlg.m_music=pCS->m_MUSIC;
dlg.m_sports=pCS->m_SPORTS;
dlg.m_computer=pCS->m_COMPUTER;
dlg.m_name=pCS->m_SDT_NAME;
dlg.m_no=pCS->m_SDT_SCORE;
dlg.m_bMode=false;
if(dlg.DoModal()==IDOK)
{
OnButtonDelete();
m_strSQL.Format("insert into STUDENT_SCORE values('%s','%s',%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)",\
dlg.m_no,dlg.m_name,\
dlg.m_chinese,dlg.m_math,dlg.m_english,dlg.m_phisicis,dlg.m_chemistry,dlg.m_organism,\
dlg.m_geography,dlg.m_history,dlg.m_politics,dlg.m_arts,dlg.m_music,dlg.m_sports,dlg.m_computer);
db.ExecuteSQL(m_strSQL);
m_strSQL.Format("select* from STUDENT_SCORE where SDT_NO='%s'",dlg.m_no);
reFreshScoreList(m_strSQL);
}
}
}
void CSIMSDlg::OnButtonDelete()
{
int choice=GetCheckedRadioButton(IDC_RADIO_INFORMATION,IDC_RADIO_SCORE);
if(!choice)
{
MessageBox("请选择删除类型:\n基本信息或学生成绩","删除提示");
return;
}
if(choice==IDC_RADIO_INFORMATION)
{
int i=m_searchResult.GetSelectionMark();
if(i==-1)
{
MessageBox("请选择一个学生再删除","提示");
return;
}
char buf[20];
strcpy(buf,m_searchResult.GetItemText(i,1));
CString str;
str.Format("确定删除'%s'及其所有信息吗?",buf);
if(MessageBox(str,"删除确认",1)==IDOK)
{
strcpy(buf,m_searchResult.GetItemText(i,0));
m_strSQL.Format("delete from STUDENT_SCORE where SDT_NO='%s'",buf);
db.ExecuteSQL(m_strSQL);
m_strSQL.Format("select* from STUDENT_SCORE");
reFreshScoreList(m_strSQL);
m_strSQL.Format("delete from STUDENT_INFORMATION where SDT_NO='%s'",buf);
db.ExecuteSQL(m_strSQL);
m_strSQL.Format("select* from STUDENT_INFORMATION");
reFreshSearchList();
}
}
if(choice==IDC_RADIO_SCORE)
{
int i=m_searchResult.GetSelectionMark();
CString str=m_searchResult.GetItemText(i,0);
if(i==-1)
{
i=m_scoreResult.GetSelectionMark();
str=m_scoreResult.GetItemText(i,0);
}
if(i==-1)
{
MessageBox("请选择一个学生或成绩再删除!","提示");
return;
}
CString strSQL;
strSQL.Format("delete from STUDENT_SCORE where SDT_NO='%s'",str);
db.ExecuteSQL(strSQL);
m_strSQL.Format("select* from STUDENT_SCORE");
reFreshScoreList(m_strSQL);
}
}
void CSIMSDlg::OnButtonAbout()
{
CAboutDlg dlg;
dlg.DoModal();
}
void CSIMSDlg::OnButtonHelp()
{
WinExec("hh.exe 学生信息管理系统.chm",SW_SHOW);
}
void CSIMSDlg::initSearchList()
{
m_searchResult.SetExtendedStyle(LVS_EX_GRIDLINES);
m_searchResult.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_searchResult.InsertColumn(0,"学号");
m_searchResult.InsertColumn(1,"姓名");
m_searchResult.InsertColumn(2,"专业");
m_searchResult.InsertColumn(3,"性别");
m_searchResult.InsertColumn(4,"生日");
m_searchResult.InsertColumn(5,"籍贯");
m_searchResult.InsertColumn(6,"国家");
m_searchResult.InsertColumn(7,"民族");
m_searchResult.InsertColumn(8,"身份证号");
m_searchResult.InsertColumn(9,"健康状况");
m_searchResult.InsertColumn(10,"入学时间");
m_searchResult.InsertColumn(11,"状态");
m_searchResult.InsertColumn(12,"家庭住址");
m_searchResult.InsertColumn(13,"联系电话");
m_searchResult.InsertColumn(14,"E_mail");
m_searchResult.InsertColumn(15,"备注");
m_searchResult.SetColumnWidth(0,70);
m_searchResult.SetColumnWidth(1,60);
m_searchResult.SetColumnWidth(2,100);
m_searchResult.SetColumnWidth(3,40);
m_searchResult.SetColumnWidth(4,90);
m_searchResult.SetColumnWidth(5,110);
m_searchResult.SetColumnWidth(6,110);
m_searchResult.SetColumnWidth(7,70);
m_searchResult.SetColumnWidth(8,150);
m_searchResult.SetColumnWidth(9,50);
m_searchResult.SetColumnWidth(10,90);
m_searchResult.SetColumnWidth(11,40);
m_searchResult.SetColumnWidth(12,200);
m_searchResult.SetColumnWidth(13,100);
m_searchResult.SetColumnWidth(14,150);
m_searchResult.SetColumnWidth(15,70);
m_strSQL.Format("select* from STUDENT_INFORMATION");
reFreshSearchList();
}
void CSIMSDlg::initScoreList()
{
m_scoreResult.SetExtendedStyle(LVS_EX_GRIDLINES);
m_scoreResult.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_scoreResult.InsertColumn(0,"学号");
m_scoreResult.InsertColumn(1,"姓名");
m_scoreResult.InsertColumn(2,"语文");
m_scoreResult.InsertColumn(3,"数学");
m_scoreResult.InsertColumn(4,"英语");
m_scoreResult.InsertColumn(5,"物理");
m_scoreResult.InsertColumn(6,"化学");
m_scoreResult.InsertColumn(7,"生物");
m_scoreResult.InsertColumn(8,"地理");
m_scoreResult.InsertColumn(9,"历史");
m_scoreResult.InsertColumn(10,"政治");
m_scoreResult.InsertColumn(11,"美术");
m_scoreResult.InsertColumn(12,"音乐");
m_scoreResult.InsertColumn(13,"体育");
m_scoreResult.InsertColumn(14,"计算机");
RECT rect;
m_scoreResult.GetWindowRect(&rect);
int width=rect.right-rect.left;
for(int i=0;i<=14;i++) m_scoreResult.SetColumnWidth(i,width/8);
m_scoreResult.SetColumnWidth(0,80);
CString strSQL;
strSQL.Format("select* from STUDENT_SCORE");
reFreshScoreList(strSQL);
}
void CSIMSDlg::OnDropdownCombo3()
{
CString mCompare=m_strCombo1;
UpdateData(true);
if(mCompare==m_strCombo1&&m_strCombo1!="") return;
int count=m_Combo3.GetCount();
for(int i=0;i<=count;i++) m_Combo3.DeleteString(0);
if(m_strCombo1=="")
{
m_Combo3.AddString("");
return;
}
m_Combo3.SetDroppedWidth(-1);
CInformationSet* pCI=new CInformationSet(&db);
CString str,strSQL;
if(m_strCombo1=="国家")
{
CCountrySet* pCC=new CCountrySet(&db);
strSQL.Format("select DISTINCT SDT_COUNTRY from STUDENT_INFORMATION");
pCI->Open(CRecordset::forwardOnly,strSQL);
while(!pCI->IsEOF())
{
pCI->GetFieldValue("SDT_COUNTRY",str);
if(atoi(str)==0)
{
pCI->MoveNext();
pCC->Close();
continue;
}
strSQL.Format("select* from COUNTRY_CODE where COUNTRY_CODE=%s",str);
pCC->Open(CRecordset::forwardOnly,strSQL);
str=pCC->m_COUNTRY_NAME_CN;
m_Combo3.AddString(str);
pCI->MoveNext();
pCC->Close();
}
return;
}
if(m_strCombo1=="专业")
{
CSpecializeSet* pCC=new CSpecializeSet(&db);
strSQL.Format("select DISTINCT SDT_SPECIALIZE from STUDENT_INFORMATION");
pCI->Open(CRecordset::forwardOnly,strSQL);
while(!pCI->IsEOF())
{
pCI->GetFieldValue("SDT_SPECIALIZE",str);
if(atoi(str)==0)
{
pCI->MoveNext();
pCC->Close();
continue;
}
strSQL.Format("select* from SPECIALIZE_CODE where SPECIALIZE_NO=%s",str);
pCC->Open(CRecordset::forwardOnly,strSQL);
str=pCC->m_SPECIALIZE_NAME;
m_Combo3.AddString(str);
pCI->MoveNext();
pCC->Close();
}
return;
}
if(m_strCombo1=="民族")
{
CNationSet* pCC=new CNationSet(&db);
strSQL.Format("select DISTINCT SDT_NATION from STUDENT_INFORMATION");
pCI->Open(CRecordset::forwardOnly,strSQL);
while(!pCI->IsEOF())
{
pCI->GetFieldValue("SDT_NATION",str);
if(atoi(str)==0)
{
pCI->MoveNext();
pCC->Close();
continue;
}
strSQL.Format("select* from NATION_CODE where NATION_CODE=%s",str);
pCC->Open(CRecordset::forwardOnly,strSQL);
str=pCC->m_NATION_NAME;
m_Combo3.AddString(str);
pCI->MoveNext();
pCC->Close();
}
return;
}
TranslateChineseToEnglish(m_strCombo1);
if(m_strCombo1=="SDT_ID")
{
m_Combo3.SetDroppedWidth(135);
}
strSQL.Format("select DISTINCT %s from STUDENT_INFORMATION",m_strCombo1);
pCI->Open(CRecordset::forwardOnly,strSQL);
CString varTime;
while(!pCI->IsEOF())
{
if(m_strCombo1=="SDT_STARTTIME")
{
int temp=0;
pCI->GetFieldValue(temp,varTime);
str.Format("%s-%s-%s",varTime.Left(4),varTime.Mid(5,2),varTime.Mid(8,2));
}
else
{
pCI->GetFieldValue(m_strCombo1,str);
}
m_Combo3.AddString(str);
pCI->MoveNext();
}
}
void CSIMSDlg::OnCancel()
{
db.Close();
CDialog::OnCancel();
}
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_brush.CreateSolidBrush(RGB(74,142,184));
return TRUE;
}
HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
pDC->SetBkMode(TRANSPARENT);
return m_brush;
}
void CSIMSDlg::reFreshSearchList()
{
m_searchResult.DeleteAllItems();
CString str,strSQL;
CInformationSet* pCI=new CInformationSet(&db);
CSpecializeSet* pCS=new CSpecializeSet(&db);
CCountrySet* pCC=new CCountrySet(&db);
CNationSet* pCN=new CNationSet(&db);
pCI->Open(CRecordset::forwardOnly,m_strSQL);//MessageBox(m_strSQL);
int i=0;
while(!pCI->IsEOF())
{
str=pCI->m_SDT_NO;
m_searchResult.InsertItem(i,str);
for(int k=1;k<15;k++)
{
pCI->GetFieldValue(k,str);
if(k==2)
{
strSQL.Format("select* from SPECIALIZE_CODE where SPECIALIZE_NO=%s",str);
pCS->Open(CRecordset::forwardOnly,strSQL);
str=pCS->m_SPECIALIZE_NAME;
pCS->Close();
}
if(k==4||k==10)
{
str.Format("%s-%s-%s",str.Left(4),str.Mid(5,2),str.Mid(8,2));
}
if(k==6)
{
strSQL.Format("select* from COUNTRY_CODE where COUNTRY_CODE=%s",str);
pCC->Open(CRecordset::forwardOnly,strSQL);
str=pCC->m_COUNTRY_NAME_CN;
pCC->Close();
}
if(k==7)
{
strSQL.Format("select* from NATION_CODE where NATION_CODE=%s",str);
pCN->Open(CRecordset::forwardOnly,strSQL);
str=pCN->m_NATION_NAME;
pCN->Close();
}
m_searchResult.SetItemText(i,k,str);
}
pCI->MoveNext();
i++;
}
pCI->Close();
pCS->Close();
pCC->Close();
pCN->Close();
delete pCI;
delete pCS;
delete pCC;
delete pCN;
}
CString CSIMSDlg::TranslateChineseToEnglish(CString& str)
{
if(str=="学号") str="SDT_NO";
if(str=="姓名") str="SDT_NAME";
if(str=="专业") str="SDT_SPECIALIZE";
if(str=="性别") str="SDT_GENDER";
if(str=="生日") str="SDT_BIRTHDRY";
if(str=="籍贯") str="SDT_HOMETOWN";
if(str=="国家") str="SDT_COUNTRY";
if(str=="民族") str="SDT_NATION";
if(str=="身份证号") str="SDT_ID";
if(str=="健康状况") str="SDT_HEALTH";
if(str=="入学时间") str="SDT_STARTTIME";
if(str=="状态") str="SDT_STATE";
if(str=="家庭住址") str="SDT_HOMEADDRESS";
if(str=="联系电话") str="SDT_TELENO";
if(str=="E-mail") str="SDT_E-mail";
if(str=="备注") str="SDT_MEN";
return str;
}
void CSIMSDlg::OnDropdownCombo1()
{
m_Combo3.SetCurSel(-1);
}
void CSIMSDlg::reFreshScoreList(CString strSQL)
{
m_scoreResult.DeleteAllItems();
CScoreSet* pCS=new CScoreSet(&db);
pCS->Open(CRecordset::forwardOnly,strSQL);
int i=0;
int temp=0;
CString str;
while(!pCS->IsEOF())
{
pCS->GetFieldValue(temp,str);
m_scoreResult.InsertItem(i,str);
for(int k=1;k<=14;k++)
{
pCS->GetFieldValue(k,str);
if(atoi(str)==-1) str.Empty();
m_scoreResult.SetItemText(i,k,str);
}
pCS->MoveNext();
i++;
}
}
void CSIMSDlg::OnSetFont(CFont* pFont)
{
// TODO: Add your specialized code here and/or call the base class
CDialog::OnSetFont(pFont);
}
void CSIMSDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int choice;
choice=m_searchResult.GetSelectionMark();
CString str;
str=m_searchResult.GetItemText(choice,0);
CString strSQL;
strSQL.Format("select* from STUDENT_SCORE where SDT_NO='%s'",str);
reFreshScoreList(strSQL);
*pResult = 0;
}
void CSIMSDlg::OnDropdownCombo2()
{
// TODO: Add your control notification handler code here
for(int i=0;i<=4;i++) m_Combo2.DeleteString(0);
CString m_strCombo1;
m_Combo1.GetWindowText(m_strCombo1);
m_Combo2.AddString("=");
m_Combo2.SetCurSel(0);
if(m_strCombo1=="国家"||m_strCombo1=="民族"||m_strCombo1=="专业")
{
m_Combo2.AddString("<>");
}
if(m_strCombo1=="学号"||m_strCombo1=="身份证号")
{
m_Combo2.AddString(">");
m_Combo2.AddString("<");
m_Combo2.AddString("<>");
}
}
void CSIMSDlg::OnCloseupCombo1()
{
// TODO: Add your control notification handler code here
m_strCombo2="=";
m_Combo2.SetCurSel(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -