📄 borrowdlg.cpp
字号:
// BorrowDlg.cpp : implementation file
//
#include "stdafx.h"
#include "library.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_BookID = _T("");
m_UserID = _T("");
m_BookName = _T("");
m_BorrowNum = 0;
m_UserName = _T("");
//}}AFX_DATA_INIT
}
void CBorrowDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CBorrowDlg)
DDX_Control(pDX, IDC_BORROW_VIEW, m_BorrowView);
DDX_Text(pDX, IDC_BOOKID, m_BookID);
DDX_Text(pDX, IDC_USERID, m_UserID);
DDX_Text(pDX, IDC_BOOK_NAME, m_BookName);
DDX_Text(pDX, IDC_BORROW_NUM, m_BorrowNum);
DDX_Text(pDX, IDC_USER_NAME, m_UserName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CBorrowDlg, CDialog)
//{{AFX_MSG_MAP(CBorrowDlg)
ON_BN_CLICKED(IDC_BORROW, OnBorrow)
ON_NOTIFY(NM_CLICK, IDC_BORROW_VIEW, OnClickBorrowView)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CBorrowDlg message handlers
void CBorrowDlg::OnBorrow()
{
// TODO: Add your control notification handler code here
//完成借书操作
UpdateData();
if(CheckValid())
{
SaveData();
TextShow();
ListShow();
}
}
BOOL CBorrowDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//初始化浏览列表
InitListView();
//纪录管理员ID
CLibraryApp *myApp=(CLibraryApp*)AfxGetApp();
m_ManagerID=myApp->m_LoginID;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CBorrowDlg::CheckValid()
{
//检查输入的合法性
if(m_UserID.IsEmpty() || m_BookID.IsEmpty())
{
AfxMessageBox("请输入借书证号和书号!");
return false;
}
m_UserSet.Open();
m_UserSet.m_strFilter="userid='"+m_UserID+"'";
m_UserSet.Requery();
if(m_UserSet.GetRecordCount()==0)
{
AfxMessageBox("您的借书证号输入有误,请重新输入!");
GetDlgItem(IDC_USERID)->SetFocus();
m_UserSet.Close();
return false;
}
m_BookSet.Open();
m_BookSet.m_strFilter="bookid='"+m_BookID+"'";
m_BookSet.Requery();
if(m_BookSet.GetRecordCount()==0)
{
AfxMessageBox("您的书号输入有误,请重新输入!");
GetDlgItem(IDC_BOOKID)->SetFocus();
m_UserSet.Close();
m_BookSet.Close();
return false;
}
if(m_BookSet.m_borrowed)
{
AfxMessageBox("此书已借出,请重新输入!");
GetDlgItem(IDC_BOOKID)->SetFocus();
m_UserSet.Close();
m_BookSet.Close();
return false;
}
return true;
}
void CBorrowDlg::TextShow()
{
//显示基本数据
m_UserName=m_UserSet.m_username;
m_BookName=m_BookSet.m_bookname;
m_BorrowNum=m_UserSet.m_borrownum;
UpdateData(false);
}
void CBorrowDlg::InitListView()
{
//初始化浏览列表
m_BorrowView.DeleteAllItems();
m_BorrowView.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_BorrowView.InsertColumn(0,"借书证号");
m_BorrowView.InsertColumn(1,"姓名");
m_BorrowView.InsertColumn(2,"书号");
m_BorrowView.InsertColumn(3,"书名");
m_BorrowView.InsertColumn(4,"管理员号");
m_BorrowView.InsertColumn(5,"借出日期");
m_BorrowView.InsertColumn(6,"应还日期");
m_BorrowView.SetColumnWidth(0,100);
m_BorrowView.SetColumnWidth(1,70);
m_BorrowView.SetColumnWidth(2,90);
m_BorrowView.SetColumnWidth(3,120);
m_BorrowView.SetColumnWidth(4,80);
m_BorrowView.SetColumnWidth(5,90);
m_BorrowView.SetColumnWidth(6,90);
}
void CBorrowDlg::ListShow()
{
//在列表中显示用户的借书纪录
int i=0;
m_BorrowSet.m_strFilter="userid='"+m_UserSet.m_userid+"'";
m_BorrowSet.Requery();
m_BorrowSet.MoveFirst();
m_BorrowView.DeleteAllItems();
while(!m_BorrowSet.IsEOF())
{
m_BorrowView.InsertItem(i,m_BorrowSet.m_userid);
m_BorrowView.SetItemText(i,1,m_UserSet.m_username);
m_BorrowView.SetItemText(i,2,m_BorrowSet.m_bookid);
m_BookSet.m_strFilter="bookid='"+m_BorrowSet.m_bookid+"'";
m_BookSet.Requery();
m_BorrowView.SetItemText(i,3,m_BookSet.m_bookname);
m_BorrowView.SetItemText(i,4,m_BorrowSet.m_manageid);
m_BorrowView.SetItemText(i,5,m_BorrowSet.m_borrowtime.Format("%Y-%m-%d"));
m_BorrowView.SetItemText(i,6,m_BorrowSet.m_returntime.Format("%Y-%m-%d"));
m_BorrowSet.MoveNext();
i++;
}
m_UserSet.Close();
m_BookSet.Close();
m_BorrowSet.Close();
m_BookID.Empty();
UpdateData(false);
}
void CBorrowDlg::OnClickBorrowView(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
//当鼠标单击列表中的记录时,在基本数据区中显示相应数据
POSITION pos;
pos=m_BorrowView.GetFirstSelectedItemPosition();
if(pos!=NULL)
{
int nItem=m_BorrowView.GetNextSelectedItem(pos);
m_UserID=m_BorrowView.GetItemText(nItem,0);
m_UserName=m_BorrowView.GetItemText(nItem,1);
m_BookID=m_BorrowView.GetItemText(nItem,2);
m_BookName=m_BorrowView.GetItemText(nItem,3);
m_BorrowView.SetHotItem(nItem);
UpdateData(false);
}
*pResult = 0;
}
void CBorrowDlg::SaveData()
{
//将数据保存到数据库
//设置借书期限是一个月
CTimeSpan m_BorrowSpan(30,0,0,0);
m_BorrowTime=CTime::GetCurrentTime();
m_ReturnTime=m_BorrowTime+m_BorrowSpan;
//保存数据到borrow表
m_BorrowSet.Open();
m_BorrowSet.AddNew();
m_BorrowSet.m_userid=m_UserSet.m_userid;
m_BorrowSet.m_bookid=m_BookSet.m_bookid;
m_BorrowSet.m_manageid=m_ManagerID;
m_BorrowSet.m_borrowtime=m_BorrowTime;
m_BorrowSet.m_returntime=m_ReturnTime;
m_BorrowSet.Update();
//保存数据到user表
m_UserSet.Edit();
m_UserSet.m_borrownum+=1;
m_UserSet.Update();
//保存数据到book表
m_BookSet.Edit();
m_BookSet.m_borrowed=true;
m_BookSet.Update();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -