📄 libraryview.cpp
字号:
Cbook m_bookSet;
m_bookSet.m_strFilter = "";
Book_List(m_bookSet, m_BookListCtrl);
// 查询所有借书证
Ccard m_cardSet;
m_cardSet.m_strFilter = "";
Card_List(m_cardSet, m_CardListCtrl);
}
void ClibraryView::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
Book_List(m_bookSet, m_BookListCtrl);
//如果是匿名登陆 不显示卡号信息
if(!anonymous)
Card_List(m_cardSet, m_CardListCtrl);
}
void ClibraryView::OnCardEnd()
{
CCardDrop cardDropDlg;
if(!this->anonymous)
cardDropDlg.DoModal();
Card_List(m_cardSet, m_CardListCtrl);
}
void ClibraryView::OnCardApply()
{
CCardApply cardapplyDlg;
if(!this->anonymous)
cardapplyDlg.DoModal();
Card_List(m_cardSet, m_CardListCtrl);
}
void ClibraryView::Onlogout()
{
LoginDialog LoginDialog;
bool LoginSuccess;
bool Anonymous;
CString tmp;
CMainFrame *pMainWnd = (CMainFrame *)AfxGetMainWnd();
if (this->anonymous)
{
// 显示登陆对话框
while (true)
{
if ((LoginDialog.DoModal()) == IDOK)
{
if (LoginDialog.m_CheckAnonymous) // 匿名登陆
{
// 设置主框架标题
pMainWnd->SetWindowText((CString)("图书馆管理系统 - 匿名"));
Anonymous = true;
AdministratorID = "";
break;
}
// 构造查询语句查询对应的管理员及其密码
tmp = (CString)("id = '") + LoginDialog.m_administratorID + (CString)("' and password = '")
+ LoginDialog.m_password + (CString)("'");
m_pSet->m_strFilter = tmp;
m_pSet->Requery();
LoginSuccess = !m_pSet->IsEOF(); // 若管理员不存在或密码错误,则m_pSet->IsEOF() = true
if (LoginSuccess)
{
// 设置主框架标题
pMainWnd->SetWindowText((CString)("图书馆管理系统 - ") + LoginDialog.m_administratorID);
this->anonymous = false;
AdministratorID = LoginDialog.m_administratorID;
break;
}
else
MessageBox(_T("管理员不存在或密码错误!"), _T("错误"), MB_OK | MB_ICONERROR);
}
else
return;
}
// 借书卡列表控件无效
GetDlgItem(IDC_STATIC_CARD)->EnableWindow(TRUE);
GetDlgItem(IDC_LIST_CARD)->EnableWindow(TRUE);
m_cardSet.m_strFilter = (CString)"";
Card_List(m_cardSet, m_CardListCtrl);
}
else
{
if (MessageBox(_T("确认要注销吗?"), _T("确认"), MB_OKCANCEL | MB_ICONQUESTION) == IDOK)
{
// 设置主框架标题
this->anonymous=true;
pMainWnd->SetWindowText((CString)("图书馆管理系统 - 匿名"));
AdministratorID = "";
m_CardListCtrl.DeleteAllItems();
// 借书卡列表控件无效
GetDlgItem(IDC_STATIC_CARD)->EnableWindow(FALSE);
GetDlgItem(IDC_LIST_CARD)->EnableWindow(FALSE);
}
}
}
void ClibraryView::OnBookBorrow()
{
CBookBorrowDlg bookBorrowDlg;
if(!this->anonymous)
bookBorrowDlg.DoModal();
Book_List(m_bookSet, m_BookListCtrl);
}
void ClibraryView::OnBookReturn()
{
CBookReturnDlg bookReturnDlg;
if(!this->anonymous)
bookReturnDlg.DoModal();
Book_List(m_bookSet, m_BookListCtrl);
}
void ClibraryView::OnBookIn()
{
CBookinDlg bookinDlg;
if(!this->anonymous)
bookinDlg.DoModal();
Book_List(m_bookSet, m_BookListCtrl);
}
void ClibraryView::OnBookDelete()
{
BookDeleteDlg bookdelete;
if(!this->anonymous)
bookdelete.DoModal();
Book_List(m_bookSet, m_BookListCtrl);
}
void ClibraryView::OnQueryBook()
{
BookQueryDlg bookquery;
bookquery.DoModal();
}
void ClibraryView::OnExit()
{
if (MessageBox(_T("确实要退出吗?"), _T("确认"), MB_OKCANCEL | MB_ICONQUESTION) == IDOK)
exit(0);
}
void ClibraryView::OnQueryuser()
{
BookBorrowed bookborrowed;
bookborrowed.DoModal();
}
void ClibraryView::OnAppAbout()
{
// TODO: 在此添加命令处理程序代码
Info info;
info.DoModal();
}
void ClibraryView::OnBatchin()
{
Cbook m_bookSet;
char buf[200];
CString book[9];
CString FilePathName,str,year,price,total,stock;
int i;
double d;
CFileDialog OpenBookListFile(true, (CString)"list", NULL,
OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, (CString)"List File (*.list)|*.list||", NULL, sizeof(OPENFILENAME));
if(OpenBookListFile.DoModal()==IDOK)
FilePathName=OpenBookListFile.GetPathName();
ifstream in(FilePathName);
if(!m_bookSet.IsOpen())
m_bookSet.Open();
in.getline(buf,200);
str=(CString)buf;
int f=((!str.IsEmpty())?1:0);
while(!str.IsEmpty())
{
i=str.Find((CString)",");
book[0]=str.Mid(1,i-1);
str.Delete(0,i+1);
for(int j=1;j<9;j++)
{
i=str.Find((CString)",");
book[j]=str.Left (i);
str.Delete(0,i+1);
}
m_bookSet.m_strFilter.Format((CString)"bno like '%s'",book[0]);
m_bookSet.Requery();
if(!m_bookSet.IsEOF())
{
m_bookSet.Edit();
m_bookSet.m_total+=atoi((LPSTR)(LPCTSTR)book[7]);
m_bookSet.m_stock+=atoi((LPSTR)(LPCTSTR)book[8]);
m_bookSet.Update();
}
else
{
m_bookSet.AddNew();
m_bookSet.m_bno=book[0];
m_bookSet.m_category=((!book[1].IsEmpty())?book[1]:(CString)"无");
m_bookSet.m_title=((!book[2].IsEmpty())?book[2]:(CString)"无");
m_bookSet.m_press=((!book[3].IsEmpty())?book[3]:(CString)"无");
_AtlSimpleFloatParse(book[4], d);
m_bookSet.m_year=(long)d;
m_bookSet.m_author=((!book[5].IsEmpty())?book[5]:(CString)"无");
_AtlSimpleFloatParse(book[6], d);
m_bookSet.m_price=d;
_AtlSimpleFloatParse(book[7], d);
m_bookSet.m_total=(long)d;
_AtlSimpleFloatParse(book[8], d);
m_bookSet.m_stock = (long)d;
m_bookSet.Update();
}
str.Empty();
in.getline(buf,200);
str=(CString)buf;
}
m_bookSet.Close();
if(f)
AfxMessageBox((CString)"入库成功");
return;
}
//匿名登陆时选项不可选
void ClibraryView::OnUpdateCardApply(CCmdUI *pCmdUI)
{
if (this->anonymous)
pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdateLogOut(CCmdUI *pCmdUI)
{
if (this->anonymous)
pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdateBookBorrow(CCmdUI *pCmdUI)
{
if (this->anonymous)
pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdateCardEnd(CCmdUI *pCmdUI)
{
if (this->anonymous)
pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdateBookIn(CCmdUI *pCmdUI)
{
if (this->anonymous)
pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdateBookReturn(CCmdUI *pCmdUI)
{
if (this->anonymous)
pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdatelogout(CCmdUI *pCmdUI)
{
if (AdministratorID == "")
pCmdUI->SetText(_T("登陆(&L)"));
else
pCmdUI->SetText(_T("注销"));
}
void ClibraryView::OnUpdateBookDelete(CCmdUI *pCmdUI)
{
if (this->anonymous)
pCmdUI->Enable(FALSE);
}
void ClibraryView::OnUpdateBatchin(CCmdUI *pCmdUI)
{
if (this->anonymous)
pCmdUI->Enable(FALSE);
}
static bool _AtlSimpleFloatParse(LPCTSTR lpszText, double &d)
{
ATLASSERT(lpszText != NULL);
while (*lpszText == ' '|| *lpszText == '\t')
lpszText++;
TCHAR chFirst = lpszText[0];
d = _tcstod(lpszText,(LPTSTR*)&lpszText);
if (d == 0.0 && chFirst != '0')
return FALSE; // could not convert
while (*lpszText == ' '|| *lpszText == '\t')
lpszText++;
if (*lpszText != '\0')
return FALSE; // not terminated properly
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -