⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 returnbook.cpp

📁 自己编写的迷你图书馆的完整程序.VC6MFC编写的,Windows界面.数据采用了Sqlserver2000.压缩包中已包括了数据库.先附加数据库再运行.
💻 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 + -