📄 subform2.cpp
字号:
m_listsort.SetItemText(j,3,grade);
m_listsort.SetItemText(j,4,m_classset.m_column2);
m_listsort.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_listsort.GetItemCount==0)
MessageBox("无及格人数");
//及格人数
CString jige;
jige.Format("及格人数: %d",m_listsort.GetItemCount());
m_jige.SetWindowText(jige);
}
void CSubForm2::OnButtonbujige()
{
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;
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="课程名";
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;
}
/////////////
m_studentset.Open();
m_classset.Open();
m_courseset.Open();
m_gradeset.Open();
BOOL courseno;
m_listsort.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)
{
if(m_gradeset.m_column3<60)
{
m_listsort.InsertItem(j,m_gradeset.m_column1,0);
m_listsort.SetItemText(j,1,m_studentset.m_column2);
m_listsort.SetItemText(j,2,coursename);
m_listsort.SetItemText(j,6,courseyear);
grade.Format("%4.2f",double(m_gradeset.m_column3));
m_listsort.SetItemText(j,3,grade);
m_listsort.SetItemText(j,4,m_classset.m_column2);
m_listsort.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_listsort.GetItemCount();
//及格人数
CString bujige;
bujige.Format("不及格人数: %d",m_listsort.GetItemCount());
m_bujige.SetWindowText(bujige);
if(num==0)
MessageBox("没有不及格人数",MB_OK);
}
void CSubForm2::OnButtonzongshu()
{
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;
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="课程名";
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;
}
/////////////
m_studentset.Open();
m_classset.Open();
m_courseset.Open();
m_gradeset.Open();
BOOL courseno;
m_listsort.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_listsort.InsertItem(j,m_gradeset.m_column1,0);
m_listsort.SetItemText(j,1,m_studentset.m_column2);
m_listsort.SetItemText(j,2,coursename);
m_listsort.SetItemText(j,6,courseyear);
grade.Format("%4.2f",double(m_gradeset.m_column3));
m_listsort.SetItemText(j,3,grade);
m_listsort.SetItemText(j,4,m_classset.m_column2);
m_listsort.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_listsort.GetItemCount();
if(num==0)
MessageBox("没有记录");
CString renshu;
renshu.Format("总人数: %d ",m_listsort.GetItemCount());
m_zongshu.SetWindowText(renshu);
}
void CSubForm2::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: Add your specialized code here and/or call the base class
// CFormView::OnBeginPrinting(pDC, pInfo);
}
void CSubForm2::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: Add your specialized code here and/or call the base class
// CFormView::OnEndPrinting(pDC, pInfo);
}
BOOL CSubForm2::OnPreparePrinting(CPrintInfo* pInfo)
{
// TODO: call DoPreparePrinting to invoke the Print dialog box
return DoPreparePrinting(pInfo);
// return CFormView::OnPreparePrinting(pInfo);
}
void CSubForm2::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: Add your specialized code here and/or call the base class
OutputReport(pDC,pInfo);
// CFormView::OnPrint(pDC, pInfo);
}
void CSubForm2::OnEndPrintPreview(CDC* pDC, CPrintInfo* pInfo, POINT point, CPreviewView* pView)
{
// TODO: Add your specialized code here and/or call the base class
CFormView::OnEndPrintPreview(pDC, pInfo, point, pView);
}
void CSubForm2::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_listsort.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_listsort.GetItemCount();i++)
{
if(pInfo && abs(y)>2200)
{
pInfo->SetMaxPage(pInfo->m_nCurPage+1);
break;
}
m_listsort.GetItemText(i,0,currentstudentno,20);
m_listsort.GetItemText(i,1,currentstudentname,10);
m_listsort.GetItemText(i,2,currentcoursename,20);
m_listsort.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 CSubForm2::OnDraw(CDC* pDC)
{
// TODO: Add your specialized code here and/or call the base class
CWnd*parent=GetParent();
CMenu*pmenubar=parent->GetMenu();
CMenu*pmenu=pmenubar->GetSubMenu(0);
pmenu->SetMenuItemBitmaps(0,MF_BYPOSITION,&bm_dayin1,&bm_dayin2);
pmenu->SetMenuItemBitmaps(1,MF_BYPOSITION,&bm_preview1,&bm_preview2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -