www.pudn.com > 111.rar > Dialog_Query.cpp


// 
/****************************************/ 
/*		SchoolManageSystem			    */ 
/*设计者:全佳营						*/ 
/*时间:2004.5.9-2004-5.18				*/ 
/*Email:ghostman@tzc.edu.cn				*/ 
/****************************************/ 
// Dialog_Query.cpp : 实现文件 
// 
 
#include "stdafx.h" 
#include "SchoolManageSys_2.h" 
#include "Dialog_Query.h" 
#include ".\dialog_query.h" 
#include "SChoolManageSys_2Dlg.h" 
 
// CDialog_Query 对话框 
 
IMPLEMENT_DYNAMIC(CDialog_Query, CDialog) 
CDialog_Query::CDialog_Query(CWnd* pParent /*=NULL*/) 
	: CDialog(CDialog_Query::IDD, pParent) 
	, m_QueryUsername(_T("")) 
	, m_QueryNum(_T("")) 
	, m_QueryID(_T("")) 
	, m_Queryname(_T("")) 
{ 
} 
 
CDialog_Query::~CDialog_Query() 
{ 
} 
 
void CDialog_Query::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	DDX_Control(pDX, IDC_COMBO_QUERY, m_QueryChoice); 
	DDX_Control(pDX, IDC_DATAGRID_QUERY, m_Datagrid_Query); 
	DDX_Text(pDX, IDC_EDIT1, m_QueryUsername); 
	DDX_Text(pDX, IDC_EDIT2, m_QueryNum); 
 
	DDX_Control(pDX, IDC_EDIT1, m_eidtusername); 
	DDX_Control(pDX, IDC_EDIT3, m_editID); 
	DDX_Control(pDX, IDC_EDIT2, m_editnum); 
	DDX_Text(pDX, IDC_EDIT3, m_QueryID); 
	DDX_Control(pDX, IDC_EDIT4, m_editname); 
	DDX_Text(pDX, IDC_EDIT4, m_Queryname); 
} 
 
 
BEGIN_MESSAGE_MAP(CDialog_Query, CDialog) 
	ON_CBN_SELCHANGE(IDC_COMBO_QUERY, OnCbnSelchangeComboQuery) 
	ON_BN_CLICKED(IDC_BUTTON_QUERY, OnBnClickedButtonQuery) 
	ON_BN_CLICKED(IDOK, OnBnClickedOk) 
END_MESSAGE_MAP() 
 
 
// CDialog_Query 消息处理程序 
BOOL CDialog_Query::OnInitDialog(){ 
	CDialog::OnInitDialog(); 
	theApp.m_pSkin->ApplySkin((long)m_hWnd); 
 
	m_QueryChoice.AddString("查询学生记录"); 
	m_QueryChoice.AddString("查询教师记录"); 
	m_QueryChoice.AddString("课程相关记录"); 
	m_QueryChoice.AddString("书籍相关记录"); 
	m_QueryChoice.AddString("学院相关记录"); 
	m_QueryChoice.AddString("系别相关记录"); 
	m_QueryChoice.AddString("社团相关记录"); 
	m_QueryChoice.AddString("班级相关记录"); 
	m_QueryChoice.SetCurSel(0); 
 
	CWnd *m_pWnd=CWnd::FindWindow(NULL,"校人事信息管理系统"); 
	m_AdoConnection=((CSchoolManageSys_2Dlg*) m_pWnd)->m_AdoConnection; 
	if(m_AdoConnection.IsOpen()){ 
		m_AdoRecordSet.SetAdoConnection(&m_AdoConnection); 
		m_AdoRecordSet.SetCursorLocation(); 
	} 
	return TRUE; 
} 
void CDialog_Query::OnCbnSelchangeComboQuery() 
{ 
	// TODO: 在此添加控件通知处理程序代码 
	UpdateData(); 
	m_QueryID=""; 
	m_Queryname=""; 
	m_QueryNum=""; 
	m_QueryUsername=""; 
	UpdateData(FALSE); 
	m_QueryChoice.GetLBText(m_QueryChoice.GetCurSel(),m_selection); 
	if(m_selection=="相关记录"){ 
		AfxMessageBox("请重新选择一个"); 
		return ; 
	} 
	else if(m_selection=="查询学生记录"||m_selection=="查询教师记录"){ 
		m_editID.SetReadOnly(); 
		m_editname.SetReadOnly(); 
		m_eidtusername.SetReadOnly(FALSE); 
		m_editnum.SetReadOnly(FALSE); 
	} 
	else if(m_selection=="课程相关记录"||m_selection=="书籍相关记录" 
	||m_selection=="学院相关记录"||m_selection=="系别相关记录"|| 
	m_selection=="社团相关记录"||m_selection=="班级相关记录"){ 
		m_eidtusername.SetReadOnly(); 
		m_editnum.SetReadOnly(); 
		m_editID.SetReadOnly(FALSE); 
		m_editname.SetReadOnly(FALSE); 
		if(m_selection=="课程相关记录") m_editID.SetReadOnly(); 
	} 
} 
 
void CDialog_Query::OnBnClickedButtonQuery() 
{ 
	// TODO: 在此添加控件通知处理程序代码 
	UpdateData(); 
	CString sql; 
	long lOption(adCmdText); 
	if(m_AdoConnection.IsOpen()){ 
		UpdateData(TRUE); 
		if(m_selection=="查询学生记录"){ 
			if(m_QueryNum!=""){ 
				if(m_QueryUsername!="") AfxMessageBox("查询以学号为准"); 
				sql="SELECT * FROM studentrecord,lessonrecord,classrecord WHERE studentrecord.studynum = \'"+m_QueryNum+"\' AND lessonrecord.studynum=\'"+m_QueryNum+"\' AND studentrecord.classid=classrecord.classid"; 
			} 
			else if(m_QueryUsername!=""){ 
				sql="SELECT *FROM studentrecord,lessonrecord,classrecord WHERE 姓名 LIKE \'%"+m_QueryUsername+"%\' AND studentrecord.studynum=lessonrecord.studynum AND studentrecord.classid=classrecord.classid"; 
			}else { 
				sql="studentrecord"; 
				lOption=adCmdTable; 
			} 
			m_Datagrid_Query.put_Caption("查找的学生资料"); 
		} 
		if(m_selection=="查询教师记录"){ 
			if(m_QueryNum!=""){ 
				if(m_QueryUsername!="") AfxMessageBox("查询以教师号为准"); 
				sql.Format("SELECT *FROM teacherrecord,teachrecord WHERE teachernum =%s AND teacherrecord.teachernum=teachrecord.teachernum",m_QueryNum); 
			} 
			else if(m_QueryUsername!=""){ 
				sql="SELECT *FROM teacherrecord WHERE teachername LIKE \'%"+m_QueryUsername+"%\' AND teacherrecord.teachernum=teachrecord.teachernum"; 
			} 
			else { 
				sql="teacherrecord"; 
				lOption=adCmdTable; 
			} 
			m_Datagrid_Query.put_Caption("查找的教师资料"); 
		} 
		if(m_selection=="课程相关记录"){ 
			if(m_Queryname!=""){ 
				sql="SELECT *FROM lessonrecord WHERE 课程 LIKE \'%"+m_Queryname+"%\'"; 
			}else { 
				sql.Format("lessonrecord"); 
				lOption=adCmdTable; 
			} 
			m_Datagrid_Query.put_Caption("查找的课程信息"); 
		} 
		if(m_selection=="书籍相关记录"){ 
			if(m_QueryID!=""){ 
				if(m_Queryname!="") AfxMessageBox("查询以书籍编号为准"); 
				sql.Format("SELECT *FROM bookrecord,studentrecord WHERE bookid =%s AND bookrecord.studynum=studentrecord.studynum",m_QueryID); 
			}else if(m_Queryname!=""){ 
				sql="SELECT *FROM lessonrecord WHERE books LIKE \'%"+m_Queryname+"%\' AND bookrecord.studynum=studentrecord.studynum"; 
			}else { 
				sql.Format("bookrecord"); 
				lOption=adCmdTable; 
			} 
			m_Datagrid_Query.put_Caption("查找的书籍信息"); 
		} 
		if(m_selection=="学院相关记录"){ 
			if(m_QueryID!=""){ 
				if(m_Queryname!="") AfxMessageBox("查询以学院编号为准"); 
				sql.Format("SELECT *FROM collegerecord WHERE collegeid=%s",m_QueryID); 
			}else if(m_Queryname!=""){ 
				sql="SELECT *FROM collegerecord WHERE collegename LIKE \'%"+m_Queryname+"%\'"; 
			}else { 
				sql.Format("collegerecord"); 
				lOption=adCmdTable; 
			} 
			m_Datagrid_Query.put_Caption("查找的学院相关信息"); 
		} 
		if(m_selection=="系别相关记录"){ 
			if(m_QueryID!=""){ 
				if(m_Queryname!="") AfxMessageBox("查询以系别编号为准"); 
				sql.Format("SELECT *FROM departmentrecord,collegerecord WHERE departmentid=%s AND departmentrecord.collegeid=collegerecord.collegeid",m_QueryID); 
			}else if(m_Queryname!=""){ 
				sql="SELECT *FROM departmentrecord,collegerecord WHERE departmentname LIKE \'%"+m_Queryname+"%\' AND departmentrecord.collegeid=collegerecord.collegeid"; 
			}else { 
				sql.Format("departmentrecord"); 
				lOption=adCmdTable; 
			} 
			m_Datagrid_Query.put_Caption("查找的系的相关资料"); 
		} 
		if(m_selection=="社团相关记录"){ 
			if(m_QueryID!=""){ 
				if(m_Queryname!="") AfxMessageBox("查询以社团编号为准"); 
				sql.Format("SELECT *FROM consortiumrecord WHERE consortiumid=%s",m_QueryID); 
			}else if(m_Queryname!=""){ 
				sql="SELECT *FROM consortiumrecord WHERE consortiumname=\'%"+m_Queryname+"%\'"; 
			}else { 
				sql.Format("consortiumrecord"); 
				lOption=adCmdTable; 
			} 
			m_Datagrid_Query.put_Caption("查找的社团相关信息"); 
		} 
		if(m_selection=="班级相关记录"){ 
			if(m_QueryID!=""){ 
				if(m_Queryname!="") AfxMessageBox("查询以班级编号为准"); 
				sql.Format("SELECT *FROM classrecord,departmentrecord WHERE classid=%s AND classrecord.departmentid=departmentrecord.departmentid",m_QueryID); 
			}else if(m_Queryname!=""){ 
				sql="SELECT *FROM classrecord,departmentrecord WHERE classname LIKE \'%"+m_Queryname+"%\' AND classrecord.departmentid=departmentrecord.departmentid"; 
			}else { 
				sql.Format("classrecord"); 
				lOption=adCmdTable; 
			} 
			m_Datagrid_Query.put_Caption("查找的班级相关信息"); 
		} 
	}else { 
		AfxMessageBox("数据库连接出现问题"); 
		return; 
	} 
	if(m_AdoRecordSet.IsOpen()) 
		m_AdoRecordSet.Close(); 
	m_AdoRecordSet.Open(sql,lOption); 
	if(m_AdoRecordSet.IsEOF()){ 
		AfxMessageBox("没有搜索到相关记录"); 
		return; 
	} 
	m_Datagrid_Query.putref_DataSource(NULL); 
	m_Datagrid_Query.putref_DataSource((LPUNKNOWN)m_AdoRecordSet.GetRecordset()); 
	m_Datagrid_Query.put_AllowAddNew(TRUE); 
	m_Datagrid_Query.put_AllowDelete(TRUE); 
	m_Datagrid_Query.put_AllowUpdate(TRUE); 
	m_Datagrid_Query.Refresh(); 
	m_QueryID=""; 
	m_Queryname=""; 
	m_QueryNum=""; 
	m_QueryUsername=""; 
	UpdateData(FALSE); 
} 
 
void CDialog_Query::OnBnClickedOk() 
{ 
	// TODO: 在此添加控件通知处理程序代码 
	OnCancel(); 
} 
 
void CDialog_Query::OnOK(){ 
	if(MessageBox("退出查询?","确定退出",MB_OKCANCEL|MB_ICONQUESTION)==IDOK){ 
		m_AdoConnection.CommitTrans(); 
		CDialog::OnOK(); 
	} 
} 
 
void CDialog_Query::OnCancel(){ 
	if(MessageBox("退出查询?","确定退出",MB_OKCANCEL|MB_ICONQUESTION)==IDOK){ 
		m_AdoConnection.CommitTrans(); 
		CDialog::OnCancel(); 
	} 
}