📄 borrowbook.cpp
字号:
// BorrowBook.cpp : implementation file
//
#include "stdafx.h"
#include "BookLib.h"
#include "BorrowBook.h"
#include "ReaderAddDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBorrowBook dialog
CBorrowBook::CBorrowBook(CWnd* pParent /*=NULL*/)
: CDialog(CBorrowBook::IDD, pParent)
{
//{{AFX_DATA_INIT(CBorrowBook)
m_bookid = _T("");
m_readerid = _T("");
m_max = _T("");
m_expire = _T("");
m_remark = _T("");
//}}AFX_DATA_INIT
}
void CBorrowBook::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBorrowBook)
DDX_Control(pDX, IDC_CMB_BOOKID, m_cmb_bookid);
DDX_Control(pDX, IDC_CMB_READERID, m_cmb_readerid);
DDX_CBString(pDX, IDC_CMB_BOOKID, m_bookid);
DDX_CBString(pDX, IDC_CMB_READERID, m_readerid);
DDX_Control(pDX, IDC_DATAGRID1, m_dg);
DDX_Text(pDX, IDC_EDIT_MAX, m_max);
DDX_Text(pDX, IDC_EDIT_EXPIRE, m_expire);
DDX_Text(pDX, IDC_EDIT_REMARK, m_remark);
DDV_MaxChars(pDX, m_remark, 100);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBorrowBook, CDialog)
//{{AFX_MSG_MAP(CBorrowBook)
ON_BN_CLICKED(IDC_BTN_BORROW, OnBtnBorrow)
ON_BN_CLICKED(IDC_BTN_NEW_READER, OnBtnNewReader)
ON_CBN_SELCHANGE(IDC_CMB_READERID, OnSelchangeCmbReaderid)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBorrowBook message handlers
void CBorrowBook::OnBtnBorrow()
{
if(m_cmb_bookid.GetCurSel()==-1 || m_cmb_readerid.GetCurSel()==-1)
{
MessageBox("请选择书籍编号和读者编号!","提示");
return;
}
CString strBookid,strReaderid;
m_cmb_bookid.GetLBText(m_cmb_bookid.GetCurSel(),strBookid);
m_cmb_readerid.GetLBText(m_cmb_readerid.GetCurSel(),strReaderid);
CString sql,strCount;
sql.Format("select count(bookID) from 借阅记录表 where readerID=%d and 状态='借出'",atoi(strReaderid));
g_adoDB.ExecuteQueryValue(sql,strCount);
if(atoi(strCount)==maxqty)
{
MessageBox("该读者借阅数量已达到上限!","错误");
return;
}
CString strID;
sql.Format("Select max(recordID) from 借阅记录表");
g_adoDB.ExecuteQueryValue(sql,strID);
int newID=atoi(strID)+1;
CTime time=CTime::GetCurrentTime();
CString strTime=time.Format("%Y-%m-%d");
sql.Format("Insert into 借阅记录表(recordID,bookID,readerID,起始日期,状态,备注) "
" values(%d,'%s',%d,'%s','%s','%s')"
,newID,strBookid,atoi(strReaderid),strTime,"借出",m_remark);
g_adoDB.Execute(sql);//插入借阅记录表
sql.Format("select ISBN from 书籍编号表 where bookID='%s'",strBookid);
CString strISBN;
g_adoDB.ExecuteQueryValue(sql,strISBN);
sql.Format("update 书籍信息表 set 剩余数量=剩余数量-1 where ISBN='%s'",strISBN);
g_adoDB.Execute(sql);//修改书籍信息表该书的数量
OnSelchangeCmbReaderid();
m_cmb_bookid.SetCurSel(-1);
}
void CBorrowBook::OnBtnNewReader()
{
CReaderAddDlg dlg;
dlg.DoModal();
InitCmbReaderid();
}
void CBorrowBook::InitCmbReaderid()
{
CDStrs ridFields;
g_adoDB.ExecuteQuery("Select readerID from 读者表",ridFields);
m_cmb_readerid.ResetContent();
for(int i=0;i<ridFields.size();i++)
{
CStrs strs=ridFields[i];
m_cmb_readerid.AddString(strs[0]);
}
}
void CBorrowBook::InitCmbBookid()
{
CDStrs bidFields;
g_adoDB.ExecuteQuery("Select bookID from 书籍编号表",bidFields);
m_cmb_bookid.ResetContent();
for(int i=0;i<bidFields.size();i++)
{
CStrs strs=bidFields[i];
m_cmb_bookid.AddString(strs[0]);
}
}
BOOL CBorrowBook::OnInitDialog()
{
CDialog::OnInitDialog();
InitCmbBookid();
InitCmbReaderid();
return TRUE;
}
void CBorrowBook::OnSelchangeCmbReaderid()
{
CString sql,strReaderid;
m_cmb_readerid.GetLBText(m_cmb_readerid.GetCurSel(),strReaderid);
sql.Format("select 借阅记录表.bookID,借阅记录表.起始日期,书籍信息表.书名"
" from 借阅记录表,书籍信息表,书籍编号表"
" where 借阅记录表.bookID=书籍编号表.bookID and 书籍编号表.ISBN=书籍信息表.ISBN"
" and readerID=%d"
" and 状态='借出'",atoi(strReaderid));
_RecordsetPtr m_pRecordset;
m_pRecordset=g_adoDB.ExecuteQuery(sql);
m_dg.SetRefDataSource(NULL);
m_dg.SetRefDataSource((LPUNKNOWN)m_pRecordset);
m_dg.Refresh();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -