📄 adminmanage.cpp
字号:
// AdminManage.cpp : implementation file
//
#include "stdafx.h"
#include "library.h"
#include "AdminManage.h"
#include "UserSet.h"
#include "BookSet.h"
#include "BorrowSet.h"
#include "Addb.h"
#include "Addr.h"
#include "Modifyb.h"
#include "Modifyr.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAdminManage
extern CDatabase db;
void CAdminManage::RefreshBookList();
void CAdminManage::RefreshReaderList();
IMPLEMENT_DYNCREATE(CAdminManage, CFormView)
CAdminManage::CAdminManage()
: CFormView(CAdminManage::IDD)
{
//{{AFX_DATA_INIT(CAdminManage)
m_bookno = _T("");
m_readerid = _T("");
m_prid = _T("");
//}}AFX_DATA_INIT
}
CAdminManage::~CAdminManage()
{
}
void CAdminManage::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAdminManage)
DDX_Control(pDX, IDC_LIST_READER, m_readermanage);
DDX_Control(pDX, IDC_LIST_BOOK, m_bookmanage);
DDX_Text(pDX, IDC_EDIT_BBNO, m_bookno);
DDV_MaxChars(pDX, m_bookno, 10);
DDX_Text(pDX, IDC_EDIT_BRID, m_readerid);
DDV_MaxChars(pDX, m_readerid, 10);
DDX_Text(pDX, IDC_EDIT_PRID, m_prid);
DDV_MaxChars(pDX, m_prid, 10);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAdminManage, CFormView)
//{{AFX_MSG_MAP(CAdminManage)
ON_BN_CLICKED(IDC_BUT_ADDB, OnButAddb)
ON_BN_CLICKED(IDC_BUT_MODIFYB, OnButModifyb)
ON_BN_CLICKED(IDC_BUT_DELETEB, OnButDeleteb)
ON_BN_CLICKED(IDC_BUT_DELETER, OnButDeleter)
ON_BN_CLICKED(IDC_BUT_ADDR, OnButAddr)
ON_BN_CLICKED(IDC_BUT_MODIFYR, OnButModifyr)
ON_BN_CLICKED(IDC_BUT_BORROW, OnButBorrow)
ON_BN_CLICKED(IDC_BUT_RETURN, OnButReturn)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAdminManage diagnostics
#ifdef _DEBUG
void CAdminManage::AssertValid() const
{
CFormView::AssertValid();
}
void CAdminManage::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CAdminManage message handlers
void CAdminManage::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
m_readermanage.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );
m_readermanage.InsertColumn(0,"ID");
m_readermanage.InsertColumn(1,"姓名");
m_readermanage.InsertColumn(2,"班级");
m_readermanage.InsertColumn(3,"性别");
m_readermanage.SetColumnWidth(0,100);
m_readermanage.SetColumnWidth(1,100);
m_readermanage.SetColumnWidth(2,100);
m_readermanage.SetColumnWidth(3,100);
RefreshReaderList();
m_bookmanage.SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES );
m_bookmanage.InsertColumn(0,"书号");
m_bookmanage.InsertColumn(1,"书名");
m_bookmanage.InsertColumn(2,"作者");
m_bookmanage.InsertColumn(3,"出版社");
m_bookmanage.InsertColumn(4,"出版日期");
m_bookmanage.InsertColumn(5,"状态");
m_bookmanage.SetColumnWidth(0,100);
m_bookmanage.SetColumnWidth(1,100);
m_bookmanage.SetColumnWidth(2,100);
m_bookmanage.SetColumnWidth(3,160);
m_bookmanage.SetColumnWidth(4,100);
m_bookmanage.SetColumnWidth(5,100);
RefreshBookList();
}
void CAdminManage::RefreshBookList()
{
m_bookmanage.DeleteAllItems();
CBookSet *book=new CBookSet(&db);
book->Open();
int j=0;
if(book->IsEOF())
return;
book->MoveFirst();
book->m_BookNo.TrimRight();
book->m_Name.TrimRight();
book->m_Author.TrimRight();
book->m_PublishingHouse.TrimRight();
book->m_PublishingDate.TrimRight();
book->m_State.TrimRight();
m_bookmanage.InsertItem(j,book->m_BookNo);
m_bookmanage.SetItemText(j,1,book->m_Name);
m_bookmanage.SetItemText(j,2,book->m_Author);
m_bookmanage.SetItemText(j,3,book->m_PublishingHouse);
m_bookmanage.SetItemText(j,4,book->m_PublishingDate);
m_bookmanage.SetItemText(j,5,book->m_State);
j++;
book->MoveNext();
while(!book->IsEOF())
{
book->m_BookNo.TrimRight();
book->m_Name.TrimRight();
book->m_Author.TrimRight();
book->m_PublishingHouse.TrimRight();
book->m_PublishingDate.TrimRight();
book->m_State.TrimRight();
m_bookmanage.InsertItem(j,book->m_BookNo);
m_bookmanage.SetItemText(j,1,book->m_Name);
m_bookmanage.SetItemText(j,2,book->m_Author);
m_bookmanage.SetItemText(j,3,book->m_PublishingHouse);
m_bookmanage.SetItemText(j,4,book->m_PublishingDate);
m_bookmanage.SetItemText(j,5,book->m_State);
j++;
book->MoveNext();
}
book->Close();
}
void CAdminManage::RefreshReaderList()
{
m_readermanage.DeleteAllItems();
CUserSet *user=new CUserSet(&db);
user->Open();
int i=0;
user->MoveFirst();
if(user->m_Authority==0)
{
user->m_UserID.TrimRight();
user->m_Name.TrimRight();
user->m_Class.TrimRight();
CString sex;
if(user->m_Sex==1)
sex="男";
else
sex="女";
m_readermanage.InsertItem(i,user->m_UserID);
m_readermanage.SetItemText(i,1,user->m_Name);
m_readermanage.SetItemText(i,2,user->m_Class);
m_readermanage.SetItemText(i,3,sex);
i++;
}
user->MoveNext();
while(!user->IsEOF())
{
if(user->m_Authority==0)
{
user->m_UserID.TrimRight();
user->m_Name.TrimRight();
user->m_Class.TrimRight();
CString sex;
if(user->m_Sex==1)
sex="男";
else
sex="女";
m_readermanage.InsertItem(i,user->m_UserID);
m_readermanage.SetItemText(i,1,user->m_Name);
m_readermanage.SetItemText(i,2,user->m_Class);
m_readermanage.SetItemText(i,3,sex);
i++;
}
user->MoveNext();
}
user->Close();
}
void CAdminManage::OnButAddb()
{
// TODO: Add your control notification handler code here
CAddb dlg;
dlg.pview=this;
dlg.DoModal();
}
void CAdminManage::OnButModifyb()
{
// TODO: Add your control notification handler code here
int row=m_bookmanage.GetSelectionMark();
if(row==-1)
{
MessageBox("请选择一个记录进行操作!");
return;
}
else
{
CModifyb dlg;
dlg.pview=this;
dlg.DoModal();
}
}
void CAdminManage::OnButDeleteb()
{
// TODO: Add your control notification handler code here
int row=m_bookmanage.GetSelectionMark();
if(row==-1)
{
MessageBox("请先选择一条记录再操作!");
return;
}
CString num;
num=m_bookmanage.GetItemText(row,0);
CBookSet *book=new CBookSet(&db);
book->Open();
book->MoveFirst();
book->m_BookNo.TrimRight();
int flag=0;
if(num!=book->m_BookNo)
{
book->MoveNext();
book->m_BookNo.TrimRight();
while(!book->IsEOF() && num!=book->m_BookNo)
{
book->MoveNext();
book->m_BookNo.TrimRight();
}
flag=1;
}
int ret;
ret=MessageBox("确定删除?","确认操作",MB_OKCANCEL|MB_ICONQUESTION);
if(ret==IDOK)
{
if(book->m_State!=2)
{
MessageBox("该书的状态不允许被删除!");
book->Close();
return;
}
book->Delete();
if(flag==0)
book->MoveNext();
else
book->MovePrev();
MessageBox("删除成功!");
RefreshBookList();
}
book->Close();
}
void CAdminManage::OnButDeleter()
{
// TODO: Add your control notification handler code here
int row=m_readermanage.GetSelectionMark();
if(row==-1)
{
MessageBox("请先选择一条记录再操作!");
return;
}
CString num;
num=m_readermanage.GetItemText(row,0);
CUserSet *user=new CUserSet(&db);
user->Open();
user->MoveFirst();
user->m_UserID.TrimRight();
int flag=0;
if(num!=user->m_UserID)
{
user->MoveNext();
user->m_UserID.TrimRight();
while(!user->IsEOF() && num!=user->m_UserID)
{
user->MoveNext();
user->m_UserID.TrimRight();
}
flag=1;
}
int ret;
ret=MessageBox("确定删除?","确认操作",MB_OKCANCEL|MB_ICONQUESTION);
if(ret==IDOK)
{
CBorrowSet *borrow=new CBorrowSet(&db);
borrow->Open();
if(!borrow->IsBOF() && !borrow->IsEOF())
{
borrow->MoveFirst();
borrow->m_UserID.TrimRight();
if(borrow->m_UserID!=user->m_UserID)
{
borrow->MoveNext();
borrow->m_UserID.TrimRight();
while(!borrow->IsEOF() || borrow->m_UserID!=user->m_UserID)
{
borrow->MoveNext();
borrow->m_UserID.TrimRight();
}
}
if(!borrow->IsEOF())
{
MessageBox("对不起!\n该读者还有未归还的图书\n不能删除!");
borrow->Close();
user->Close();
return;
}
}
user->Delete();
if(flag==0)
user->MoveNext();
else
user->MovePrev();
borrow->Close();
MessageBox("删除成功!");
RefreshReaderList();
}
user->Close();
}
void CAdminManage::OnButAddr()
{
// TODO: Add your control notification handler code here
CAddr dlg;
dlg.pview=this;
dlg.DoModal();
}
void CAdminManage::OnButModifyr()
{
// TODO: Add your control notification handler code here
int row=m_readermanage.GetSelectionMark();
if(row==-1)
{
MessageBox("请选择一个记录进行操作!");
return;
}
else
{
CModifyr dlg;
dlg.pview=this;
dlg.DoModal();
}
}
void CAdminManage::OnButBorrow()
{
// TODO: Add your control notification handler code here
UpdateData();
CUserSet *user=new CUserSet(&db);
user->Open();
user->MoveFirst();
user->m_UserID.TrimRight();
if(m_readerid!=user->m_UserID)
{
user->MoveNext();
user->m_UserID.TrimRight();
while(!user->IsEOF() && m_readerid!=user->m_UserID)
{
user->MoveNext();
user->m_UserID.TrimRight();
}
}
if(user->IsEOF())
{
MessageBox("对不起!\n该读者不存在!");
user->Close();
return;
}
CBookSet *book=new CBookSet(&db);
book->Open();
book->MoveFirst();
book->m_BookNo.TrimRight();
if(m_bookno!=book->m_BookNo)
{
book->MoveNext();
book->m_BookNo.TrimRight();
while(!book->IsEOF() && m_bookno!=book->m_BookNo)
{
book->MoveNext();
book->m_BookNo.TrimRight();
}
}
if(book->IsEOF())
{
MessageBox("对不起!\n该图书不存在!");
book->Close();
user->Close();
return;
}
book->m_State.TrimRight();
if(book->m_State=="丢失" ||book->m_State=="借出")
{
CString info="对不起!\n该图书已"+book->m_State;
MessageBox(info);
return;
}
CBorrowSet *borrow=new CBorrowSet(&db);
borrow->Open();
if(borrow->CanAppend() && book->CanUpdate())
{
borrow->AddNew();
borrow->m_UserID=user->m_UserID;
borrow->m_BookNo=book->m_BookNo;
borrow->m_Name=book->m_Name;
CTime t=CTime::GetCurrentTime();
CTimeSpan time(30,0,0,0);
CString date1,date2;
date1.Format("%u/%2u/%2u",t.GetYear(),t.GetMonth(),t.GetDay());
borrow->m_DateOfBorrow=date1;
t+=time;
date2.Format("%u/%2u/%2u",t.GetYear(),t.GetMonth(),t.GetDay());
borrow->m_DateOfReversion=date2;
borrow->Update();
book->Edit();
book->m_State="借出";
book->Update();
RefreshBookList();
MessageBox("成功借阅!");
}
else
MessageBox("借阅失败!");
borrow->Close();
book->Close();
user->Close();
SetDlgItemText(IDC_EDIT_BRID,_T(""));
SetDlgItemText(IDC_EDIT_BBNO,_T(""));
}
void CAdminManage::OnButReturn()
{
// TODO: Add your control notification handler code here
UpdateData();
CUserSet *user=new CUserSet(&db);
user->Open();
user->MoveFirst();
user->m_UserID.TrimRight();
int flag=0;
if(m_readerid!=user->m_UserID)
{
user->MoveNext();
user->m_UserID.TrimRight();
while(!user->IsEOF() && m_readerid!=user->m_UserID)
{
user->MoveNext();
user->m_UserID.TrimRight();
}
flag=1;
}
if(user->IsEOF())
{
MessageBox("对不起!\n该读者不存在!");
return;
}
CBookSet *book=new CBookSet(&db);
book->Open();
book->MoveFirst();
book->m_BookNo.TrimRight();
if(m_bookno!=book->m_BookNo)
{
book->MoveNext();
book->m_BookNo.TrimRight();
while(!book->IsEOF() && m_bookno!=book->m_BookNo)
{
book->MoveNext();
book->m_BookNo.TrimRight();
}
}
if(book->IsEOF())
{
MessageBox("对不起!\n该图书不存在!");
return;
}
CBorrowSet *borrow=new CBorrowSet(&db);
borrow->Open();
if(borrow->CanUpdate())
{
borrow->Delete();
if(flag==0)
borrow->MoveNext();
else
borrow->MovePrev();
book->Edit();
book->m_State="在馆";
book->Update();
RefreshBookList();
MessageBox("成功归还!");
}
SetDlgItemText(IDC_EDIT_BRID,_T(""));
SetDlgItemText(IDC_EDIT_BBNO,_T(""));
borrow->Requery();
book->Close();
borrow->Close();
user->Close();
}
BOOL CAdminManage::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Add your specialized code here and/or call the base class
//cs.lpszClass="nick";
return CFormView::PreCreateWindow(cs);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -