📄 borrowdlg.cpp
字号:
// BorrowDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MyLib.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_DATEF = 0;
m_DATET = 0;
m_FBOOKID = _T("");
m_FREADERID = _T("");
m_READERID = _T("");
m_READERNAME = _T("");
m_READERTYPE = _T("");
m_COUNT = 0;
m_LOSE = FALSE;
//}}AFX_DATA_INIT
}
void CBorrowDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBorrowDlg)
DDX_Control(pDX, IDC_LIST1, m_List);
DDX_DateTimeCtrl(pDX, IDC_DATEF, m_DATEF);
DDX_DateTimeCtrl(pDX, IDC_DATET, m_DATET);
DDX_Text(pDX, IDC_FBOOKID, m_FBOOKID);
DDV_MaxChars(pDX, m_FBOOKID, 20);
DDX_Text(pDX, IDC_FREADERID, m_FREADERID);
DDV_MaxChars(pDX, m_FREADERID, 20);
DDX_Text(pDX, IDC_READERID, m_READERID);
DDV_MaxChars(pDX, m_READERID, 20);
DDX_Text(pDX, IDC_READERNAME, m_READERNAME);
DDV_MaxChars(pDX, m_READERNAME, 20);
DDX_Text(pDX, IDC_READERTYPE, m_READERTYPE);
DDV_MaxChars(pDX, m_READERTYPE, 20);
DDX_Text(pDX, IDC_COUNT, m_COUNT);
DDV_MinMaxInt(pDX, m_COUNT, 0, 99);
DDX_Check(pDX, IDC_LOSE, m_LOSE);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBorrowDlg, CDialog)
//{{AFX_MSG_MAP(CBorrowDlg)
ON_BN_CLICKED(IDC_EXIT, OnExit)
ON_BN_CLICKED(IDC_BORROW, OnBorrow)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CBorrowDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_List.InsertColumn(0,"图书ID");
m_List.InsertColumn(1,"读者ID");
RECT rect;
m_List.GetWindowRect(&rect);
int wid=rect.right-rect.left;
m_List.SetColumnWidth(0,wid/2);
m_List.SetColumnWidth(1,wid/2);
m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT);
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CBorrowDlg message handlers
void CBorrowDlg::OnExit()
{
if (bfileset.IsOpen())
{
bfileset.Close();
}
if (btypeset.IsOpen())
{
btypeset.Close();
}
if (rfileset.IsOpen())
{
rfileset.Close();
}
if (rtypeset.IsOpen())
{
rtypeset.Close();
}
CDialog::OnCancel();
}
void CBorrowDlg::OnBorrow()
{
m_List.DeleteAllItems();
UpdateData(TRUE);
CString sqlstr;
//读者丢失
sqlstr = "SELECT * FROM READERINFM WHERE ID='";
sqlstr += m_FREADERID;
sqlstr += "'";
if (rfileset.IsOpen())
{
rfileset.Close();
}
if (!rfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("读者表打开失败!");
return;
}
if (rfileset.IsEOF())
{
MessageBox("该读者不存在!");
rfileset.Close();
return;
}
m_READERID = rfileset.m_ID;
m_READERNAME = rfileset.m_NAME;
m_READERTYPE = rfileset.m_TYPE;
m_LOSE = rfileset.m_LOSE;
sqlstr = "SELECT * FROM BORROW WHERE READERID ='";
sqlstr += m_FREADERID;
sqlstr += "'";
if(borrowset.IsOpen())
{
borrowset.Close();
}
if (!borrowset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("借阅表打开失败!");
rfileset.Close();
return;
}
int i = 0;
while(!borrowset.IsEOF())
{
m_List.InsertItem(i,borrowset.m_BOOKID);
m_List.SetItemText(i,1,borrowset.m_READERID);
borrowset.MoveNext();
i++;
}
borrowset.Close();
UpdateData(FALSE);
if (rfileset.m_LOSE==TRUE)
{
MessageBox("该读者已挂失!");
rfileset.Close();
return;
}
//书超出
sqlstr = "SELECT * FROM READERTYPE WHERE TYPE='";
sqlstr += m_READERTYPE;
sqlstr += "'";
if (rtypeset.IsOpen())
{
rtypeset.Close();
}
if (!rtypeset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("读者类型表打开失败!");
rfileset.Close();
return;
}
m_COUNT = rtypeset.m_SUM;
if (rfileset.m_COUNT>=rtypeset.m_SUM)
{
MessageBox("该读者借书已达到规定数量!");
rtypeset.Close();
rfileset.Close();
return;
}
rtypeset.Close();
//图书在库
sqlstr = "SELECT * FROM BOOKINFM WHERE BOOKID='";
sqlstr += m_FBOOKID;
sqlstr += "'";
if (bfileset.IsOpen())
{
bfileset.Close();
}
if (!bfileset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("图书表打开失败!");
rfileset.Close();
return;
}
if(bfileset.IsEOF())
{
MessageBox("该书不存在!");
rfileset.Close();
bfileset.Close();
return;
}
if (bfileset.m_IO==TRUE)
{
MessageBox("该图书已借出!");
rfileset.Close();
bfileset.Close();
return;
}
//查看罚金表
sqlstr = "SELECT * FROM FINE WHERE READERID='";
sqlstr += m_FREADERID;
sqlstr += "' AND DEAL=FALSE";
if(fineset.IsOpen())
{
fineset.Close();
}
if (!fineset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("罚金表打开失败!");
bfileset.Close();
rfileset.Close();
return;
}
if(!fineset.IsEOF())
{
MessageBox("该读者仍欠费,不能借书!");
bfileset.Close();
rfileset.Close();
fineset.Close();
return;
}
fineset.Close();
//修改BORROW表
sqlstr = "SELECT * FROM BORROW WHERE READERID='";
sqlstr += m_FREADERID;
sqlstr += "'";
if (borrowset.IsOpen())
{
borrowset.Close();
}
if (!borrowset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("借阅表打开失败!");
bfileset.Close();
rfileset.Close();
return;
}
sqlstr = "SELECT * FROM FINE";
if(fineset.IsOpen())
{
fineset.Close();
}
if (!fineset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("罚金表打开失败!");
bfileset.Close();
rfileset.Close();
return;
}
int flag = 0;
int day;
while(!borrowset.IsEOF())
{
CTime t = CTime::GetCurrentTime();
if((t - borrowset.m_DATET)>=CTimeSpan(1,0,0,0))
{
flag = 1;
fineset.AddNew();
fineset.m_BOOKID = borrowset.m_BOOKID;
fineset.m_READERID = borrowset.m_READERID;
fineset.m_DATE = borrowset.m_DATET;
fineset.Update();
fineset.Requery();
}
borrowset.MoveNext();
}
if(flag == 1)
{
MessageBox("该读者仍欠费,不能借书!");
bfileset.Close();
rfileset.Close();
fineset.Close();
borrowset.Close();
return;
}
borrowset.Close();
fineset.Close();
//找到可以借的时间
sqlstr = "SELECT * FROM BOOKTYPE WHERE TYPEID='";
sqlstr += bfileset.m_TYPEID;
sqlstr += "'";
if(btypeset.IsOpen())
{
btypeset.Close();
}
if(!btypeset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("图书类型表打开失败!");
bfileset.Close();
rfileset.Close();
return;
}
day = btypeset.m_DAY;
btypeset.Close();
//时间
m_DATEF = CTime::GetCurrentTime();
m_DATET = m_DATEF + CTimeSpan(day,0,0,0);
sqlstr = "SELECT * FROM BORROW";
if (borrowset.IsOpen())
{
borrowset.Close();
}
if (!borrowset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("借阅表打开失败!");
bfileset.Close();
rfileset.Close();
return;
}
borrowset.AddNew();
borrowset.m_BOOKID = m_FBOOKID;
borrowset.m_READERID = m_FREADERID;
borrowset.m_DATEF = m_DATEF;
borrowset.m_DATET = m_DATET;
borrowset.Update();
borrowset.Requery();
rfileset.Edit();
rfileset.m_COUNT = rfileset.m_COUNT+1;
rfileset.Update();
rfileset.Requery();
bfileset.Edit();
bfileset.m_IO = TRUE;
bfileset.Update();
bfileset.Requery();
UpdateData(FALSE);
bfileset.Close();
rfileset.Close();
borrowset.Close();
MessageBox("借出成功!");
}
void CBorrowDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
char BOOKID[20];
char READERID[20];
POSITION pos = m_List.GetFirstSelectedItemPosition();
if (pos != NULL)
{
int n = m_List.GetNextSelectedItem(pos);
m_List.GetItemText(n,0,BOOKID,20);
m_List.GetItemText(n,1,READERID,20);
if (borrowset.IsOpen())
{
borrowset.Close();
}
CString sqlstr = "SELECT * FROM BORROW WHERE BOOKID='";
sqlstr += BOOKID;
sqlstr += "' AND READERID='";
sqlstr += READERID;
sqlstr += "'";
if (!borrowset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("借阅表打开失败!");
return;
}
if(!borrowset.IsEOF())
{
m_DATEF = borrowset.m_DATEF;
m_DATET = borrowset.m_DATET;
borrowset.Close();
UpdateData(FALSE);
}
}
*pResult = 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -