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

📄 bookreturndlg1.cpp

📁 这个是我写的图书馆管理系统
💻 CPP
字号:
// BookReturnDlg1.cpp : implementation file
//

#include "stdafx.h"
#include "library.h"
//以下头文件是手工添加的
#include "BookRS1.h"
#include "BorrowRS.h"
#include "CardRS.h"

#include "BookReturnDlg1.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBookReturnDlg1 dialog


CBookReturnDlg1::CBookReturnDlg1(CWnd* pParent /*=NULL*/)
	: CDialog(CBookReturnDlg1::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBookReturnDlg1)
	m_strBookNum = _T("");
	m_strCardNum = _T("");
	//}}AFX_DATA_INIT
}


void CBookReturnDlg1::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBookReturnDlg1)
	DDX_Control(pDX, IDC_LIST_RESULT, m_listResult);
	DDX_Control(pDX, IDC_LIST_DETAIL, m_listDetail);
	DDX_Text(pDX, IDC_BOOK_NUM, m_strBookNum);
	DDX_Text(pDX, IDC_CARD_NUM, m_strCardNum);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBookReturnDlg1, CDialog)
	//{{AFX_MSG_MAP(CBookReturnDlg1)
	ON_BN_CLICKED(IDC_CARDDETAIL, OnCarddetail)
	ON_LBN_SELCHANGE(IDC_LIST_RESULT, OnSelchangeListResult)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBookReturnDlg1 message handlers

void CBookReturnDlg1::OnCarddetail() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
    CString tmpstr;
    CString bookNumm;
    m_listResult.ResetContent();
	if (! IsValidCard(m_strCardNum))
	{
		return;
	}
	if (!m_borrowSet.IsOpen())
	{
		m_borrowSet.Open();
	} 
	m_borrowSet.m_strFilter.Format("cno = %s and return_date is null",m_strCardNum);
	m_borrowSet.Requery();
	if (m_borrowSet.IsEOF())
	{
		AfxMessageBox("无借书记录!");	
		return;
	}
	while(!m_borrowSet.IsEOF())
	{
		if (!m_bookSet.IsOpen())
			m_bookSet.Open();
		CTime myTime=m_borrowSet.m_borrow_date;
        CString strTime=myTime.Format("%Y-%m-%d %H:%M:%S");
		bookNumm=m_borrowSet.m_bno;
		m_bookSet.m_strFilter.Format("bno= '%s'",bookNumm);	
		m_bookSet.Requery();
        tmpstr=m_bookSet.m_title+"  出借日期:"+strTime;
		m_listResult.AddString(tmpstr);
        m_borrowSet.MoveNext();
	}
}


void CBookReturnDlg1::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData();
	
	if (! IsValidCard(m_strCardNum))
	{
		return;
	}
		
	if(ReturnBook(m_strCardNum,m_strBookNum))
	{
		AfxMessageBox("还书成功!");
        OnCarddetail() ;
	}
	else return;
	
	//CDialog::OnOK();
}



bool CBookReturnDlg1::IsValidCard(CString &cardNum)
{
	if (!m_cardSet.IsOpen())
	{
		m_cardSet.Open();
	}

	if (cardNum == "")
	{
		AfxMessageBox("请输入卡号!");
		return false;
	}

	m_cardSet.m_strFilter.Format("Cno='%s'",cardNum);
	m_cardSet.Requery();
	//结果集为空则表明卡号不存在
	if (m_cardSet.IsEOF())
	{
		AfxMessageBox("该卡号不存在");
		return false;
	}
	//以上情况均不存在表明是正常使用中的卡号
	return true;
	}



bool CBookReturnDlg1::ReturnBook(CString &cardNum, CString &bookNum)
{
	CLibraryApp *App = (CLibraryApp *)AfxGetApp();
	CTime MinTime=CTime::GetCurrentTime();
	if (bookNum=="") 
	{
		AfxMessageBox("请输入图书编号!");
		return false;
	}
	if (!m_borrowSet.IsOpen())
		m_borrowSet.Open();
	m_borrowSet.m_strFilter.Format("bno= '%s' and cno= '%s' and return_date is null",bookNum,cardNum);
	m_borrowSet.Requery();
	
	if (m_borrowSet.IsEOF())
	{
		AfxMessageBox("此书不存在或已经还掉");
        OnCarddetail() ;
		return false;
	}
	while(!m_borrowSet.IsEOF())
	{
		if (m_borrowSet.m_borrow_date<MinTime)
			MinTime=m_borrowSet.m_borrow_date;
		m_borrowSet.MoveNext();
	}
	CTime myTime=MinTime;
	CString strTime;
	strTime=myTime.Format("%Y-%m-%d %H:%M:%S"); 
	if (!m_borrowSet.IsOpen())
		m_borrowSet.Open();

	m_borrowSet.m_strFilter.Format("borrow_date= '%s' and bno= '%s' and cno= '%s'",strTime,bookNum,cardNum);
	m_borrowSet.Requery();
	
	m_borrowSet.Edit();
	m_borrowSet.m_return_date = CTime::GetCurrentTime();	
	m_borrowSet.m_aid = App->admin_ID;
	m_borrowSet.Update();
	m_borrowSet.Requery();
	
	if (!m_bookSet.IsOpen())
		m_bookSet.Open();
	m_bookSet.m_strFilter.Format("bno= '%s'",bookNum);
	m_bookSet.Requery();
	
	m_bookSet.Edit();
	m_bookSet.m_stockednum++;
	m_bookSet.Update();
	m_bookSet.Requery();
	return true;
}




void CBookReturnDlg1::OnSelchangeListResult() 
{
	// TODO: Add your control notification handler code here
	CString aColCaption[9];
	aColCaption[0]="图书编号:        ";
	aColCaption[1]="书名:            ";
	aColCaption[2]="类别:            ";
	aColCaption[3]="出版年份:        ";
	aColCaption[4]="出版社:          ";
	aColCaption[5]="作者:            ";
	aColCaption[6]="价格:            ";
	aColCaption[7]="总藏书量:        ";
	aColCaption[8]="现藏数量:        ";
	m_listDetail.ResetContent();
	int curSel;
	CString strDetail;
	CString strline;
	curSel=m_listResult.GetCurSel();
	m_borrowSet.SetAbsolutePosition(curSel+1);
	for (unsigned int i=0;i<m_bookSet.m_nFields;i++)
	{
		CString bookNumm=m_borrowSet.m_bno;
		if (!m_bookSet.IsOpen())
			m_bookSet.Open();
		bookNumm=m_borrowSet.m_bno;
		m_bookSet.m_strFilter.Format("bno= '%s'",bookNumm);
		m_bookSet.Requery();
		m_bookSet.GetFieldValue(i,strDetail);
		strline.Empty();
		strline+=aColCaption[i];
		strline+=strDetail;
		m_listDetail.AddString(strline);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -