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

📄 finedlg.cpp

📁 图书管理系统,相对全面,ODBC学习的好材料,仅攻学习,谢绝抄袭
💻 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 + -