www.pudn.com > PBMS.rar > BookInfoDlg.cpp


// BookInfoDlg.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "pbms.h" 
#include "BookInfoDlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CBookInfoDlg dialog 
 
 
CBookInfoDlg::CBookInfoDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CBookInfoDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CBookInfoDlg) 
	m_ckIsLiter = FALSE; 
	m_borrowTime = 0; 
	m_szBookNumber = _T(""); 
	m_bookId = 0; 
	m_szBookName = _T(""); 
	m_reborrowTime = 0; 
	//}}AFX_DATA_INIT 
	m_curBookInfo.Id = 0; 
	IsAddNew = true; 
} 
 
 
void CBookInfoDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CBookInfoDlg) 
	DDX_Control(pDX, IDC_COMBO_LIB, m_comLib); 
	DDX_Check(pDX, IDC_CHECK_LITER, m_ckIsLiter); 
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_BORROW, m_borrowTime); 
	DDX_Text(pDX, IDC_EDIT_BOOKNUMBER, m_szBookNumber); 
	DDX_Text(pDX, IDC_EDIT_ID, m_bookId); 
	DDX_Text(pDX, IDC_EDIT_NAME, m_szBookName); 
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_REB, m_reborrowTime); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CBookInfoDlg, CDialog) 
	//{{AFX_MSG_MAP(CBookInfoDlg) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CBookInfoDlg message handlers 
 
BOOL CBookInfoDlg::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	//*==============初始化对话框中的控件===============*// 
	//图书馆列表 
	for (int i = 0; i < m_libsInfo.GetSize(); i ++) 
	{ 
		m_comLib.AddString(m_libsInfo.GetAt(i).name); 
		//绑定数据--ID 
		m_comLib.SetItemData(i,m_libsInfo.GetAt(i).id); 
	} 
	m_comLib.SetCurSel(0); 
	//***如果没有传入数据,则本对话框功能是 ***// 
	//***添加书籍,故Id由构造函数初始化为0了***// 
	//***借书时间为当前时间,ID从Doc变量生成 ***// 
	if (m_curBookInfo.Id == 0) 
	{ 
		IsAddNew = true;	//打开此对话框是新添书籍 
		//借书时间 
		m_borrowTime = m_borrowTime.GetCurrentTime(); 
		//书籍ID 
		m_bookId = ++ CPBMSDoc::BookID;  
		//将续借时间控件设置为不可写 
		CWnd *pWnd = GetDlgItem(IDC_DATETIMEPICKER_REB); 
		pWnd->EnableWindow(false); 
	} 
	else	//编辑用户信息 
	{ 
		DataExchange(&m_curBookInfo,false); 
		IsAddNew = false;	//打开此对话框不是新添书籍,而是编辑书籍 
	} 
	//***==============================***//	 
	//*=================================================*// 
	UpdateData(false); 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CBookInfoDlg::OnCancel()  
{ 
	//将系统共享ID恢复 
	if (IsAddNew) 
	{ 
		CPBMSDoc::BookID --; 
	} 
	// 
	CDialog::OnCancel(); 
} 
 
 
 
/*=========================DataExchange=============================================== 
说明: 
	与调用方进行数据交换 
参数: 
	curBook :	书籍信息 
	save	:	读(false),存入数据库(true) 
====================================================================================*/ 
void CBookInfoDlg::DataExchange(PBOOKINFO curbook, bool save) 
{ 
	if (!save)	//显示数据 
	{ 
		//书籍ID 
		m_bookId = curbook->Id ;  
		//书名 
		m_szBookName = curbook->name ; 
		//书号 
		m_szBookNumber = curbook->bookNumber; 
		//图书馆 
		int index; 
		for(index = 0; index < m_libsInfo.GetSize(); index ++) 
		{ 
			//获取图书馆在comBox控件中的位置 
			if (curbook->LibID == m_libsInfo.GetAt(index).id) 
			{ 
				break; 
			} 
		} 
		m_comLib.SetCurSel(index); 
		//借书时间 
		m_borrowTime = CTime(curbook->borrowTime.GetYear(),curbook->borrowTime.GetMonth(),curbook->borrowTime.GetDay(),0,0,0); 
		//续借时间 
		if (curbook->reborrowCount == 0)//没有续借过 
		{ 
			//将续借时间控件设置为不可写 
			CWnd *pWnd = GetDlgItem(IDC_DATETIMEPICKER_REB); 
			pWnd->EnableWindow(false);			 
		} 
		else 
		{ 
			m_reborrowTime = CTime(curbook->reborrowTime.GetYear(),curbook->reborrowTime.GetMonth(),curbook->reborrowTime.GetDay(),0,0,0); 
		} 
		//文学书 
		m_ckIsLiter = curbook->IsLiterature; 
 
		UpdateData(false); 
	}//end-if(!save) 
	else		//写入数据库---不在这里保存数据,而是在IDOK时处理 
	{ 
	 
	}//end-else 
} 
 
void CBookInfoDlg::OnOK()  
{ 
	// TODO: Add extra validation here 
	UpdateData();	 
	//将书籍信息保存 
	//ID 
	m_curBookInfo.Id = m_bookId; 
	//借书时间 
	m_curBookInfo.borrowTime.SetDate(m_borrowTime.GetYear(),m_borrowTime.GetMonth(),m_borrowTime.GetDay()); 
	//续借时间 
	if (!IsAddNew) 
	{ 
		if (m_reborrowTime.GetYear() != 1970) 
		{ 
			m_curBookInfo.reborrowTime.SetDate(m_reborrowTime.GetYear(),m_reborrowTime.GetMonth(),m_reborrowTime.GetDay()); 
		} 
		else 
		{ 
			m_curBookInfo.reborrowTime.SetStatus(COleDateTime::null); 
		} 
	} 
	//文学书 
	m_curBookInfo.IsLiterature = m_ckIsLiter; 
	//图书馆ID 
	m_curBookInfo.LibID = (int)m_comLib.GetItemData(m_comLib.GetCurSel()); 
	//图书馆名 
	m_comLib.GetLBText(m_comLib.GetCurSel(),m_curBookInfo.LibName); 
	//书名 
	m_curBookInfo.name = m_szBookName; 
	//书号 
	m_curBookInfo.bookNumber = m_szBookNumber; 
	//续借次数 
	if (IsAddNew) 
	{ 
		m_curBookInfo.reborrowCount = 0;	 
	} 
	CDialog::OnOK(); 
}