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

📄 queryscoredlg.cpp

📁 《AE库通用模块及典型系统开发实例导航》光盘内容分享!
💻 CPP
字号:
// QueryScoreDlg.cpp : implementation file
//

#include "stdafx.h"
#include "StudentScore.h"
#include "QueryScoreDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CQueryScoreDlg dialog


CQueryScoreDlg::CQueryScoreDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CQueryScoreDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CQueryScoreDlg)
	//}}AFX_DATA_INIT
}


void CQueryScoreDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CQueryScoreDlg)
	DDX_Control(pDX, IDC_LIST_QUERY_SCORE, m_list);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CQueryScoreDlg, CDialog)
	//{{AFX_MSG_MAP(CQueryScoreDlg)
	ON_BN_CLICKED(IDC_RADIO_BYSTUDENT, OnRadioBystudent)
	ON_BN_CLICKED(IDC_RADIO_BYCOURSE, OnRadioBycourse)
	ON_BN_CLICKED(ID_SCORE_QUERY, OnScoreQuery)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CQueryScoreDlg message handlers

BOOL CQueryScoreDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	//如果数据库未打开,则打开数据库
	if(!m_database.IsOpen())
	{
		m_database.Open(_T("studentscore"));
	    m_recordSet.m_pDatabase=&m_database;
	}
	//用来标识CRadio
	sortBy=0;

  return true;
}

void CQueryScoreDlg::OnRadioBystudent() //点击按学生单选按钮事件
{
	sortBy=1;
}

void CQueryScoreDlg::OnRadioBycourse() //点击按课程单选按钮事件
{
	sortBy=2;
}

void CQueryScoreDlg::OnScoreQuery() //查询按钮事件 
{
	BOOL bSuccess=true;
	if(sortBy==0)//如果未选中单选按钮
	{
		MessageBox("请先选择查询条件!");
	}
	if(sortBy==1)//选中按学生单选按钮
	{
		//获得控件
		CEdit* pName=(CEdit*) this->GetDlgItem(IDC_QUERY_NAME);
		CEdit* pScore=(CEdit*) this->GetDlgItem(IDC_QUERY_SCORE);
		CComboBox* pFilter=(CComboBox*) this->GetDlgItem(IDC_COMBO_FILTER);
		//将控件上的值赋给字符串
		CString m_name,m_score,m_filter;
		pName->GetWindowText(m_name);
		pScore->GetWindowText(m_score);
        pFilter->GetWindowText(m_filter);
		if(m_name=="")//如果姓名为空
		{
			MessageBox("请输入学生姓名");
			bSuccess=false;
		}
		//判断条件
		if(m_filter=="大于")
		{
			m_filter=">";
		}else if(m_filter=="等于")
		{
			m_filter="=";
		}else if(m_filter=="小于")
		{
			m_filter="<";
		}
		if(bSuccess)
		{
			//组织查询语句
			CString strSQL;
			if(m_score==""||m_filter=="")
				strSQL.Format("select * from score,course where student_no in (select student_no from student where student_name='%s') and course.course_no=score.course_no and score.active_status='Y'",m_name);
			else 
                strSQL.Format("select * from score,course where student_no in (select student_no from student where student_name='%s') and course.course_no=score.course_no and score%s%s and score.active_status='Y'",m_name,m_filter,m_score);
			//清空list数据
			m_list.DeleteColumn(1);
			m_list.DeleteColumn(0);
			m_list.DeleteAllItems();
			m_list.InsertColumn(0,"课程名");
			m_list.InsertColumn(1,"学生成绩");
			//设置header的宽度
			RECT rectList;
			m_list.GetWindowRect(&rectList);
			int wid=rectList.right-rectList.left-4;
			for(int i=0;i<2;i++)
				m_list.SetColumnWidth(i,wid/2);
			m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
			//打开记录集
			m_recordSet.Open(CRecordset::forwardOnly,strSQL);
			//将记录集显示到 CList中
			for(int j=0;j<m_recordSet.GetRecordCount();j++){
				CString temp;
				m_recordSet.GetFieldValue("course_name",temp);
				m_list.InsertItem(j,temp);
				m_recordSet.GetFieldValue("score",temp);
				m_list.SetItemText(j,1,temp);
				m_recordSet.MoveNext();
			}
			//将关闭记录集
			m_recordSet.Close();			
		}		
	
	}
	if(sortBy==2)//选中按课程单选按钮
	{
		//获得控件并赋值
		CEdit* pCourse=(CEdit*) this->GetDlgItem(IDC_QUERY_COURSE);
		CString m_course;
		pCourse->GetWindowText(m_course);
		//如果课程名为空,提示信息
		if(m_course=="")
		{
			MessageBox("请输入课程名称");
		}
		else
		{
			//组织查询语句
			CString strSQL;
            strSQL.Format("select * from student,score where student.student_no=score.student_no and course_no in (select course_no from course where course_name='%s') and score.active_status='Y'",m_course);	
			//清空list数据
			m_list.DeleteColumn(1);
            m_list.DeleteColumn(0);
			m_list.DeleteAllItems();
			m_list.InsertColumn(0," 学生名");
			m_list.InsertColumn(1,"学生成绩");
            
			//设置header的宽度
			RECT rectList;
			m_list.GetWindowRect(&rectList);
			int wid=rectList.right-rectList.left-4;
			for(int i=0;i<2;i++)
				m_list.SetColumnWidth(i,wid/2);
			m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
			//打开记录集
			m_recordSet.Open(CRecordset::forwardOnly,strSQL);
			//将记录集显示到 CList中
			for(int j=0;j<m_recordSet.GetRecordCount();j++){
				CString temp;
				m_recordSet.GetFieldValue("student_name",temp);
				m_list.InsertItem(j,temp);
				m_recordSet.GetFieldValue("score",temp);
				m_list.SetItemText(j,1,temp);
				m_recordSet.MoveNext();
			}
			//关闭记录集
			m_recordSet.Close();		
		}
	}
	
}

⌨️ 快捷键说明

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