📄 borrowdlg.cpp
字号:
// BorrowDlg.cpp : implementation file
//
#include "stdafx.h"
#include "Library.h"
#include "Borrowset.h"
#include "Bookset.h"
#include "LibrarySet.h"
#include "BorrowDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CBorrowDlg dialog
CBorrowDlg::CBorrowDlg(CWnd* pParent /*=NULL*/)
: CDialog(CBorrowDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CBorrowDlg)
m_strbeforeout = _T("");
m_strbookname = _T("");
m_strbookID = _T("");
m_strdays = _T("");
m_strfutureout = _T("");
m_strprice = _T("");
m_strproofID = _T("");
m_strreadername = _T("");
//}}AFX_DATA_INIT
}
void CBorrowDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBorrowDlg)
DDX_Control(pDX, IDC_EDIT_BOOKID, m_ctrbookID);
DDX_Control(pDX, IDC_EDIT_PROOFID, m_ctrproofID);
DDX_Control(pDX, IDC_LIST_BORROW, m_ctrlist);
DDX_Text(pDX, IDC_EDIT_BEFORE_OUT, m_strbeforeout);
DDX_Text(pDX, IDC_EDIT_BOOK_NAME, m_strbookname);
DDX_Text(pDX, IDC_EDIT_BOOKID, m_strbookID);
DDX_Text(pDX, IDC_EDIT_DAYS, m_strdays);
DDX_Text(pDX, IDC_EDIT_FUTURE_OUT, m_strfutureout);
DDX_Text(pDX, IDC_EDIT_PRICE, m_strprice);
DDX_Text(pDX, IDC_EDIT_PROOFID, m_strproofID);
DDX_Text(pDX, IDC_EDIT_READER_NAME, m_strreadername);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBorrowDlg, CDialog)
//{{AFX_MSG_MAP(CBorrowDlg)
ON_BN_CLICKED(IDC_BUTTON_BORROW_OUT, OnButtonBorrowOut)
ON_EN_CHANGE(IDC_EDIT_PROOFID, OnChangeEditProofid)
ON_EN_CHANGE(IDC_EDIT_BOOKID, OnChangeEditBookid)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBorrowDlg message handlers
void CBorrowDlg::OnButtonBorrowOut()
{
//更新数据库相关表
CLibrarySet m_recordset;
CBorrowset m_borrowset,m_pset;
CBookset m_bookset;
CLibraryApp* theApp=(CLibraryApp*)AfxGetApp();
CString strSQL;
strSQL.Format("select * from readerinfo where Proof_ID='%s'",m_strproofID);
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("数据库打开失败!","数据库错误",MB_OK);
return;
}
strSQL.Format("select * from borrowinfo where Proof_ID='%s'",m_strproofID);
if(!m_borrowset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("数据库打开失败!","数据库错误",MB_OK);
return;
}
strSQL.Format("select * from bookinfo where Book_ID='%s'",m_strbookID);
if(!m_bookset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("数据库打开失败!","数据库错误",MB_OK);
return;
}
strSQL.Format("select * from borrowinfo");
if(!m_pset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("数据库打开失败!","数据库错误",MB_OK);
return;
}
int m=0;
while(!m_pset.IsEOF())
{
m++;
m_pset.MoveNext();
}
m++;
if(m_pset.IsEOF())
{
strSQL.Format("select * from bookinfo where Book_ID='%s'",m_strbookID);
if(m_pset.m_Book_ID!=m_strbookID)
{
MessageBox("没有这本书!","数据库错误",MB_OK);
return;
}
}
m_pset.Close();
m_recordset.Edit();
m_recordset.m_Borrow_Amount++;
m_recordset.Update();
m_recordset.Close();
m_borrowset.AddNew();
m_borrowset.m_BorrowID=m;
m_borrowset.m_Proof_ID=m_strproofID;
m_borrowset.m_Book_ID=m_strbookID;
m_borrowset.m_BorrowOut_Date=CTime::GetCurrentTime();
m_borrowset.m_Return_Date=CTime::GetCurrentTime()+30*24*3600;
m_borrowset.m_User_Name=theApp->m_stroperater;
m_borrowset.Update();
m_borrowset.Close();
m_bookset.Edit();
m_bookset.m_Total_Amount--;
m_bookset.Update();
m_bookset.Close();
RefreshData();
//更新显示界面
m_strproofID=_T("");
m_strreadername=_T("");
m_strbeforeout=_T("");
m_strfutureout=_T("");
m_strbookID=_T("");
m_strbookname=_T("");
m_strdays=_T("");
m_strprice=_T("");
UpdateData(FALSE);
//RefreshData();
}
BOOL CBorrowDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ctrlist.InsertColumn(0,"读者姓名");
m_ctrlist.InsertColumn(1,"图书编号");
m_ctrlist.InsertColumn(2,"图书名称");
m_ctrlist.InsertColumn(3,"借出日期");
m_ctrlist.InsertColumn(4,"归还日期");
m_ctrlist.InsertColumn(5,"操作员");
m_ctrlist.InsertColumn(6,"借书数");
m_ctrlist.SetColumnWidth(0,80);
m_ctrlist.SetColumnWidth(1,80);
m_ctrlist.SetColumnWidth(2,120);
m_ctrlist.SetColumnWidth(3,80);
m_ctrlist.SetColumnWidth(4,80);
m_ctrlist.SetColumnWidth(5,80);
m_ctrlist.SetColumnWidth(6,60);
m_ctrlist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CBorrowDlg::OnChangeEditProofid()
{
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
UpdateData();
//检查是否输入借阅证号
if(m_strproofID.IsEmpty())
{
AfxMessageBox("请输入借阅证号!");
m_ctrproofID.SetFocus();
return;
}
CLibrarySet m_recordset;
CString strSQL;
strSQL.Format("select * from readerinfo where Proof_ID='%s'",m_strproofID);
if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("数据库打开失败!","数据库错误",MB_OK);
return;
}
if(m_recordset.GetRecordCount()==0)
{
m_recordset.Close();
//AfxMessageBox("图书证号输入错误,请重新输入!");
return;
}
m_strreadername=m_recordset.m_Name;
CString count;
count.Format("%d",m_recordset.m_Borrow_Amount);
m_strbeforeout= count;
int m=10-m_recordset.m_Borrow_Amount;
count.Format("%d",m);
m_strfutureout=count;
m_recordset.Close();
UpdateData(FALSE);
}
void CBorrowDlg::OnChangeEditBookid()
{
UpdateData();
//检查是否输入图书编号
if(m_strbookID.IsEmpty())
{
AfxMessageBox("请输入图书编号!");
m_ctrbookID.SetFocus();
return;
}
//显示图书的基本信息
CBookset m_bookset;
CString strSQL;
strSQL.Format("select * from bookinfo where Book_ID='%s'",m_strbookID);
if(!m_bookset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("数据库打开失败!","数据库错误",MB_OK);
return;
}
if(m_bookset.GetRecordCount()==0)
{
m_bookset.Close();
//AfxMessageBox("图书编号不存在,请重新输入!");
return;
}
int m=30;
CString count,price;
count.Format("%d",m);
m_strdays=count;
m_strbookname=m_bookset.m_Book_Name;
price.Format("%f",m_bookset.m_Price);
m_strprice=price;
m_bookset.Close();
UpdateData(FALSE);
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
// TODO: Add your control notification handler code here
}
void CBorrowDlg::RefreshData()
{
m_ctrlist.DeleteAllItems();
m_ctrlist.SetRedraw(FALSE);
UpdateData(TRUE);
CLibrarySet m_recordset1;
CBorrowset m_borrowset1;
CBookset m_bookset1;
CString strSQL;
strSQL.Format("select * from readerinfo where Proof_ID='%s'",m_strproofID);
if(!m_recordset1.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("数据库打开失败!","数据库错误",MB_OK);
return;
}
strSQL.Format("select * from borrowinfo where Proof_ID='%s'",m_strproofID);
if(!m_borrowset1.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("数据库打开失败!","数据库错误",MB_OK);
return;
}
//向借阅列表中添加项
CString strcount;
CString strTime;
int i=0;
while(!m_borrowset1.IsEOF())
{
m_ctrlist.InsertItem(i,m_recordset1.m_Name);
m_ctrlist.SetItemText(i,1,m_borrowset1.m_Book_ID);
strSQL.Format("select * from bookinfo where Book_ID='%s'",m_borrowset1.m_Book_ID);
if(!m_bookset1.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
{
MessageBox("数据库打开失败!","数据库错误",MB_OK);
return;
}
m_ctrlist.SetItemText(i,2,m_bookset1.m_Book_Name);
strTime.Format("%d-%d-%d",m_borrowset1.m_BorrowOut_Date.GetYear(),m_borrowset1.m_BorrowOut_Date.GetMonth(),m_borrowset1.m_Return_Date.GetDay());
m_ctrlist.SetItemText(i,3,strTime);
strTime.Format("%d-%d-%d",m_borrowset1.m_Return_Date.GetYear(),m_borrowset1.m_Return_Date.GetMonth(),m_borrowset1.m_BorrowOut_Date.GetDay());
m_ctrlist.SetItemText(i,4,strTime);
m_ctrlist.SetItemText(i,5,m_borrowset1.m_User_Name);
strcount.Format("%d",m_recordset1.m_Borrow_Amount);
m_ctrlist.SetItemText(i,6,strcount);
i++;
m_borrowset1.MoveNext();
m_bookset1.Close();
}
m_recordset1.Close();
m_borrowset1.Close();
//m_bookset1.Close();
m_ctrlist.SetRedraw(TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -