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


// DaCxXXDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "student.h" 
#include "DaCxXXDlg.h" 
#include "StudentView.h" 
#include "Picture.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CDaCxXXDlg dialog 
 
 
CDaCxXXDlg::CDaCxXXDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CDaCxXXDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CDaCxXXDlg) 
	m_S_Sfyd = FALSE; 
	m_S_Bj = _T(""); 
	m_S_Byxx = _T(""); 
	m_S_Bz = _T(""); 
	m_S_Csrq = _T(""); 
	m_S_ID = _T(""); 
	m_S_Jb = _T(""); 
	m_S_Jg = _T(""); 
	m_S_Jkzk = _T(""); 
	m_S_Jzxm = _T(""); 
	m_S_Lxdh = _T(""); 
	m_S_Mz = _T(""); 
	m_S_Tcah = _T(""); 
	m_S_Xb = _T(""); 
	m_S_Xm = _T(""); 
	m_S_Xjzt = _T(""); 
	m_S_Xsly = _T(""); 
	m_S_Yb = _T(""); 
	m_S_Zsqk = _T(""); 
	m_S_Zy = _T(""); 
	m_S_Zzmm = _T(""); 
	m_S_Hkd = _T(""); 
	m_S_Jzzz = _T(""); 
	//}}AFX_DATA_INIT 
	m_zp.Buffer =NULL; 
	m_zp.Size = 0; 
	IsInit = false; 
} 
 
 
void CDaCxXXDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	if(!IsInit) 
	{ 
		for(int i=0;im_recSet->MoveNext(); 
		} 
	 
		ShowRow(); 
	} 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CDaCxXXDlg) 
	DDX_Control(pDX, IDC_IMAGE_ZP, m_S_Zp); 
	DDX_Control(pDX, IDC_BU_UP, m_Bu_Up); 
	DDX_Control(pDX, IDC_BU_DOWN, m_Bu_Down); 
	DDX_Control(pDX, IDC_BU_Z, m_Bu_Z); 
	DDX_Control(pDX, IDC_BU_A, m_Bu_A); 
	DDX_Control(pDX, IDC_LIST_JT, m_S_JT); 
	DDX_Control(pDX, IDC_LIST_JL, m_S_JL); 
	DDX_Check(pDX, IDC_CHECK_SFYD, m_S_Sfyd); 
	DDX_Text(pDX, IDC_EDIT_BJ, m_S_Bj); 
	DDX_Text(pDX, IDC_EDIT_BYXX, m_S_Byxx); 
	DDX_Text(pDX, IDC_EDIT_BZ, m_S_Bz); 
	DDX_Text(pDX, IDC_EDIT_CSRQ, m_S_Csrq); 
	DDX_Text(pDX, IDC_EDIT_ID, m_S_ID); 
	DDX_Text(pDX, IDC_EDIT_JB, m_S_Jb); 
	DDX_Text(pDX, IDC_EDIT_JG, m_S_Jg); 
	DDX_Text(pDX, IDC_EDIT_JKZK, m_S_Jkzk); 
	DDX_Text(pDX, IDC_EDIT_JZXM, m_S_Jzxm); 
	DDX_Text(pDX, IDC_EDIT_LXDH, m_S_Lxdh); 
	DDX_Text(pDX, IDC_EDIT_MZ, m_S_Mz); 
	DDX_Text(pDX, IDC_EDIT_TCAH, m_S_Tcah); 
	DDX_Text(pDX, IDC_EDIT_XB, m_S_Xb); 
	DDX_Text(pDX, IDC_EDIT_XM, m_S_Xm); 
	DDX_Text(pDX, IDC_EDIT_XJZT, m_S_Xjzt); 
	DDX_Text(pDX, IDC_EDIT_XSLY, m_S_Xsly); 
	DDX_Text(pDX, IDC_EDIT_YB, m_S_Yb); 
	DDX_Text(pDX, IDC_EDIT_ZSQK, m_S_Zsqk); 
	DDX_Text(pDX, IDC_EDIT_ZY, m_S_Zy); 
	DDX_Text(pDX, IDC_EDIT_ZZMM, m_S_Zzmm); 
	DDX_Text(pDX, IDC_EDIT1_HKD, m_S_Hkd); 
	DDX_Text(pDX, IDC_EDIT1_JZZZ, m_S_Jzzz); 
	//}}AFX_DATA_MAP 
	if(!IsInit) 
	{ 
	 
		LV_COLUMN lvc; 
		 
		lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH /*| LVCF_FMT*/; 
		 
		lvc.iSubItem = 0; 
		lvc.pszText = (char *)"关系"; 
		lvc.cx = 50; 
		m_S_JT.InsertColumn(0,&lvc); 
		 
		lvc.iSubItem = 1; 
		lvc.pszText = (char *)"姓名"; 
		lvc.cx = 100; 
		m_S_JT.InsertColumn(1,&lvc); 
		 
		lvc.iSubItem = 2; 
		lvc.pszText = (char *)"年龄"; 
		lvc.cx =50; 
		m_S_JT.InsertColumn(2,&lvc); 
		 
		lvc.iSubItem = 3; 
		lvc.pszText = (char *)"工作单位及职位"; 
		lvc.cx = 300; 
		m_S_JT.InsertColumn(3,&lvc); 
		 
		lvc.iSubItem = 4; 
		lvc.pszText = (char *)"联系电话"; 
		lvc.cx = 100; 
		m_S_JT.InsertColumn(4,&lvc); 
		 
		lvc.iSubItem = 0; 
		lvc.pszText = (char *)"何年月起"; 
		lvc.cx = 100; 
		m_S_JL.InsertColumn(0,&lvc); 
		 
		lvc.iSubItem = 1; 
		lvc.pszText = (char *)"到何年月"; 
		lvc.cx = 100; 
		m_S_JL.InsertColumn(1,&lvc); 
		 
		lvc.iSubItem = 2; 
		lvc.pszText = (char *)"在何学校及任职"; 
		lvc.cx =200; 
		m_S_JL.InsertColumn(2,&lvc); 
		 
		lvc.iSubItem = 3; 
		lvc.pszText = (char *)"证明人"; 
		lvc.cx = 100; 
		m_S_JL.InsertColumn(3,&lvc); 
		 
		ShowRowJ(); 
		IsInit = true; 
	} 
 
} 
 
 
BEGIN_MESSAGE_MAP(CDaCxXXDlg, CDialog) 
	//{{AFX_MSG_MAP(CDaCxXXDlg) 
	ON_BN_CLICKED(IDC_BU_UP, OnBuUp) 
	ON_BN_CLICKED(IDC_BU_DOWN, OnBuDown) 
	ON_BN_CLICKED(IDC_BU_A, OnBuA) 
	ON_BN_CLICKED(IDC_BU_Z, OnBuZ) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CDaCxXXDlg message handlers 
 
void CDaCxXXDlg::OnBuUp()  
{ 
	// TODO: Add your control notification handler code here 
	this->m_Bu_A.EnableWindow(true); 
	this->m_Bu_Down.EnableWindow(true); 
	this->m_Bu_Z.EnableWindow(true); 
	this->m_Bu_Up.EnableWindow(true); 
	m_parent->m_recSet->MovePrevious(); 
	if(m_parent->m_recSet->IsEOF()) 
	{ 
		this->m_Bu_Z.EnableWindow(false); 
		this->m_Bu_Down.EnableWindow(false); 
		m_parent->m_recSet->MoveLast(); 
	} 
	if(m_parent->m_recSet->IsBOF()) 
	{ 
		this->m_Bu_A.EnableWindow(false); 
		this->m_Bu_Up.EnableWindow(false); 
		m_parent->m_recSet->MoveFirst(); 
	} 
	this->UpdateData(true); 
	ShowRow(); 
	ShowRowJ(); 
	this->UpdateData(false); 
} 
 
void CDaCxXXDlg::OnBuDown()  
{ 
	// TODO: Add your control notification handler code here 
	this->m_Bu_A.EnableWindow(true); 
	this->m_Bu_Down.EnableWindow(true); 
	this->m_Bu_Z.EnableWindow(true); 
	this->m_Bu_Up.EnableWindow(true); 
	m_parent->m_recSet->MoveNext(); 
	if(m_parent->m_recSet->IsEOF()) 
	{ 
		this->m_Bu_Z.EnableWindow(false); 
		this->m_Bu_Down.EnableWindow(false); 
		m_parent->m_recSet->MoveLast(); 
	} 
	if(m_parent->m_recSet->IsBOF()) 
	{ 
		this->m_Bu_A.EnableWindow(false); 
		this->m_Bu_Up.EnableWindow(false); 
		m_parent->m_recSet->MoveFirst(); 
	} 
	this->UpdateData(true); 
	ShowRow(); 
	ShowRowJ(); 
	this->UpdateData(false); 
} 
 
void CDaCxXXDlg::ShowRow() 
{ 
	COleDateTime dateTemp; 
	m_parent->m_recSet->GetFieldValue("S_Bj",m_S_Bj); 
	m_parent->m_recSet->GetFieldValue("S_Byxx",m_S_Byxx); 
	m_parent->m_recSet->GetFieldValue("S_Bz",m_S_Bz); 
	m_parent->m_recSet->GetFieldValue("S_Csrq",dateTemp); 
	m_S_Csrq = dateTemp.Format("%Y/%m/%d"); 
	m_parent->m_recSet->GetFieldValue("S_Hkd",m_S_Hkd); 
	m_parent->m_recSet->GetFieldValue(0,m_S_ID); 
	m_parent->m_recSet->GetFieldValue("S_Jb",m_S_Jb); 
	m_parent->m_recSet->GetFieldValue("S_Jg",m_S_Jg); 
	m_parent->m_recSet->GetFieldValue("S_Jkzk",m_S_Jkzk); 
	m_parent->m_recSet->GetFieldValue("S_Jzxm",m_S_Jzxm); 
	m_parent->m_recSet->GetFieldValue("S_Jtzz",m_S_Jzzz); 
	m_parent->m_recSet->GetFieldValue("S_Lxdh",m_S_Lxdh); 
	m_parent->m_recSet->GetFieldValue("S_Mz",m_S_Mz); 
	m_parent->m_recSet->GetFieldValue("S_Sfyd",m_S_Sfyd); 
	m_parent->m_recSet->GetFieldValue("S_Xb",m_S_Xb); 
	m_parent->m_recSet->GetFieldValue("S_zt",m_S_Xjzt); 
	m_parent->m_recSet->GetFieldValue("S_Ahtc",m_S_Tcah); 
	m_parent->m_recSet->GetFieldValue("S_Name",m_S_Xm); 
	m_parent->m_recSet->GetFieldValue("S_Xsly",m_S_Xsly); 
	m_parent->m_recSet->GetFieldValue("S_Yb",m_S_Yb); 
	m_parent->m_recSet->GetFieldValue("S_Zsqk",m_S_Zsqk); 
	m_parent->m_recSet->GetFieldValue("S_Zzmm",m_S_Zzmm); 
	m_parent->m_recSet->GetFieldValue("Z_Name",m_S_Zy); 
	 
	 
} 
 
void CDaCxXXDlg::OnBuA()  
{ 
	// TODO: Add your control notification handler code here 
	m_parent->m_recSet->MoveFirst(); 
	if(m_parent->m_recSet->IsEOF()) 
	{ 
		this->m_Bu_Z.EnableWindow(false); 
		this->m_Bu_Down.EnableWindow(false); 
		m_parent->m_recSet->MoveLast(); 
	} 
	if(m_parent->m_recSet->IsBOF()) 
	{ 
		this->m_Bu_A.EnableWindow(false); 
		this->m_Bu_Up.EnableWindow(false); 
		m_parent->m_recSet->MoveFirst(); 
	} 
	this->UpdateData(true); 
	ShowRow(); 
	ShowRowJ(); 
	this->UpdateData(false); 
} 
 
void CDaCxXXDlg::OnBuZ()  
{ 
	// TODO: Add your control notification handler code here 
	m_parent->m_recSet->MoveLast(); 
	if(m_parent->m_recSet->IsEOF()) 
	{ 
		this->m_Bu_Z.EnableWindow(false); 
		this->m_Bu_Down.EnableWindow(false); 
		m_parent->m_recSet->MoveLast(); 
	} 
	if(m_parent->m_recSet->IsBOF()) 
	{ 
		this->m_Bu_A.EnableWindow(false); 
		this->m_Bu_Up.EnableWindow(false); 
		m_parent->m_recSet->MoveFirst(); 
	} 
	this->UpdateData(true); 
	ShowRow(); 
	ShowRowJ(); 
	this->UpdateData(false); 
	 
} 
 
void CDaCxXXDlg::ShowRowJ() 
{ 
	//家庭成员 
	CString sqlt; 
	sqlt.Format("SELECT * FROM JtcyTable WHERE S_ID='%s'",m_S_ID); 
	m_parent->m_recSetTemp->Open(sqlt.GetBuffer(100)); 
	m_S_JT.DeleteAllItems(); 
	int i=0; 
	LV_ITEM lvitem; 
	lvitem.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_STATE; 
	lvitem.state = 0;       
	lvitem.stateMask = 0;  
	char temp1[50]; 
	CString temp; 
	while(!m_parent->m_recSetTemp->IsEOF()) 
	{ 
		 
		lvitem.iItem = i; 
		lvitem.iSubItem = 0; 
		lvitem.pszText =itoa(i, temp1, 10);  
		m_S_JT.InsertItem(&lvitem); 
		 
		m_parent->m_recSetTemp->GetFieldValue("J_Gx",temp); 
		m_S_JT.SetItemText(i,0,temp); 
		m_parent->m_recSetTemp->GetFieldValue("J_Name",temp); 
		m_S_JT.SetItemText(i,1,temp); 
		m_parent->m_recSetTemp->GetFieldValue("J_Nl",temp); 
		m_S_JT.SetItemText(i,2,temp); 
		m_parent->m_recSetTemp->GetFieldValue("J_Dw",temp); 
		m_S_JT.SetItemText(i,3,temp); 
		m_parent->m_recSetTemp->GetFieldValue("J_Dh",temp);	 
		m_S_JT.SetItemText(i,4,temp); 
		i++; 
		m_parent->m_recSetTemp->MoveNext(); 
	} 
	m_parent->m_recSetTemp->Close(); 
	 
	//经历 
	sqlt.Format("SELECT * FROM JlTable WHERE S_ID='%s'",m_S_ID); 
	m_parent->m_recSetTemp->Open(sqlt.GetBuffer(100)); 
	m_S_JL.DeleteAllItems(); 
	i=0; 
	COleDateTime dateTemp; 
	while(!m_parent->m_recSetTemp->IsEOF()) 
	{ 
		 
		lvitem.iItem = i; 
		lvitem.iSubItem = 0; 
		lvitem.pszText =itoa(i, temp1, 10);  
		m_S_JL.InsertItem(&lvitem); 
		 
		m_parent->m_recSetTemp->GetFieldValue("L_From",dateTemp); 
		m_S_JL.SetItemText(i,0,dateTemp.Format("%Y/%m/%d")); 
		m_parent->m_recSetTemp->GetFieldValue("L_To",dateTemp); 
		m_S_JL.SetItemText(i,1,dateTemp.Format("%Y/%m/%d")); 
		m_parent->m_recSetTemp->GetFieldValue("L_Xxm",temp); 
		m_S_JL.SetItemText(i,2,temp); 
		m_parent->m_recSetTemp->GetFieldValue("L_Zmr",temp); 
		m_S_JL.SetItemText(i,3,temp); 
	 
		i++; 
		m_parent->m_recSetTemp->MoveNext(); 
	} 
	m_parent->m_recSetTemp->Close(); 
	 
	//照片 
	m_S_Zp.Invalidate(true); 
	 
	CADOFieldInfo fldInfo; 
	 
	 
	m_parent->m_recSet->GetFieldInfo("S_Zp",&fldInfo); 
	 
	int nSize = (int)(fldInfo.m_lSize); 
	 
	if(nSize>0) 
	{ 
		_variant_t	varBLOB; 
		m_parent->m_recSet->GetFieldValue("S_Zp",varBLOB); 
		 
		if(varBLOB.vt == (VT_ARRAY | VT_UI1)) 
		{ 
			if(BYTE *pBuffer = new BYTE [nSize+1])		///重新申请必要的存储空间 
			{	 
				char *pBuf = NULL; 
				SafeArrayAccessData(varBLOB.parray,(void **)&pBuf); 
				memcpy(pBuffer,pBuf,nSize);				///复制数据到缓冲区m_pBMPBuffer 
				SafeArrayUnaccessData (varBLOB.parray); 
				//	int nSize = lDataSize; 
				(m_Pic.LoadPictureData(pBuffer, nSize)); 
				 
				delete [] pBuffer; 
				pBuf=0; 
				 
				 
				///生成BITMAP对象 
				CDC *dc = m_S_Zp.GetDC(); 
				CRect  rect; 
				m_S_Zp.GetClientRect(rect); 
				m_Pic.UpdateSizeOnDC(dc); // Get Picture Dimentions In Pixels 
				m_Pic.Show(dc, CRect(0,0,rect.Width(),rect.Height())); 
			} 
		} 
	} 
	else 
	{ 
	} 
}