www.pudn.com > student_system.rar > CjCxDlg.cpp


// CjCxDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "student.h" 
#include "CjCxDlg.h" 
#include "studentview.h" 
#include "PrintCjDlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CCjCxDlg dialog 
 
 
CCjCxDlg::CCjCxDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CCjCxDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CCjCxDlg) 
	m_IsBj = FALSE; 
	m_IsJb = FALSE; 
	m_IsQt = FALSE; 
	m_IsXh = FALSE; 
	m_IsXm = FALSE; 
	m_IsZy = FALSE; 
	m_Bj = _T(""); 
	m_Jb = _T(""); 
	m_Qt = _T(""); 
	m_Xh = _T(""); 
	m_Xm = _T(""); 
	m_Zy = _T(""); 
	m_Qt_G = _T(""); 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
	IsInit = false; 
	sql = ""; 
	PrintKCNameList = NULL; 
	PrintKCNameCount = 0; 
} 
 
 
void CCjCxDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CCjCxDlg) 
	DDX_Control(pDX, IDC_LIST_CJ, m_CjList); 
	DDX_Control(pDX, IDC_LIST_STU, m_StuList); 
	DDX_Control(pDX, IDC_COMBO_QT, m_Qt_G_Con); 
	DDX_Control(pDX, IDC_COMBO_ZY, m_Zy_Con); 
	DDX_Control(pDX, IDC_EDIT_BJ, m_Bj_Con); 
	DDX_Control(pDX, IDC_EDIT_JB, m_Jb_Con); 
	DDX_Control(pDX, IDC_EDIT_QT, m_Qt_Con); 
	DDX_Control(pDX, IDC_EDIT_XH, m_Xh_Con); 
	DDX_Control(pDX, IDC_EDIT_XM, m_Xm_Con); 
	DDX_Check(pDX, IDC_CHECK_BJ, m_IsBj); 
	DDX_Check(pDX, IDC_CHECK_JB, m_IsJb); 
	DDX_Check(pDX, IDC_CHECK_QT, m_IsQt); 
	DDX_Check(pDX, IDC_CHECK_XH, m_IsXh); 
	DDX_Check(pDX, IDC_CHECK_XM, m_IsXm); 
	DDX_Check(pDX, IDC_CHECK_ZY, m_IsZy); 
	DDX_Text(pDX, IDC_EDIT_BJ, m_Bj); 
	DDX_Text(pDX, IDC_EDIT_JB, m_Jb); 
	DDX_Text(pDX, IDC_EDIT_QT, m_Qt); 
	DDX_Text(pDX, IDC_EDIT_XH, m_Xh); 
	DDX_Text(pDX, IDC_EDIT_XM, m_Xm); 
	DDX_CBString(pDX, IDC_COMBO_ZY, m_Zy); 
	DDX_CBString(pDX, IDC_COMBO_QT, m_Qt_G); 
		// NOTE: the ClassWizard will add DDX and DDV calls here 
	//}}AFX_DATA_MAP 
	if(!IsInit) 
	{ 
	CRect rect1,rect2; 
	this->GetClientRect(&rect1); 
	this->m_parent->GetClientRect(&rect2); 
	int x= (rect2.Width()-STATIC_MYWIN_LEFT-rect1.Width())/2 +STATIC_MYWIN_LEFT; 
	int y= (rect2.Height()-STATIC_MYWIN_TOP-rect1.Height())/2 +STATIC_MYWIN_TOP; 
	if(xMoveWindow(x,y,rect1.Width(),rect1.Height()); 
 
	// 
	m_Bj_Con.EnableWindow(false); 
	m_Jb_Con.EnableWindow(false); 
	m_Qt_G_Con.EnableWindow(false); 
	m_Qt_Con.EnableWindow(false); 
	m_Xh_Con.EnableWindow(false); 
	m_Xm_Con.EnableWindow(false); 
	m_Zy_Con.EnableWindow(false); 
	 
	m_parent->m_recSet->Open("SELECT * FROM ZyTable"); 
	CString zname; 
	while(!m_parent->m_recSet->IsEOF()) 
	{ 
		m_parent->m_recSet->GetFieldValue("Z_Name",zname); 
		m_Zy_Con.AddString(zname); 
		m_parent->m_recSet->MoveNext(); 
	} 
	m_parent->m_recSet->Close(); 
	m_Zy_Con.SetCurSel(0); 
	m_Qt_G_Con.SetCurSel(0); 
	 
	// 
	LV_COLUMN lvc; 
	 
	lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH /*| LVCF_FMT*/; 
	 
	lvc.iSubItem = 0; 
	lvc.pszText = (char *)"学号"; 
	lvc.cx = 100; 
	m_StuList.InsertColumn(0,&lvc); 
	 
	lvc.iSubItem = 1; 
	lvc.pszText = (char *)"姓名"; 
	lvc.cx = 100; 
	m_StuList.InsertColumn(1,&lvc); 
	 
	lvc.iSubItem = 2; 
	lvc.pszText = (char *)"性别"; 
	lvc.cx = 100; 
	m_StuList.InsertColumn(2,&lvc); 
	 
	lvc.iSubItem = 3; 
	lvc.pszText = (char *)"级别"; 
	lvc.cx = 100; 
	m_StuList.InsertColumn(3,&lvc); 
	 
	lvc.iSubItem = 4; 
	lvc.pszText = (char *)"班级"; 
	lvc.cx = 100; 
	m_StuList.InsertColumn(4,&lvc); 
	 
	lvc.iSubItem = 5; 
	lvc.pszText = (char *)"专业"; 
	lvc.cx = 100; 
	m_StuList.InsertColumn(5,&lvc); 
	 
	lvc.iSubItem = 0; 
	lvc.pszText = (char *)"课程号"; 
	lvc.cx = 100; 
	m_CjList.InsertColumn(0,&lvc); 
	 
	lvc.iSubItem = 1; 
	lvc.pszText = (char *)"课程名"; 
	lvc.cx = 100; 
	m_CjList.InsertColumn(1,&lvc); 
	 
	lvc.iSubItem = 2; 
	lvc.pszText = (char *)"平时分"; 
	lvc.cx = 100; 
	m_CjList.InsertColumn(2,&lvc); 
	 
	lvc.iSubItem = 3; 
	lvc.pszText = (char *)"考试分"; 
	lvc.cx = 100; 
	m_CjList.InsertColumn(3,&lvc); 
 
	// 
	IsInit  = true; 
	} 
} 
 
 
BEGIN_MESSAGE_MAP(CCjCxDlg, CDialog) 
	//{{AFX_MSG_MAP(CCjCxDlg) 
	ON_BN_CLICKED(IDC_BU_CLOSE, OnBuClose) 
	ON_BN_CLICKED(IDC_CHECK_BJ, OnCheckBj) 
	ON_BN_CLICKED(IDC_CHECK_JB, OnCheckJb) 
	ON_BN_CLICKED(IDC_CHECK_QT, OnCheckQt) 
	ON_BN_CLICKED(IDC_CHECK_XH, OnCheckXh) 
	ON_BN_CLICKED(IDC_CHECK_XM, OnCheckXm) 
	ON_BN_CLICKED(IDC_CHECK_ZY, OnCheckZy) 
	ON_BN_CLICKED(IDC_BU_S, OnBuS) 
	ON_NOTIFY(NM_CLICK, IDC_LIST_STU, OnClickListStu) 
	ON_BN_CLICKED(IDC_BU_PRINT, OnBuPrint) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CCjCxDlg message handlers 
 
void CCjCxDlg::OnBuClose()  
{ 
	// TODO: Add your control notification handler code here 
	this->m_parent->m_Dlg_CjCx = NULL; 
	LVFINDINFO info; 
	info.psz = "成绩查询"; 
	info.flags = LVFI_STRING; 
	this->m_parent->m_listCtrlGN.DeleteItem(this->m_parent->m_listCtrlGN.FindItem(&info))	; 
	 
	this->DestroyWindow(); 
} 
 
void CCjCxDlg::OnCheckBj()  
{ 
	// TODO: Add your control notification handler code here 
	this->UpdateData(true); 
	if(m_IsBj) 
	{ 
		m_Bj_Con.EnableWindow(true); 
	} 
	else 
	{ 
		m_Bj_Con.EnableWindow(false); 
	} 
	this->UpdateData(false); 
} 
 
void CCjCxDlg::OnCheckJb()  
{ 
	// TODO: Add your control notification handler code here 
	this->UpdateData(true); 
	if(m_IsJb) 
	{ 
		m_Jb_Con.EnableWindow(true); 
	} 
	else 
	{ 
		m_Jb_Con.EnableWindow(false); 
	} 
	this->UpdateData(false); 
} 
 
void CCjCxDlg::OnCheckQt()  
{ 
	// TODO: Add your control notification handler code here 
	this->UpdateData(true); 
	if(m_IsQt) 
	{ 
		m_Qt_Con.EnableWindow(true); 
		m_Qt_G_Con.EnableWindow(true); 
	} 
	else 
	{ 
		m_Qt_Con.EnableWindow(false); 
		m_Qt_G_Con.EnableWindow(false); 
	} 
	this->UpdateData(false); 
} 
 
void CCjCxDlg::OnCheckXh()  
{ 
	// TODO: Add your control notification handler code here 
	this->UpdateData(true); 
	if(m_IsXh) 
	{ 
		m_Xh_Con.EnableWindow(true); 
	} 
	else 
	{ 
		m_Xh_Con.EnableWindow(false); 
	} 
	this->UpdateData(false); 
} 
 
void CCjCxDlg::OnCheckXm()  
{ 
	// TODO: Add your control notification handler code here 
	this->UpdateData(true); 
	if(m_IsXm) 
	{ 
		m_Xm_Con.EnableWindow(true); 
	} 
	else 
	{ 
		m_Xm_Con.EnableWindow(false); 
	} 
	this->UpdateData(false); 
} 
 
void CCjCxDlg::OnCheckZy()  
{ 
	// TODO: Add your control notification handler code here 
	this->UpdateData(true); 
	if(m_IsZy) 
	{ 
		m_Zy_Con.EnableWindow(true); 
	} 
	else 
	{ 
		m_Zy_Con.EnableWindow(false); 
	} 
	this->UpdateData(false); 
} 
 
void CCjCxDlg::OnBuS()  
{ 
	// TODO: Add your control notification handler code here 
	this->UpdateData(true); 
	if(!(m_IsBj || m_IsJb || m_IsQt || m_IsXh || m_IsXm || m_IsZy)) 
	{ 
		MessageBox("请选择查询条件"); 
		return; 
	} 
	sql = "SELECT * FROM student,ZyTable WHERE student.Z_ID = ZyTable.Z_ID"; 
	if(m_IsBj) 
	{ 
		sql+=" AND S_Bj='"+m_Bj+"'"; 
	} 
	if(m_IsJb) 
	{ 
		sql+=" AND S_Jb='"+m_Jb+"'"; 
	} 
	if(m_IsQt) 
	{ 
		CString temp; 
		if(m_Qt_G.Compare("性别")==0) 
		{ 
			temp = "S_Xb"; 
		} 
		else if(m_Qt_G.Compare("学籍状态")==0) 
		{ 
			temp = "S_Zt"; 
		} 
		else if(m_Qt_G.Compare("民族")==0) 
		{ 
			temp = "S_Mz"; 
		} 
		else if(m_Qt_G.Compare("政治面貌")==0) 
		{ 
			temp = "S_Zzmm"; 
		} 
		else if(m_Qt_G.Compare("住宿情况")==0) 
		{ 
			temp = "S_Zsqk"; 
		} 
		else if(m_Qt_G.Compare("全部") == 0) 
		{ 
			temp = "'"+m_Qt+"'"; 
		} 
		else 
		{ 
			temp = m_Qt_G; 
		} 
		sql+=" AND "+temp+"='"+m_Qt+"'"; 
	} 
	if(m_IsXh) 
	{ 
		sql+=" AND S_ID='"+m_Xh+"'"; 
	} 
	if(m_IsXm) 
	{ 
		sql+=" AND S_Name='"+m_Xm+"'"; 
	} 
	if(m_IsZy) 
	{ 
		sql+=" AND Z_Name='"+m_Zy+"'"; 
	} 
	 
	m_parent->m_recSet->Open(sql.GetBuffer(200)); 
	if(!m_parent->m_recSet->IsEOF()) 
	{ 
		m_StuList.DeleteAllItems(); 
		CString temp; 
		COleDateTime dateTemp; 
		int i=0; 
		LV_ITEM lvitem; 
		lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; 
		lvitem.state = 0;       
		lvitem.stateMask = 0;  
		char temp1[50]; 
		 
		while(!m_parent->m_recSet->IsEOF()) 
		{ 
			 
			 
			lvitem.iItem = i; 
			lvitem.iSubItem = 0; 
			lvitem.pszText =itoa(i, temp1, 10);  
			m_StuList.InsertItem(&lvitem); 
			 
			m_parent->m_recSet->GetFieldValue("S_ID",temp); 
			m_StuList.SetItemText(i,0,temp); 
			m_parent->m_recSet->GetFieldValue("S_Name",temp); 
			m_StuList.SetItemText(i,1,temp); 
			m_parent->m_recSet->GetFieldValue("S_Xb",temp); 
			m_StuList.SetItemText(i,2,temp); 
			m_parent->m_recSet->GetFieldValue("S_Jb",temp); 
			m_StuList.SetItemText(i,3,temp); 
			m_parent->m_recSet->GetFieldValue("S_Bj",temp); 
			m_StuList.SetItemText(i,4,temp); 
			m_parent->m_recSet->GetFieldValue("Z_Name",temp); 
			m_StuList.SetItemText(i,5,temp); 
			 
			i++; 
			m_parent->m_recSet->MoveNext(); 
		} 
	} 
	else 
	{ 
		MessageBox("未找到此人"); 
	} 
	m_parent->m_recSet->Close(); 
} 
 
void CCjCxDlg::OnClickListStu(NMHDR* pNMHDR, LRESULT* pResult)  
{ 
	// TODO: Add your control notification handler code here 
	int index = m_StuList.GetSelectionMark(); 
	if(index<0) 
	{ 
		return; 
	} 
	 
	CString SID =m_StuList.GetItemText(index,0); 
	RefreshCj(SID); 
	 
 
	 
	this->UpdateData(false); 
	*pResult = 0; 
} 
 
void CCjCxDlg::RefreshCj(CString SID) 
{ 
	m_CjList.DeleteAllItems(); 
	CString sqlt; 
	sqlt.Format("SELECT * FROM CjTable,KcTable WHERE CjTable.KC_ID=KcTable.KC_ID AND CjTable.S_ID='%s'"\ 
		,SID); 
	m_parent->m_recSet->Open(sqlt.GetBuffer(200)); 
	if(!m_parent->m_recSet->IsEOF()) 
	{ 
		CString temp; 
		double tempf; 
		int i=0; 
		LV_ITEM lvitem; 
		lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; 
		lvitem.state = 0;       
		lvitem.stateMask = 0;  
		char temp1[50]; 
		 
		while(!m_parent->m_recSet->IsEOF()) 
		{ 
			lvitem.iItem = i; 
			lvitem.iSubItem = 0; 
			lvitem.pszText =itoa(i, temp1, 10);  
			m_CjList.InsertItem(&lvitem); 
			 
			m_parent->m_recSet->GetFieldValue(1,temp); 
			m_CjList.SetItemText(i,0,temp); 
			m_parent->m_recSet->GetFieldValue(5,temp); 
			m_CjList.SetItemText(i,1,temp); 
			m_parent->m_recSet->GetFieldValue(2,tempf); 
			temp.Format("%.2f",tempf); 
			m_CjList.SetItemText(i,2,temp); 
			m_parent->m_recSet->GetFieldValue(3,tempf); 
			temp.Format("%.2f",tempf); 
			m_CjList.SetItemText(i,3,temp); 
			 
			 
			i++; 
			m_parent->m_recSet->MoveNext(); 
		} 
	} 
	m_parent->m_recSet->Close(); 
} 
 
void CCjCxDlg::OnBuPrint()  
{ 
	// TODO: Add your control notification handler code here 
	if(sql.Compare("")==0 || m_StuList.GetItemCount()<=0) 
	{ 
		MessageBox("没有学生,无法打印成绩"); 
		return; 
	} 
	CPrintCjDlg dlg; 
	dlg.m_parent = this; 
	dlg.sql = this->sql; 
	if(IDOK == dlg.DoModal()) 
	{ 
		m_parent->PrintOption = IDD_DLG_CJ_CX; 
		m_parent->PrintDlg = this; 
		m_parent->StartPrintPreview(); 
	} 
}