📄 scoreoutput.cpp
字号:
// ScoreOutput.cpp : implementation file
//
#include "stdafx.h"
#include "EduAdministration.h"
#include "ScoreOutput.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CScoreOutput dialog
CScoreOutput::CScoreOutput(CWnd* pParent /*=NULL*/)
: CDialog(CScoreOutput::IDD, pParent)
{
//{{AFX_DATA_INIT(CScoreOutput)
m_edit1 = _T("");
m_edit2 = _T("");
m_lblInput1 = _T("");
m_lblInput2 = _T("");
m_lblScore = _T("");
//}}AFX_DATA_INIT
}
void CScoreOutput::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CScoreOutput)
DDX_Control(pDX, IDC_BTNPRE, m_btnPre);
DDX_Control(pDX, IDC_BTNNEXT, m_btnNext);
DDX_Control(pDX, IDC_EDIT2, m_ctlEdt2);
DDX_Control(pDX, IDC_EDIT1, m_ctlEdt1);
DDX_Control(pDX, IDC_LISTSCORE, m_listScore);
DDX_Control(pDX, IDC_LISTRESULT, m_listResult);
DDX_Control(pDX, IDC_BTNSEARCH, m_btnSearch);
DDX_Text(pDX, IDC_EDIT1, m_edit1);
DDX_Text(pDX, IDC_EDIT2, m_edit2);
DDX_Text(pDX, IDC_TOINPUT1, m_lblInput1);
DDX_Text(pDX, IDC_TOINPUT2, m_lblInput2);
DDX_Text(pDX, IDC_LBLSCORE, m_lblScore);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CScoreOutput, CDialog)
//{{AFX_MSG_MAP(CScoreOutput)
ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
ON_BN_CLICKED(IDC_BTNSEARCH, OnBtnsearch)
ON_NOTIFY(NM_CLICK, IDC_LISTRESULT, OnClickListresult)
ON_BN_CLICKED(IDC_BTNPRE, OnBtnpre)
ON_BN_CLICKED(IDC_BTNNEXT, OnBtnnext)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CScoreOutput message handlers
BOOL CScoreOutput::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_btnSearch.SetIcon(IDI_ICONSEARCH);
m_btnSearch.SetTooltipText("全部留空则显示所有");
m_btnNext.SetIcon(IDI_ICONRIGHT);
m_btnPre.SetIcon(IDI_ICONLEFT);
m_btnNext.SetTooltipText("下一个学生");
m_btnPre.SetTooltipText("上一个学生");
m_lblInput1 = "查询条件1";
m_lblInput2 = "查询条件2";
m_edit1="请选择查询条件";
m_edit2="请选择查询条件";
m_lblScore = "成绩列表";
m_ctlEdt1.SetReadOnly();
m_ctlEdt2.SetReadOnly();
UpdateData(false);
m_bByStu = false;
m_bBySpe = false;
m_listResult.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_listResult.InsertColumn(0,"学号",LVCFMT_LEFT,80);
m_listResult.InsertColumn(1,"姓名",LVCFMT_LEFT,80);
m_listResult.InsertColumn(2,"学院",LVCFMT_LEFT,80);
m_listResult.InsertColumn(3,"专业",LVCFMT_LEFT,80);
m_listResult.InsertColumn(4,"年级",LVCFMT_LEFT,80);
m_listScore.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_listScore.InsertColumn(0,"课程",LVCFMT_LEFT,100);
m_listScore.InsertColumn(1,"成绩",LVCFMT_LEFT,100);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CScoreOutput::OnRadio1()
{
// TODO: Add your control notification handler code here
m_bByStu = true;
m_bBySpe = false;
m_lblInput1 = "输入学生学号";
m_lblInput2 = "输入学生姓名";
m_edit1 = "";
m_edit2 = "";
UpdateData(false);
m_ctlEdt1.SetReadOnly(false);
m_ctlEdt2.SetReadOnly(false);
m_ctlEdt1.SetFocus();
}
void CScoreOutput::OnRadio2()
{
// TODO: Add your control notification handler code here
m_bBySpe = true;
m_bByStu = false;
m_lblInput1 = "输入学院";
m_lblInput2 = "输入专业";
m_edit1 = "";
m_edit2 = "";
UpdateData(false);
m_ctlEdt1.SetReadOnly(false);
m_ctlEdt2.SetReadOnly(false);
m_ctlEdt1.SetFocus();
}
void CScoreOutput::OnBtnsearch()
{
// TODO: Add your control notification handler code here
if(!m_bBySpe&&!m_bByStu)
return;
m_listResult.DeleteAllItems();
UpdateData();
m_lblScore = "成绩列表";
UpdateData(false);
CString st="";
if(m_bByStu)
{
if(m_edit1!="")
st = "stuNum='"+m_edit1+"'";
if(m_edit2!=""){
if(st=="")
st = "stuName='"+m_edit2+"'";
else
st+=" and stuName='"+m_edit2+"'";
}
}
else
{
if(m_edit1!="")
st = "institute='"+m_edit1+"'";
if(m_edit2!=""){
if(st=="")
st = "specialty='"+m_edit2+"'";
else
st+=" and specialty='"+m_edit2+"'";
}
}
m_pStu = new CStudents();
if(!m_pStu->IsOpen())
m_pStu->Open();
m_pStu->m_strFilter = st;
m_pStu->Requery();
int i=0;
while (!m_pStu->IsEOF())
{
m_listResult.InsertItem(i,m_pStu->m_stuNum);
m_listResult.SetItemText(i,1,m_pStu->m_stuName);
m_listResult.SetItemText(i,2,m_pStu->m_institute);
m_listResult.SetItemText(i,3,m_pStu->m_specialty);
m_listResult.SetItemText(i,4,m_pStu->m_grade);
i++;
m_pStu->MoveNext();
}
m_pStu->Close();
delete m_pStu;
m_listResult.SetSelectionMark(0);
setScoreList();
}
void CScoreOutput::setScoreList()
{
m_listScore.DeleteAllItems();
if(m_listResult.GetItemCount()==0)
return;
char s[20];
char t[20];
CString st,strNum,strName,strcouName,strScroe;
BOOL bGetName=true;
m_listResult.GetItemText(m_listResult.GetSelectionMark(),0,s,19);
m_listResult.GetItemText(m_listResult.GetSelectionMark(),1,t,19);
if(s=="")
return;
if(t=="")
return;
strName = t;
strNum = s;
m_lblScore ="学生 "+ strName+" 的成绩列表";
UpdateData(false);
m_pStuScore = new CStuScores();
if(!m_pStuScore->IsOpen())
m_pStuScore->Open();
m_pStuScore->m_strFilter.Format("stuNum='%s' and stuName='%s'",strNum,strName);
m_pStuScore->Requery();
if(!m_pStuScore->IsEOF()){
st=m_pStuScore->m_stuScore;
char *args = st.GetBuffer(st.GetLength());
int j=0;
for(int i=0;i<st.GetLength();i++){
if(args[i]!=' '){ //不为空格
if(bGetName){ //当前是课程名
strcouName+=args[i];
}
else //当前是成绩
{
strScroe+=args[i];
}
}
else //是空格
{
if(bGetName){
bGetName =false;
m_listScore.InsertItem(j,strcouName);
strcouName = "";
}
else{
bGetName = true;
m_listScore.SetItemText(j,1,strScroe);
strScroe = "";
j++;
}
}
}
m_listScore.SetItemText(j,1,strScroe);
}
m_pStuScore->Close();
delete m_pStuScore;
}
void CScoreOutput::OnClickListresult(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
setScoreList();
*pResult = 0;
}
void CScoreOutput::OnBtnpre()
{
// TODO: Add your control notification handler code here
int i = m_listResult.GetSelectionMark();
if(i==0)
return;
i--;
m_listResult.SetSelectionMark(i);
setScoreList();
}
void CScoreOutput::OnBtnnext()
{
// TODO: Add your control notification handler code here
int i = m_listResult.GetSelectionMark()+1;
if(i==m_listResult.GetItemCount())
return;
m_listResult.SetSelectionMark(i);
setScoreList();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -