📄 makeuplistdlg.cpp
字号:
// MakeupListDlg.cpp : implementation file
//
#include "stdafx.h"
#include "学籍管理系统.h"
#include "MakeupListDlg.h"
#include "MainView.h"
#include "StuinfoSet1.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMakeupListDlg dialog
CMakeupListDlg::CMakeupListDlg(CWnd* pParent /*=NULL*/)
: CDialog(CMakeupListDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CMakeupListDlg)
m_address = _T("");
m_subname = _T("");
m_time = _T("");
m_name = _T("");
//}}AFX_DATA_INIT
}
void CMakeupListDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CMakeupListDlg)
DDX_Control(pDX, IDC_LIST_MAKEUP, m_makeuplist);
DDX_Text(pDX, IDC_EDIT_ADDRESS, m_address);
DDX_Text(pDX, IDC_EDIT_SUBNAME, m_subname);
DDX_Text(pDX, IDC_EDIT_TIME, m_time);
DDX_Text(pDX, IDC_EDIT_NAME, m_name);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CMakeupListDlg, CDialog)
//{{AFX_MSG_MAP(CMakeupListDlg)
ON_NOTIFY(NM_CLICK, IDC_LIST_MAKEUP, OnClickListMakeup)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMakeupListDlg message handlers
BOOL CMakeupListDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_makeuplist.SetExtendedStyle (LVS_EX_FULLROWSELECT |LVS_EX_GRIDLINES |LVS_EX_INFOTIP);
int nWidth = 110 ;
m_makeuplist.InsertColumn( 0 , "学号" ,LVCFMT_LEFT,80 );
m_makeuplist.InsertColumn( 1 , "姓名" ,LVCFMT_LEFT,50 );
m_makeuplist.InsertColumn( 2 , "补考课程" ,LVCFMT_LEFT,100 );
// TODO: Add extra initialization here
UpdateData(TRUE);
CDatabase db;
CStuinfoSet rsstu;
CRecordset rs(&db);
CRecordset rscount(&db);
CString sqlstr,resul;
db.Open(rsstu.GetDefaultConnect());int i=0;
/*****************列出补考学生名单********************/
sqlstr.Format("select stunum,name from stuinfo");
rs.Open(CRecordset::forwardOnly,sqlstr);
while(!rs.IsEOF())
{
CString stunum,name;
rs.GetFieldValue((int)0,stunum);
rs.GetFieldValue((int)1,name);
sqlstr.Format("select subname from scoreinfo where stunum='%s' and score<60",stunum);
rscount.Open(CRecordset::forwardOnly,sqlstr);
while(!rscount.IsBOF()&&!rscount.IsEOF())
{
rscount.GetFieldValue((int)0,resul);//此语句读取记录的第一字段,注意读取前要判断记录集是不是空,若不判断可能出现"无效的游标状态"错误
m_makeuplist.InsertItem(i,stunum);
m_makeuplist.SetItemText(i,1,name);
m_makeuplist.SetItemText(i,2,resul);
rscount.MoveNext();
i++;
}
rscount.Close();
rs.MoveNext();
}
rs.Close();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
int CMakeupListDlg::GetSelected()
{
for(int i=0; i<m_makeuplist.GetItemCount(); i++)
{
if( m_makeuplist.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED )
{
return i;//当有一行被选中,返回行号
}
}
return -2;//如果未选中任何一行则返回-2
}
void CMakeupListDlg::OnClickListMakeup(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int nItem=GetSelected();
if(nItem==-2)
return;
m_subname=m_makeuplist.GetItemText(nItem,2);
m_name=m_makeuplist.GetItemText(nItem,1);
CString sqlstr;
sqlstr.Format("select place,time from makeupinfo where subname='%s'",m_subname);
CDatabase db;
CStuinfoSet rsstu;
CRecordset rs(&db);
CRecordset rscount(&db);
db.Open(rsstu.GetDefaultConnect());
rs.Open(CRecordset::forwardOnly,sqlstr);
if(!rs.IsBOF())
{
rs.GetFieldValue((int)0,m_address);
rs.GetFieldValue((int)1,m_time);
}
else
{
m_address="该课程补考信息未录入";m_time="暂无";
}
UpdateData(FALSE);
*pResult = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -