⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makeuplistdlg.cpp

📁 ACCESS数据库+MFC编写的学生数据库管理系统
💻 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 + -