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


// CheckBooksDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "Library.h" 
#include "CheckBooksDlg.h" 
#include "BookSet.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CCheckBooksDlg dialog 
 
 
CCheckBooksDlg::CCheckBooksDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CCheckBooksDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CCheckBooksDlg) 
	m_strBookID = _T(""); 
	//}}AFX_DATA_INIT 
} 
 
 
void CCheckBooksDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CCheckBooksDlg) 
	DDX_Control(pDX, IDC_LIST_RESULT, m_ctrList); 
	DDX_Text(pDX, IDC_EDIT_BOOK_NO, m_strBookID); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CCheckBooksDlg, CDialog) 
	//{{AFX_MSG_MAP(CCheckBooksDlg) 
	ON_BN_CLICKED(IDC_BUTTON_CHECK, OnButtonCheck) 
	ON_BN_CLICKED(IDC_BUTTON_CHECK_ALL, OnButtonCheckAll) 
	ON_BN_CLICKED(IDC_BUTTON_BACK, OnButtonBack) 
	ON_WM_CLOSE() 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CCheckBooksDlg message handlers 
 
void CCheckBooksDlg::OnButtonCheck()  
{ 
	UpdateData(); 
	if(!m_database.IsOpen()) 
	{ 
		if(!m_database.Open(_T("Library"))) 
		{ 
			MessageBox("Cannot access the database!","图书查询"); 
			return; 
		} 
	} 
	 
	CBookSet *m_pset=new CBookSet(&m_database); 
	CString strSQL; 
	strSQL.Format("select * from Book_Info where Book_ID='%s'",m_strBookID); 
	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); 
	if(m_pset->GetRecordCount()==0) 
	{ 
		MessageBox("没有这本书!","图书查询"); 
		m_database.Close(); 
		return; 
	} 
 
	//处理表格 
	m_ctrList.DeleteAllItems(); 
	m_pset->MoveFirst(); 
	char buf[50]; 
	CDBVariant varValue; 
	int i=0; 
	while(!m_pset->IsEOF()) 
	{ 
		m_ctrList.InsertItem(i,buf); 
		m_ctrList.SetItemText(i,0,m_strBookID); 
		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); 
		m_ctrList.SetItemText(i,3,varValue.m_pstring->GetBuffer(1)); 
		m_pset->GetFieldValue(4,varValue); 
		sprintf(buf,"%.2f",varValue.m_dblVal); 
		m_ctrList.SetItemText(i,4,buf); 
		m_pset->GetFieldValue(5,varValue); 
		sprintf(buf,"%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month, 
			varValue.m_pdate->day); 
		m_ctrList.SetItemText(i,5,buf); 
		m_pset->GetFieldValue(6,varValue); 
		sprintf(buf,"%d",varValue.m_lVal); 
		m_ctrList.SetItemText(i,6,buf); 
		 
		m_pset->GetFieldValue(7,varValue); 
		sprintf(buf,"%d",varValue.m_lVal); 
		m_ctrList.SetItemText(i,7,buf); 
		i++; 
		m_pset->MoveNext(); 
		UpdateData(FALSE); 
	} 
	m_pset->Close(); 
	m_database.Close();	 
} 
 
BOOL CCheckBooksDlg::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	 
	// TODO: Add extra initialization here 
	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 CCheckBooksDlg::OnButtonCheckAll()  
{ 
	if(!m_database.IsOpen()) 
	{ 
		if(!m_database.Open(_T("Library"))) 
		{ 
			MessageBox("Cannot access the database!","图书查询"); 
			return; 
		} 
	} 
	 
	CBookSet *m_pset=new CBookSet(&m_database); 
	CString strSQL; 
	strSQL.Format("select * from Book_Info"); 
	m_pset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); 
	if(m_pset->GetRecordCount()==0) 
	{ 
		MessageBox("没有任何书籍信息!","图书查询"); 
		m_database.Close(); 
		return; 
	} 
 
	//处理表格 
	m_ctrList.DeleteAllItems(); 
	m_pset->MoveFirst(); 
	char buf[50]; 
	CDBVariant varValue; 
	int i=0; 
	while(!m_pset->IsEOF()) 
	{ 
		int temp=0; 
		m_ctrList.InsertItem(i,buf); 
		m_pset->GetFieldValue(temp,varValue); 
		m_strBookID=varValue.m_pstring->GetBuffer(1); 
		m_ctrList.SetItemText(i,0,m_strBookID); 
		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); 
		m_ctrList.SetItemText(i,3,varValue.m_pstring->GetBuffer(1)); 
		m_pset->GetFieldValue(4,varValue); 
		sprintf(buf,"%.2f",varValue.m_dblVal); 
		m_ctrList.SetItemText(i,4,buf); 
		m_pset->GetFieldValue(5,varValue); 
		sprintf(buf,"%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month, 
			varValue.m_pdate->day); 
		m_ctrList.SetItemText(i,5,buf); 
		m_pset->GetFieldValue(6,varValue); 
		sprintf(buf,"%d",varValue.m_lVal); 
		m_ctrList.SetItemText(i,6,buf); 
		 
		m_pset->GetFieldValue(7,varValue); 
		sprintf(buf,"%d",varValue.m_lVal); 
		m_ctrList.SetItemText(i,7,buf); 
		i++; 
		m_pset->MoveNext(); 
		UpdateData(FALSE); 
	} 
	m_pset->Close(); 
	m_database.Close(); 
	m_strBookID=""; 
	UpdateData(FALSE); 
} 
 
void CCheckBooksDlg::OnButtonBack()  
{ 
	if(m_database.IsOpen()) 
		m_database.Close(); 
	OnOK(); 
} 
 
void CCheckBooksDlg::OnClose()  
{ 
	OnButtonBack(); 
}