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

📄 returndlg.cpp

📁 此源程序是图书馆管理系统
💻 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 + -