📄 subform1.cpp
字号:
m_studentset.MoveNext();
}while(!m_studentset.IsEOF());
m_classset.MoveNext();
}while(!m_classset.IsEOF());
m_studentset.Close();
m_classset.Close();
m_courseset.Close();
m_gradeset.Close();
int num;
num=m_listsearch.GetItemCount();
if(num==0)
MessageBox("没有记录");
}
////////////////////////////////////////
void CSubForm1::OnButtonsearch()
{
UpdateData(TRUE);
m_studentset.m_strFilter="";
m_classset.m_strFilter="";
m_courseset.m_strFilter="";
CString currentzhuanyie;
CString currentyear;
CString currentclass;
CString currentcourse,str;
CString strclass,strzhuanyie,stryear,strcourse,searchno,searchname;
if(m_comboyear.GetCurSel()>=0)
m_comboyear.GetLBText(m_comboyear.GetCurSel(),currentyear);
if(m_combozhuanyie.GetCurSel()>=0)
m_combozhuanyie.GetLBText(m_combozhuanyie.GetCurSel(),currentzhuanyie);
if(m_comboclass.GetCurSel()>=0)
m_comboclass.GetLBText(m_comboclass.GetCurSel(),currentclass);
if(m_combocourse.GetCurSel()>=0)
m_combocourse.GetLBText(m_combocourse.GetCurSel(),currentcourse);
strzhuanyie="专业名";
strclass="班级名";
stryear="学期";
strcourse="课程名";
searchno="学号";
searchname="姓名";
if(currentzhuanyie=="" && currentclass=="")
{
m_classset.m_strFilter="";
}
else if(currentzhuanyie!="" && currentclass=="")
{
m_classset.m_strFilter=strzhuanyie+"='"+currentzhuanyie+"'";
}
else if(currentzhuanyie=="" && currentclass!="")
{
m_classset.m_strFilter=strclass + "='" + currentclass + "'";
}
else
{
m_classset.m_strFilter=strzhuanyie + "='" + currentzhuanyie + "'" + "AND " + strclass + "='" + currentclass + "'";
}
if(currentyear=="" && currentcourse=="")
{
m_courseset.m_strFilter="";
}
else if(currentyear!="" && currentcourse=="")
{
m_courseset.m_strFilter=stryear + "='" + currentyear + "'";
}
else if(currentyear=="" && currentcourse!="")
{
m_courseset.m_strFilter=strcourse + "='" + currentcourse + "'";
}
else
{
str=stryear + "='" + currentyear+"'" + "AND " + strcourse + "='" + currentcourse+"'";
m_courseset.m_strFilter=str;
}
BOOL studentcunzai=FALSE;
if(m_searchname=="" && m_searchno=="")
{
m_studentset.m_strFilter="";
}
else if(m_searchname!="" && m_searchno=="")
{
m_studentset.Open();
m_studentset.MoveFirst();
do
{
if(m_studentset.m_column2==m_searchname)
{
studentcunzai=TRUE;
break;
}
m_studentset.MoveNext();
}while(!m_studentset.IsEOF());
m_studentset.Close();
if(studentcunzai)
{
m_studentset.m_strFilter=searchname + "='" + m_searchname + "'";
}
else
{
MessageBox("没有这个学生");
return;
}
}
else if(m_searchname=="" && m_searchno!="")
{
m_studentset.Open();
m_studentset.MoveFirst();
do
{
if(m_studentset.m_column1==m_searchno)
{
studentcunzai=TRUE;
break;
}
m_studentset.MoveNext();
}while(!m_studentset.IsEOF());
m_studentset.Close();
if(studentcunzai)
{
m_studentset.m_strFilter=searchno + "='" + m_searchno + "'";
}
else
{
MessageBox("没有这个学生");
return;
}
}
else
{
m_studentset.Open();
m_studentset.MoveFirst();
do
{
if(m_studentset.m_column2==m_searchname && m_studentset.m_column1==m_searchno)
{
studentcunzai=TRUE;
break;
}
m_studentset.MoveNext();
}while(!m_studentset.IsEOF());
m_studentset.Close();
if(studentcunzai)
{
m_studentset.m_strFilter=searchname + "='" + m_searchname + "'" + "AND " + searchno + "='" + m_searchno + "'";
}
else
{
MessageBox("学号与姓名不符");
return;
}
}
/////////////
m_studentset.Open();
m_classset.Open();
m_courseset.Open();
m_gradeset.Open();
BOOL courseno;
m_listsearch.DeleteAllItems();
CString grade,coursename,courseyear;
int j=0;
m_classset.MoveFirst();
do
{
m_studentset.MoveFirst();
do
{
if(m_studentset.m_column3==m_classset.m_column1)
{
m_gradeset.MoveFirst();
do
{
courseno=FALSE;
if(m_gradeset.m_column1==m_studentset.m_column1)
{
m_courseset.MoveFirst();
do
{
if(m_gradeset.m_column2==m_courseset.m_column1)
{
courseno=TRUE;
coursename=m_courseset.m_column2;
courseyear=m_courseset.m_column4;
break;
}
m_courseset.MoveNext();
}while (!m_courseset.IsEOF());
if(courseno)
{
m_listsearch.InsertItem(j,m_gradeset.m_column1,0);
m_listsearch.SetItemText(j,1,m_studentset.m_column2);
m_listsearch.SetItemText(j,2,coursename);
m_listsearch.SetItemText(j,6,courseyear);
grade.Format("%4.2f",double(m_gradeset.m_column3));
m_listsearch.SetItemText(j,3,grade);
m_listsearch.SetItemText(j,4,m_classset.m_column2);
m_listsearch.SetItemText(j,5,m_classset.m_column3);
j++;
}
}
m_gradeset.MoveNext();
}while(!m_gradeset.IsEOF());
}
m_studentset.MoveNext();
}while(!m_studentset.IsEOF());
m_classset.MoveNext();
}while(!m_classset.IsEOF());
m_studentset.Close();
m_classset.Close();
m_courseset.Close();
m_gradeset.Close();
if(m_listsearch.GetItemCount==0)
MessageBox("暂无记录");
}
BOOL CSubForm1::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
return CFormView::PreCreateWindow(cs);
}
void CSubForm1::OutputReport(CDC *pDC, CPrintInfo *pInfo)
{
CString line;
TEXTMETRIC metrics;
int y=100;
CFont TitleFont,HeadingFont,DetailFont,FooterFont;
int TabStops[]={700,1000,1300};
int FooterTabStops[]={350,650};
TitleFont.CreateFont(72,0,0,0,FW_BOLD,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN,"Times New Romans");
HeadingFont.CreateFont(54,0,0,0,FW_BOLD,FALSE,TRUE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN,"Times New Romans");
DetailFont.CreateFont(48,0,0,0,FW_NORMAL,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN,"Times New Romans");
FooterFont.CreateFont(36,0,0,0,FW_NORMAL,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH | FF_ROMAN,"Times New Romans");
CFont* OldFont=pDC->SelectObject(&TitleFont);
pDC->GetTextMetrics(&metrics);
int lineheight=metrics.tmHeight+metrics.tmExternalLeading;
//设置行高
y+=lineheight;
CString currentzhuanyie;
CString currentyear;
CString currentclass;
CString currentcourse,str;
if(m_comboyear.GetCurSel()>=0)
m_comboyear.GetLBText(m_comboyear.GetCurSel(),currentyear);
if(m_combozhuanyie.GetCurSel()>=0)
m_combozhuanyie.GetLBText(m_combozhuanyie.GetCurSel(),currentzhuanyie);
if(m_comboclass.GetCurSel()>=0)
m_comboclass.GetLBText(m_comboclass.GetCurSel(),currentclass);
if(m_combocourse.GetCurSel()>=0)
m_combocourse.GetLBText(m_combocourse.GetCurSel(),currentcourse);
if(currentyear!="")
currentyear+="学期";
if(currentzhuanyie!="")
currentzhuanyie+="专业";
if(currentclass!="")
currentclass+="班";
str=currentyear+currentzhuanyie+currentclass+currentcourse+"成绩表";
if(str=="")
str="成绩表";
pDC->TextOut(800-str.GetLength()*7,100,str);
//设置字体
pDC->SelectObject(&HeadingFont);
pDC->GetTextMetrics(&metrics);
//设置格式
line.Format("%s\t%s\t%s\t%s","学号","姓名","课程","成绩");
//输出
pDC->TabbedTextOut(300,y,line,3,TabStops,0);
int num=m_listsearch.GetItemCount();
if(num==0)
return;
lineheight=metrics.tmHeight+metrics.tmExternalLeading;
y+=lineheight;
pDC->SelectObject(&DetailFont);
pDC->GetTextMetrics(&metrics);
//计算行高
lineheight=metrics.tmHeight+metrics.tmExternalLeading;
TCHAR currentstudentno[20],currentstudentname[10],currentcoursename[20],currentcoursegrade[10];
for(int i=0;i<m_listsearch.GetItemCount();i++)
{
if(pInfo && abs(y)>2200)
{
pInfo->SetMaxPage(pInfo->m_nCurPage+1);
break;
}
m_listsearch.GetItemText(i,0,currentstudentno,20);
m_listsearch.GetItemText(i,1,currentstudentname,10);
m_listsearch.GetItemText(i,2,currentcoursename,20);
m_listsearch.GetItemText(i,3,currentcoursegrade,10);
line.Format("%s\t%s\t%s\t%s",currentstudentno,currentstudentname,currentcoursename, currentcoursegrade);
pDC->TabbedTextOut(300,y,line,3,TabStops,0);
y+=lineheight;
}
if(pInfo)
{
pDC->SelectObject(&FooterFont);
line.Format(str+"第%d页",pInfo->m_nCurPage);
pDC->TabbedTextOut(50,2300,line,2,FooterTabStops,0);
}
pDC->SelectObject(OldFont);
}
void CSubForm1::OnButtonrefresh()
{
// TODO: Add your control notification handler code here
m_studentset.m_strFilter="";
m_classset.m_strFilter="";
m_courseset.m_strFilter="";
m_gradeset.m_strFilter="";
m_studentset.Open();
m_classset.Open();
m_courseset.Open();
m_gradeset.Open();
BOOL courseno;
m_listsearch.DeleteAllItems();
CString grade,coursename,courseyear;
int j=0;
m_classset.MoveFirst();
do
{
m_studentset.MoveFirst();
do
{
if(m_studentset.m_column3==m_classset.m_column1)
{
m_gradeset.MoveFirst();
do
{
courseno=FALSE;
if(m_gradeset.m_column1==m_studentset.m_column1)
{
m_courseset.MoveFirst();
do
{
if(m_gradeset.m_column2==m_courseset.m_column1)
{
courseno=TRUE;
coursename=m_courseset.m_column2;
courseyear=m_courseset.m_column4;
break;
}
m_courseset.MoveNext();
}while (!m_courseset.IsEOF());
if(courseno)
{
m_listsearch.InsertItem(j,m_gradeset.m_column1,0);
m_listsearch.SetItemText(j,1,m_studentset.m_column2);
m_listsearch.SetItemText(j,2,coursename);
m_listsearch.SetItemText(j,6,courseyear);
grade.Format("%4.2f",double(m_gradeset.m_column3));
m_listsearch.SetItemText(j,3,grade);
m_listsearch.SetItemText(j,4,m_classset.m_column2);
m_listsearch.SetItemText(j,5,m_classset.m_column3);
j++;
}
}
m_gradeset.MoveNext();
}while(!m_gradeset.IsEOF());
}
m_studentset.MoveNext();
}while(!m_studentset.IsEOF());
m_classset.MoveNext();
}while(!m_classset.IsEOF());
m_studentset.Close();
m_classset.Close();
m_courseset.Close();
m_gradeset.Close();
int num;
num=m_listsearch.GetItemCount();
if(num==0)
MessageBox("没有记录");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -