dlgmarkquery.cpp

来自「大学班务管理系统」· C++ 代码 · 共 268 行

CPP
268
字号
// Dlgmarkquery.cpp : implementation file
//

#include "stdafx.h"
#include "教学管理信息系统.h"
#include "Dlgmarkquery.h"
#include "graderecordset.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgmarkquery dialog


CDlgmarkquery::CDlgmarkquery(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgmarkquery::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgmarkquery)
	m_markquery = _T("");
	m_markquerysel = _T("");
	//}}AFX_DATA_INIT
}


void CDlgmarkquery::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgmarkquery)
	DDX_Control(pDX, IDC_LISTmarkquery, m_listmarkquery);
	DDX_Text(pDX, IDC_EDITmarkquery, m_markquery);
	DDX_CBString(pDX, IDC_COMBOmarkquery, m_markquerysel);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgmarkquery, CDialog)
	//{{AFX_MSG_MAP(CDlgmarkquery)
	ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
	ON_BN_CLICKED(IDC_BUTTONmarkquery, OnBUTTONmarkquery)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgmarkquery message handlers


BOOL CDlgmarkquery::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	   ((CComboBox*)GetDlgItem(IDC_COMBOmarkquery))->AddString("学号");
		((CComboBox*)GetDlgItem(IDC_COMBOmarkquery))->AddString("姓名");
		((CComboBox*)GetDlgItem(IDC_COMBOmarkquery))->AddString("课程号");
		((CComboBox*)GetDlgItem(IDC_COMBOmarkquery))->AddString("课程名");
		((CComboBox*)GetDlgItem(IDC_COMBOmarkquery))->AddString("学分");
	    ((CComboBox*)GetDlgItem(IDC_COMBOmarkquery))->AddString("开课时间");



		//
			int i;
	DWORD dwNewStyle= LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_HEADERDRAGDROP |
		LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT;
		m_listmarkquery.SetExtendedStyle(dwNewStyle);//(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_listmarkquery.InsertColumn(0,"学号",LVCFMT_CENTER);
	m_listmarkquery.InsertColumn(1,"姓名",LVCFMT_CENTER);
	m_listmarkquery.InsertColumn(2,"课程号",LVCFMT_CENTER);
	m_listmarkquery.InsertColumn(3,"课程名",LVCFMT_CENTER);
	m_listmarkquery.InsertColumn(4,"学分",LVCFMT_CENTER);
	m_listmarkquery.InsertColumn(5,"成绩",LVCFMT_CENTER);
	m_listmarkquery.InsertColumn(6,"开课时间",LVCFMT_CENTER);
	for(i=0;i<7;i++)
	m_listmarkquery.SetColumnWidth(i,80);
  initctrldata();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDlgmarkquery::OnButton2() 
{
	// TODO: Add your control notification handler code here
	CDialog::OnCancel();
}

void CDlgmarkquery::OnBUTTONmarkquery() 
{
	// TODO: Add your control notification handler code here
		UpdateData(TRUE);

	 CDatabase m_database;
	   
	if(!m_database.Open(NULL,FALSE,FALSE,"ODBC;DSN=教务课程信息管理数据库"))
	{
		AfxMessageBox("连接数据库失败");
	}
if(m_markquerysel=="学号")
{
m_gradeset.m_strFilter.Format("stunum='%s'",m_markquery);
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
if(m_gradeset.IsEOF())
{ 
 AfxMessageBox("没有符合条件的记录");
m_gradeset.Close();
}
else 
{

m_listmarkquery.DeleteAllItems();
m_gradeset.Close();
initctrldata();
}
}
if(m_markquerysel=="姓名")
{
m_gradeset.m_strFilter.Format("stuname='%s'",m_markquery);
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
if(m_gradeset.IsEOF())
{ 
 AfxMessageBox("没有符合条件的记录");
m_gradeset.Close();
}
else 
{

m_listmarkquery.DeleteAllItems();
m_gradeset.Close();
initctrldata();
}
}
if(m_markquerysel=="课程号")
{
m_gradeset.m_strFilter.Format("lessonnum='%s'",m_markquery);
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
if(m_gradeset.IsEOF())
{ 
 AfxMessageBox("没有符合条件的记录");
m_gradeset.Close();
}
else 
{

m_listmarkquery.DeleteAllItems();
m_gradeset.Close();
initctrldata();
}
}
if(m_markquerysel=="课程名")
{
m_gradeset.m_strFilter.Format("lessoname='%s'",m_markquery);
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
if(m_gradeset.IsEOF())
{ 
 AfxMessageBox("没有符合条件的记录");
m_gradeset.Close();
}
else 
{

m_listmarkquery.DeleteAllItems();
m_gradeset.Close();
initctrldata();
}
}
if(m_markquerysel=="学分")
{
m_gradeset.m_strFilter.Format("xuefen='%s'",m_markquery);
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
if(m_gradeset.IsEOF())
{ 
 AfxMessageBox("没有符合条件的记录");
m_gradeset.Close();
}
else 
{

m_listmarkquery.DeleteAllItems();
m_gradeset.Close();
initctrldata();
}
}
if(m_markquerysel=="开课时间")
{
m_gradeset.m_strFilter.Format("time='%s'",m_markquery);
m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
if(m_gradeset.IsEOF())
{ 
 AfxMessageBox("没有符合条件的记录");
m_gradeset.Close();
}
else 
{

m_listmarkquery.DeleteAllItems();
m_gradeset.Close();
initctrldata();
}
}
}
void CDlgmarkquery::insertmarkinfo(CString stunum,CString stuname,CString 
								lessonnum,CString lessoname,CString xuefen,CString 
								grade,CString time)
{
	int index=m_listmarkquery.GetItemCount();
	LV_ITEM lvitem;
	lvitem.mask=LVIF_TEXT;
	lvitem.iItem=index;
	lvitem.iSubItem=0;
	CString temp;
	temp.Format("%s");
	lvitem.pszText=(char*)(LPCTSTR)temp;
	m_listmarkquery.InsertItem(&lvitem);
	//int index;
	//for(index=0;index<nindex;index++)
	//{
	m_listmarkquery.SetItemText(index,0,stunum);
	m_listmarkquery.SetItemText(index,1,stuname);
	m_listmarkquery.SetItemText(index,2,lessonnum);
	m_listmarkquery.SetItemText(index,3,lessoname);
	m_listmarkquery.SetItemText(index,4,xuefen);
	m_listmarkquery.SetItemText(index,5,grade);
	m_listmarkquery.SetItemText(index,6,time);
	
}




void CDlgmarkquery::initctrldata()
{
	 CDatabase m_database;
	   
	if(!m_database.Open(NULL,FALSE,FALSE,"ODBC;DSN=教务课程信息管理数据库"))
	{
		AfxMessageBox("连接数据库失败");
	}
	//m_stuinforecordset.Open();
	try{
		// Cstuinforecordset m_stuinforecordset;
		m_gradeset.Open(CRecordset::dynaset,NULL,CRecordset::none);
		while(!m_gradeset.IsEOF())
		{
		CString stunum,stuname,lessonnum,lessoname,xuefen,grade,time;
		
		m_gradeset.GetFieldValue((short)0,stunum);
        m_gradeset.GetFieldValue(1,stuname);
		m_gradeset.GetFieldValue(2,lessonnum);
		m_gradeset.GetFieldValue(3,lessoname);
		m_gradeset.GetFieldValue(4,xuefen);
		m_gradeset.GetFieldValue(5,grade);
		m_gradeset.GetFieldValue(6,time);
		
        insertmarkinfo(stunum,stuname,lessonnum,lessoname,xuefen,grade,time);
		m_gradeset.MoveNext();
	}
	m_gradeset.Close();
	}
	catch(CDBException*e)
	{
		e->ReportError();
	return;
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?