📄 returndlg.cpp
字号:
// ReturnDlg.cpp : implementation file
//
#include "stdafx.h"
#include "library.h"
#include "ReturnDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CReturnDlg dialog
CReturnDlg::CReturnDlg(CWnd* pParent /*=NULL*/)
: CDialog(CReturnDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CReturnDlg)
m_BookId = _T("");
m_ReaderName = _T("");
m_Days = 0;
m_BrwDate = 0;
m_ShRDate = 0;
//}}AFX_DATA_INIT
}
void CReturnDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CReturnDlg)
DDX_Text(pDX, IDC_EDIT1, m_BookId);
DDX_Text(pDX, IDC_EDIT2, m_ReaderName);
DDX_Text(pDX, IDC_EDIT3, m_Days);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_BrwDate);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER2, m_ShRDate);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CReturnDlg, CDialog)
//{{AFX_MSG_MAP(CReturnDlg)
ON_WM_CLOSE()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CReturnDlg message handlers
void CReturnDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(true);
CString sqlStr;
CString readername;
CTimeSpan ts(30,0,0,0);
CTimeSpan t1;
CTime curtime;
curtime=CTime::GetCurrentTime();
sqlStr="SELECT * FROM BORROW WHERE BOOK_ID='";
sqlStr+=m_BookId;
sqlStr+="'";
if(!brwSet.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))
{
AfxMessageBox("borrow表打开失败!");
}
if(!brwSet.IsEOF())
{
// brwSet.MoveLast();
readerid=brwSet.m_READER_ID;
m_BrwDate=brwSet.m_BORROW_DATE;
brwSet.Delete();
brwSet.Requery();
sqlStr="SELECT * FROM READER WHERE READER_ID='";
sqlStr+=readerid;
sqlStr+="'";
if(!rdSet.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))
{
AfxMessageBox("borrow表打开失败!");
}
if(!rdSet.IsEOF())
{
// rdSet.MoveLast();
m_ReaderName=rdSet.m_NAME;
}
m_ShRDate=m_BrwDate+ts;
t1=curtime-m_ShRDate;
m_Days=t1.GetDays();
brwSet.Close();
rdSet.Close();
//写history表
CString m_strsql;
m_strsql="INSERT INTO HISTORY (READER_ID,BOOK_ID) VALUES ('"+readerid+"'";
m_strsql=m_strsql+",'"+m_BookId+"'";
m_strsql=m_strsql+")";
MessageBox(m_strsql);
CDatabase mdb;
if(!mdb.Open(_T("Library")))
{
AfxMessageBox("数据库打开失败!");
return;
}
try
{
mdb.BeginTrans();
mdb.ExecuteSQL(m_strsql);
mdb.CommitTrans();
}
catch(CDBException e)
{
AfxMessageBox("数据库执行出错");
}
mdb.Close();
//写fine表
if(m_Days>0)
{
insert_fine();
}
}
else
{
MessageBox("此书没有借出!");
}
UpdateData(false);
}
int CReturnDlg::insert_fine()
{
CDatabase mdb;
CString m_strsql;
CTime m_CurrentTime;
m_CurrentTime=CTime::GetCurrentTime();
m_strsql.Format("insert into FINE(READER_ID,AMOUNT,DAYS) values( \'%s\',%f,%d",readerid,(m_Days*0.2),m_Days);
m_strsql=m_strsql+")";
MessageBox(m_strsql);
if(!mdb.Open(_T("Library")))
{
AfxMessageBox("数据库打开出错");
return 0;
}
try
{
mdb.BeginTrans();
mdb.ExecuteSQL(m_strsql);
m_strsql = "UPDATE READER SET FLAG_BORROW='N' WHERE READER_ID='" +readerid;
m_strsql = m_strsql + "'";
mdb.ExecuteSQL(m_strsql);
mdb.CommitTrans();
mdb.Close();
return 1;
}
catch(CDBException e)
{
AfxMessageBox("数据库执行出错");
return 0;
}
}
void CReturnDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
if(bkSet.IsOpen())
{
bkSet.Close();
}
if(brwSet.IsOpen())
{
brwSet.Close();
}
if(rdSet.IsOpen())
{
rdSet.Close();
}
CDialog::OnClose();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -