www.pudn.com > chenjing.rar > CheckProofDlg.cpp


// CheckProofDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "Library.h" 
#include "CheckProofDlg.h" 
#include "ProofSet.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CCheckProofDlg dialog 
 
 
CCheckProofDlg::CCheckProofDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CCheckProofDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CCheckProofDlg) 
	m_strProofID = _T(""); 
	//}}AFX_DATA_INIT 
} 
 
 
void CCheckProofDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CCheckProofDlg) 
	DDX_Control(pDX, IDC_LIST_RESULT, m_ctrList); 
	DDX_Text(pDX, IDC_EDIT_PROOF_NO, m_strProofID); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CCheckProofDlg, CDialog) 
	//{{AFX_MSG_MAP(CCheckProofDlg) 
	ON_BN_CLICKED(IDC_BUTTON_CHECK_PROOF, OnButtonCheckProof) 
	ON_BN_CLICKED(IDC_BUTTON_BACK, OnButtonBack) 
	ON_WM_CLOSE() 
	ON_BN_CLICKED(IDC_BUTTON_SHOW_ALL, OnButtonShowAll) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CCheckProofDlg message handlers 
 
BOOL CCheckProofDlg::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	 
	m_ctrList.InsertColumn(0,"借阅证号"); 
	m_ctrList.InsertColumn(1,"姓名"); 
	m_ctrList.InsertColumn(2,"性别"); 
	m_ctrList.InsertColumn(3,"出生年月日"); 
	m_ctrList.InsertColumn(4,"家庭住址"); 
	m_ctrList.InsertColumn(5,"身份证号"); 
	m_ctrList.InsertColumn(6,"电话号码"); 
	m_ctrList.InsertColumn(7,"现借书数量"); 
	RECT rect; 
	m_ctrList.GetWindowRect(&rect); 
	int Width=rect.right-rect.left; 
	m_ctrList.SetColumnWidth(0,Width/8); 
	m_ctrList.SetColumnWidth(1,Width/8); 
	m_ctrList.SetColumnWidth(2,Width/8); 
	m_ctrList.SetColumnWidth(3,Width/8); 
	m_ctrList.SetColumnWidth(4,Width/8); 
	m_ctrList.SetColumnWidth(5,Width/8); 
	m_ctrList.SetColumnWidth(6,Width/8); 
	m_ctrList.SetColumnWidth(7,Width/8); 
	m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT); 
 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CCheckProofDlg::OnButtonCheckProof()  
{ 
	UpdateData(); 
	if(m_strProofID=="") 
	{ 
		MessageBox("请填写借书证号码!","借阅证查询"); 
		return; 
	} 
	if(!m_database.IsOpen()) 
	{ 
		if(!m_database.Open(_T("Library"))) 
		{ 
			MessageBox("不能打开数据库!","借阅证查询"); 
			return; 
		} 
	} 
	CProofSet *m_pset=new CProofSet(&m_database); 
	CString strSQL; 
	strSQL.Format("select * from Proof_Info where Proof_ID='%s'",m_strProofID); 
	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); 
	if(m_pset->GetRecordCount()==0) 
	{ 
		MessageBox("查无此人","借阅证查询"); 
		m_pset->Close(); 
		m_database.Close(); 
		m_strProofID.Empty(); 
		UpdateData(FALSE); 
		return; 
	} 
	//读取信息,并将信息显示在控件上 
	m_ctrList.DeleteAllItems(); 
	m_pset->MoveFirst(); 
	CDBVariant varValue; 
	char buf[50]; 
	int i=0; 
	while(!m_pset->IsEOF()) 
	{ 
		int temp=0; 
		m_ctrList.InsertItem(i,buf); 
	 
		m_pset->GetFieldValue(temp,varValue); 
		m_ctrList.SetItemText(i,temp,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(1,varValue); 
		m_ctrList.SetItemText(i,1,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(2,varValue); 
		m_ctrList.SetItemText(i,2,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(3,varValue); 
		sprintf(buf,"%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month, 
			varValue.m_pdate->day); 
		m_ctrList.SetItemText(i,3,buf); 
 
		m_pset->GetFieldValue(4,varValue); 
		m_ctrList.SetItemText(i,4,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(5,varValue); 
		m_ctrList.SetItemText(i,5,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(6,varValue); 
		m_ctrList.SetItemText(i,6,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(7,varValue); 
		sprintf(buf,"%d",varValue.m_lVal); 
		m_ctrList.SetItemText(i,7,buf); 
 
		i++; 
		m_pset->MoveNext(); 
	} 
} 
 
void CCheckProofDlg::OnButtonBack()  
{ 
	if(m_database.IsOpen()) 
		m_database.Close(); 
	OnOK(); 
} 
 
void CCheckProofDlg::OnClose()  
{ 
	OnButtonBack(); 
} 
 
void CCheckProofDlg::OnButtonShowAll()  
{ 
	if(!m_database.IsOpen()) 
	{ 
		if(!m_database.Open(_T("Library"))) 
		{ 
			MessageBox("无法打开数据库!","借阅证查询"); 
			return; 
		} 
	} 
	CProofSet *m_pset=new CProofSet(&m_database); 
	CString strSQL; 
	strSQL.Format("select * from Proof_Info"); 
	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); 
	if(m_pset->GetRecordCount()==0) 
	{ 
		MessageBox("数据库中尚无证信息可供查询!","借阅证查询"); 
		m_pset->Close(); 
		m_database.Close(); 
		m_strProofID.Empty(); 
		UpdateData(FALSE); 
		return; 
	} 
	//读取信息,并将信息显示在控件上 
	m_ctrList.DeleteAllItems(); 
	m_pset->MoveFirst(); 
	CDBVariant varValue; 
	char buf[50]; 
	int i=0; 
	while(!m_pset->IsEOF()) 
	{ 
		int temp=0; 
		m_ctrList.InsertItem(i,buf); 
	 
		m_pset->GetFieldValue(temp,varValue); 
		m_ctrList.SetItemText(i,temp,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(1,varValue); 
		m_ctrList.SetItemText(i,1,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(2,varValue); 
		m_ctrList.SetItemText(i,2,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(3,varValue); 
		sprintf(buf,"%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month, 
			varValue.m_pdate->day); 
		m_ctrList.SetItemText(i,3,buf); 
 
		m_pset->GetFieldValue(4,varValue); 
		m_ctrList.SetItemText(i,4,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(5,varValue); 
		m_ctrList.SetItemText(i,5,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(6,varValue); 
		m_ctrList.SetItemText(i,6,varValue.m_pstring->GetBuffer(1)); 
 
		m_pset->GetFieldValue(7,varValue); 
		sprintf(buf,"%d",varValue.m_lVal); 
		m_ctrList.SetItemText(i,7,buf); 
 
		i++; 
		m_pset->MoveNext(); 
	}		 
}