📄 returnbook.cpp
字号:
// ReturnBook.cpp : implementation file
//
#include "stdafx.h"
#include "BookLib.h"
#include "ReturnBook.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CReturnBook dialog
CReturnBook::CReturnBook(CWnd* pParent /*=NULL*/)
: CDialog(CReturnBook::IDD, pParent)
{
//{{AFX_DATA_INIT(CReturnBook)
m_bookid = -1;
m_readerid = -1;
m_expire = _T("");
m_max = _T("");
//}}AFX_DATA_INIT
}
void CReturnBook::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CReturnBook)
DDX_Control(pDX, IDC_CMB_READERID, m_cmb_readerid);
DDX_Control(pDX, IDC_CMB_BOOKID, m_cmb_bookid);
DDX_CBIndex(pDX, IDC_CMB_BOOKID, m_bookid);
DDX_CBIndex(pDX, IDC_CMB_READERID, m_readerid);
DDX_Control(pDX, IDC_DATAGRID1, m_dg);
DDX_Text(pDX, IDC_EDIT_EXPIRE, m_expire);
DDX_Text(pDX, IDC_EDIT_MAX, m_max);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CReturnBook, CDialog)
//{{AFX_MSG_MAP(CReturnBook)
ON_CBN_SELCHANGE(IDC_CMB_READERID, OnSelchangeCmbReaderid)
ON_BN_CLICKED(IDC_BTN_RETURN, OnBtnReturn)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CReturnBook message handlers
void CReturnBook::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();
}
void CReturnBook::OnBtnReturn()
{
if(m_cmb_bookid.GetCurSel()==-1 || m_cmb_readerid.GetCurSel()==-1)
{
MessageBox("请选择书籍编号和读者编号!","提示");
return;
}
CString sql,strBookid,strReaderid;
m_cmb_bookid.GetLBText(m_cmb_bookid.GetCurSel(),strBookid);
m_cmb_readerid.GetLBText(m_cmb_readerid.GetCurSel(),strReaderid);
sql.Format("select recordID from 借阅记录表 where bookID='%s' and readerID=%d",strBookid,atoi(strReaderid));
CString strRecordid;
g_adoDB.ExecuteQueryValue(sql,strRecordid);
if(strRecordid.IsEmpty())
{
MessageBox("没有与此书籍和读者相对应的记录!","错误");
return;
}
CString strISBN;
sql.Format("select ISBN from 书籍编号表 where bookID='%s'",strBookid);
g_adoDB.ExecuteQueryValue(sql,strISBN);
CTime time=CTime::GetCurrentTime();
CString strTime=time.Format("%Y-%m-%d");
sql.Format("Update 借阅记录表 set 归还日期='%s',状态='已还' where recordID=%d",strTime,atoi(strRecordid));
g_adoDB.Execute(sql);//修改相应的借阅记录状态
sql.Format("Update 书籍信息表 set 剩余数量=剩余数量+1 where ISBN='%s'",strISBN);
g_adoDB.Execute(sql);//修改该书现存数量(+1)
OnSelchangeCmbReaderid();
m_cmb_bookid.SetCurSel(-1);
}
void CReturnBook::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 CReturnBook::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 CReturnBook::OnInitDialog()
{
CDialog::OnInitDialog();
InitCmbBookid();
InitCmbReaderid();
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -