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

📄 stupage2.cpp

📁 数据库管理系统
💻 CPP
字号:
// StuPage2.cpp : implementation file
//

#include "stdafx.h"
#include "SCMIS.h"
#include "StuProSht.h"

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


/////////////////////////////////////////////////////////////////////////////
// CStuPage2 property page

IMPLEMENT_DYNCREATE(CStuPage2, CPropertyPage)

CStuPage2::CStuPage2() : CPropertyPage(CStuPage2::IDD)
{
	//{{AFX_DATA_INIT(CStuPage2)
	m_avg = 0;
	m_max = 0;
	m_min = 0;
	m_score = 0;
	//}}AFX_DATA_INIT
}

CStuPage2::~CStuPage2()
{
}

void CStuPage2::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CStuPage2)
	DDX_Control(pDX, IDC_LIST1, m_course);
	DDX_Text(pDX, IDC_EDIT_AVG, m_avg);
	DDX_Text(pDX, IDC_EDIT_MAX, m_max);
	DDX_Text(pDX, IDC_EDIT_MIN, m_min);
	DDX_Text(pDX, IDC_EDIT_SCORE, m_score);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CStuPage2, CPropertyPage)
	//{{AFX_MSG_MAP(CStuPage2)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CStuPage2 message handlers

BOOL CStuPage2::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	// TODO: Add extra initialization here
    m_course.InsertColumn(0,"课程编号");
	m_course.InsertColumn(1,"课程名称");

    RECT rect;
	m_course.GetWindowRect(&rect);
	int wid=rect.right-rect.left;
	m_course.SetColumnWidth(0,wid/2);
	m_course.SetColumnWidth(1,wid/2);
	m_course.SetExtendedStyle(LVS_EX_FULLROWSELECT);
	m_course.SetTextBkColor(RGB(192,192,0));
	m_course.SetTextColor(RGB(0,0,255));




    
	//m_stuid="1";


    CStuProSht *m_dlg;
	m_dlg=(CStuProSht*)this->GetParent();
	this->m_stuid=m_dlg->m_id;
	this->RefreshData();

/*
    CRecordset rs1(&db);
	m_course.DeleteAllItems();
	//m_stuid=this->GetOwner()->m_hWnd
   
   rs1.Open(CRecordset::forwardOnly,"select course.id ,course.name from course,sc where course.id=sc.corid and sc.stuid='"+m_stuid+"' order by course.id");
	char buf[20];
	int i=0;
    CDBVariant varValue;
	
	while(!rs1.IsEOF())
	{
		int temp=0;
		rs1.GetFieldValue(temp,varValue);
		//sprintf(buf,"%d",varValue.m_lVal); m_course.InsertItem(i,buf);//if is int type ,write this way
        sprintf(buf,"%s",varValue.m_pstring->GetBuffer(1)); m_course.InsertItem(i,buf);
		//m_course.SetItemText(i,0,varValue.m_pstring->GetBuffer(1));
		rs1.GetFieldValue(1,varValue);
		m_course.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
		rs1.MoveNext();
		i++;
	}
	*/



	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CStuPage2::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	int i=m_course.GetSelectionMark();
    CDBVariant varValue;
	CString strSQL;
	CRecordset rs(&db);
  //m_scoe cal
    CStuProSht *m_dlg;
	m_dlg=(CStuProSht*)this->GetParent();
	this->m_stuid=m_dlg->m_id;
    CString ct=m_course.GetItemText(i,0);
	strSQL.Format("select score from sc where corid='%s' and stuid='%s'",ct,m_stuid);
	rs.Open(CRecordset::forwardOnly,strSQL);
	int tempt=0;
	rs.GetFieldValue(tempt,varValue);
	m_score=varValue.m_iVal;
	this->UpdateData(FALSE);
	rs.Close();
//m_max cal
    strSQL.Format("select max(score) from sc where corid='%s'",ct);
	rs.Open(CRecordset::forwardOnly,strSQL);
	rs.GetFieldValue(tempt,varValue);
	m_max=varValue.m_iVal;
	this->UpdateData(FALSE);
	rs.Close();
//m_min cal
    strSQL.Format("select min(score) from sc where corid='%s'",ct);
	rs.Open(CRecordset::forwardOnly,strSQL);
	rs.GetFieldValue(tempt,varValue);
	m_min=varValue.m_iVal;
	this->UpdateData(FALSE);
	rs.Close();
//m_avg
	strSQL.Format("select avg(SCORE) from sc where corid='%s'",ct);
	rs.Open(CRecordset::forwardOnly,strSQL);
	rs.GetFieldValue(tempt,varValue);
	m_avg=varValue.m_iVal;
	this->UpdateData(FALSE);
	rs.Close();
	



	










/*CString ct=m_course.GetItemText(i,0);
	strSQL.Format("select avg(score) from sc where corid='%s'",ct);
	rs.Open(CRecordset::forwardOnly,strSQL);
	int tempt=0;
	rs.GetFieldValue(tempt,varValue);
	m_avg=varValue.m_iVal;
	this->UpdateData(FALSE);
	rs.Close();
	*/



    

	
		
		
    









	*pResult = 0;


}

void CStuPage2::RefreshData()
{   CRecordset rs1(&db);
	m_course.DeleteAllItems();
    rs1.Open(CRecordset::forwardOnly,"select course.id ,course.name from course,sc where course.id=sc.corid and sc.stuid='"+m_stuid+"' order by course.id");
	char buf[20];
	int i=0;
    CDBVariant varValue;
	
	while(!rs1.IsEOF())
	{
		int temp=0;
		rs1.GetFieldValue(temp,varValue);
		//sprintf(buf,"%d",varValue.m_lVal); m_course.InsertItem(i,buf);//if is int type ,write this way
        sprintf(buf,"%s",varValue.m_pstring->GetBuffer(1)); m_course.InsertItem(i,buf);
		//m_course.SetItemText(i,0,varValue.m_pstring->GetBuffer(1));
		rs1.GetFieldValue(1,varValue);
		m_course.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
		rs1.MoveNext();
		i++;
	}

}

⌨️ 快捷键说明

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