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

📄 bookreturndlg.cpp

📁 小型图书管理系统
💻 CPP
字号:
// BookReturnDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Library_5.h"
#include "BookReturnDlg.h"
#include "ManagerLandDlg.h"

#include "BookRS.h"
#include "BorrowRS.h"
#include "CardRS.h"

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

/////////////////////////////////////////////////////////////////////////////
// CBookReturnDlg dialog


CBookReturnDlg::CBookReturnDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBookReturnDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBookReturnDlg)
	m_strbookNum = _T("");
	m_strcardNum = _T("");
	//}}AFX_DATA_INIT
}


void CBookReturnDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBookReturnDlg)
	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(CBookReturnDlg, CDialog)
	//{{AFX_MSG_MAP(CBookReturnDlg)
	ON_BN_CLICKED(ID_QUERY, OnQuery)
	ON_LBN_SELCHANGE(IDC_LIST_RESULT, OnSelchangeListResult)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBookReturnDlg message handlers

void CBookReturnDlg::OnQuery() 
{

	UpdateData();

	m_listResult.ResetContent();
	m_listDetail.ResetContent();

	if (!m_borrowSet.IsOpen())
	{
		m_borrowSet.Open();
	}
	if (!m_bookSet.IsOpen())
	{
		m_bookSet.Open();
	}
	if (!m_cardSet.IsOpen())
	{
		m_cardSet.Open();
	}
	CString strFilter;

	strFilter.Format(" cno = '%s'",m_strcardNum);
	m_cardSet.m_strFilter=strFilter;
	m_cardSet.Requery();

	if(m_cardSet.IsEOF())
	{
		AfxMessageBox("卡号不存在");
		return ;
	}

	if(m_cardSet.m_flag=="挂失")
	{
		AfxMessageBox("您的借书证已挂失");
		return ;
	}


	strFilter.Format("cno= '%s' and return_date is null ",m_strcardNum);

	m_borrowSet.m_strFilter=strFilter;
	m_borrowSet.Requery();
	if (m_borrowSet.IsEOF())
	{
		AfxMessageBox("该借书证号没有未归还的图书");
	}

	strFilter.Format("cno='%s' ",m_strcardNum);

	m_borrowSet.m_strFilter=strFilter;
	m_borrowSet.Requery();

	while (!m_borrowSet.IsEOF())
	{
		m_listResult.AddString(m_borrowSet.m_bno);
		m_borrowSet.MoveNext();
	}
	// TODO: Add your control notification handler code here
	
}

void CBookReturnDlg::OnSelchangeListResult() 
{
	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_bookSet.SetAbsolutePosition(curSel+1);
	
	for(int i=0;i<m_bookSet.m_nFields;i++)
	{
		m_bookSet.GetFieldValue(i,strDetail);
		strLine.Empty();
		strLine+=aColCaption[i];
		strLine+=strDetail;
		m_listDetail.AddString(strLine);
	}
	// TODO: Add your control notification handler code here
	
}

void CBookReturnDlg::OnOK() 
{
	CLibrary_5App *App = (CLibrary_5App *)AfxGetApp();
	CString managerNum=App->managerID;
	UpdateData();
	if(managerNum=="无管理员登录")
	{
		AfxMessageBox("无管理员登录,请先登录");
		CManagerLandDlg managerLandDlg;
		managerLandDlg.DoModal();
		if((managerNum=App->managerID)=="无管理员登录")
			return;
	}

	UpdateData();

	if(!m_borrowSet.IsOpen())
	{
		m_borrowSet.Open();
	}

	m_borrowSet.m_strFilter.Format("bno = '%s' and return_date is null", m_strbookNum);
	m_borrowSet.Requery();

	if(m_borrowSet.IsEOF())
	{
		AfxMessageBox("此书不存在或者已还掉!");
		return ;
	}

	CTime today = CTime::GetCurrentTime();
	CTimeSpan diffDays =today-m_borrowSet.m_borrow_date;

	if(diffDays.GetDays()>30)
	{
		AfxMessageBox("该书已过期!");
		return ;
	}

	if(!m_bookSet.IsOpen())
	{
		m_bookSet.Open();
	}

	m_bookSet.m_strFilter.Format("bno = '%s'",m_strbookNum);
	m_bookSet.Requery();

	m_bookSet.Edit();
	m_bookSet.m_stocked_num=m_bookSet.m_stocked_num+1;
	m_bookSet.Update();

	m_borrowSet.Delete();

	AfxMessageBox("还书成功!");


	// TODO: Add extra validation here
	
	CDialog::OnOK();
}

⌨️ 快捷键说明

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