📄 finedlg.cpp
字号:
// FineDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MyLib.h"
#include "FineDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFineDlg dialog
CFineDlg::CFineDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFineDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFineDlg)
m_MONEY = 0.0f;
m_BOOKID = _T("");
m_READERID = _T("");
m_BID = _T("");
//}}AFX_DATA_INIT
}
void CFineDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFineDlg)
DDX_Text(pDX, IDC_MONEY, m_MONEY);
DDV_MinMaxFloat(pDX, m_MONEY, 0.f, 1000.f);
DDX_Text(pDX, IDC_BOOKID, m_BOOKID);
DDV_MaxChars(pDX, m_BOOKID, 20);
DDX_Text(pDX, IDC_READERID, m_READERID);
DDV_MaxChars(pDX, m_READERID, 20);
DDX_Control(pDX, IDC_LIST1, m_List);
DDX_Text(pDX, IDC_BID, m_BID);
DDV_MaxChars(pDX, m_BID, 20);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFineDlg, CDialog)
//{{AFX_MSG_MAP(CFineDlg)
ON_BN_CLICKED(IDC_EXIT, OnExit)
ON_BN_CLICKED(IDC_SEARCH1, OnSearch1)
ON_BN_CLICKED(IDC_SEARCH2, OnSearch2)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList)
ON_BN_CLICKED(IDC_FINE, OnFine)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CFineDlg::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;
}
/////////////////////////////////////////////////////////////////////////////
// CFineDlg message handlers
void CFineDlg::OnExit()
{
if (fineset.IsOpen())
{
fineset.Close();
}
CDialog::OnCancel();
}
void CFineDlg::OnSearch1()
{
m_List.DeleteAllItems();
UpdateData(TRUE);
CString sqlstr;
sqlstr = "SELECT * FROM FINE WHERE BOOKID='";
sqlstr += m_BOOKID;
sqlstr += "' AND DEAL=FALSE";
if (fineset.IsOpen())
{
fineset.Close();
}
if (!fineset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("罚金表打开失败!");
return;
}
int i = 0;
while (!fineset.IsEOF())
{
m_List.InsertItem(i,fineset.m_BOOKID);
m_List.SetItemText(i,1,fineset.m_READERID);
i++;
fineset.MoveNext();
}
UpdateData(FALSE);
fineset.Close();
}
void CFineDlg::OnSearch2()
{
m_List.DeleteAllItems();
UpdateData(TRUE);
CString sqlstr;
sqlstr = "SELECT * FROM FINE WHERE READERID='";
sqlstr += m_READERID;
sqlstr += "' AND DEAL=FALSE";
if (fineset.IsOpen())
{
fineset.Close();
}
if (!fineset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("罚金表打开失败!");
return;
}
int i = 0;
while (!fineset.IsEOF())
{
m_List.InsertItem(i,fineset.m_BOOKID);
m_List.SetItemText(i,1,fineset.m_READERID);
i++;
fineset.MoveNext();
}
UpdateData(FALSE);
fineset.Close();
}
void CFineDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
char BOOKID[20];
POSITION pos = m_List.GetFirstSelectedItemPosition();
if (pos != NULL)
{
int n = m_List.GetNextSelectedItem(pos);
m_List.GetItemText(n,0,BOOKID,20);
if (fineset.IsOpen())
{
fineset.Close();
}
CString sqlstr = "SELECT * FROM FINE WHERE BOOKID='";
sqlstr += BOOKID;
sqlstr += "' AND DEAL=FALSE";
if (!fineset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("罚金表打开失败!");
return;
}
if (!fineset.IsEOF())
{
CTime t = CTime::GetCurrentTime();
CTimeSpan over = t - fineset.m_DATE;
int day = over.GetDays();
m_MONEY = (float)day/10;
m_BID = fineset.m_BOOKID;
}
UpdateData(FALSE);
fineset.Close();
}
*pResult = 0;
}
void CFineDlg::OnFine()
{
UpdateData(TRUE);
if (m_BID.IsEmpty())
{
MessageBox("图书ID不能为空!");
return;
}
CString sqlstr;
sqlstr = "SELECT * FROM BORROW WHERE BOOKID='";
sqlstr += m_BID;
sqlstr += "'";
if (borrowset.IsOpen())
{
borrowset.Close();
}
if (!borrowset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("借阅表打开失败!");
return;
}
if (!borrowset.IsEOF())
{
MessageBox("图书未归还,不能处理罚款!");
borrowset.Close();
return;
}
borrowset.Close();
sqlstr = "SELECT * FROM FINE WHERE BOOKID='";
sqlstr += m_BID;
sqlstr += "' AND DEAL=FALSE";
if (fineset.IsOpen())
{
fineset.Close();
}
if (!fineset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlstr))
{
MessageBox("罚金表打开失败!");
return;
}
if (!fineset.IsEOF())
{
CTime t = CTime::GetCurrentTime();
CTimeSpan over = t - fineset.m_DATE;
int day = over.GetDays();
m_MONEY = (float)day/10;
fineset.Edit();
fineset.m_PRICE = m_MONEY;
fineset.m_DEAL = TRUE;
fineset.Update();
fineset.Requery();
MessageBox("交纳罚金成功!");
}
fineset.Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -