📄 bookdlg.cpp
字号:
// bookdlg.cpp : implementation file
//
#include "stdafx.h"
#include "Library.h"
#include "bookdlg.h"
#include"cbookset.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// bookdlg dialog
bookdlg::bookdlg(CWnd* pParent /*=NULL*/)
: CDialog(bookdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(bookdlg)
m_amount = 0;
m_strauthor = _T("");
m_strbookid = _T("");
m_strbookidq = _T("");
m_strbookname = _T("");
m_booknameq = _T("");
m_remain = 0;
m_strpress = _T("");
m_strflag = _T("");
//}}AFX_DATA_INIT
}
void bookdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(bookdlg)
DDX_Text(pDX, IDC_AMOUNT, m_amount);
DDX_Text(pDX, IDC_AUTHOR, m_strauthor);
DDX_Text(pDX, IDC_BOOKID, m_strbookid);
DDX_Text(pDX, IDC_BOOKIDQ, m_strbookidq);
DDX_Text(pDX, IDC_BOOKNAME, m_strbookname);
DDX_Text(pDX, IDC_BOOKNAMEQ, m_booknameq);
DDX_Text(pDX, IDC_REMAIN, m_remain);
DDX_Text(pDX, IDC_PRESS, m_strpress);
DDX_Text(pDX, IDC_FLAG_BOEEOW, m_strflag);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(bookdlg, CDialog)
//{{AFX_MSG_MAP(bookdlg)
ON_BN_CLICKED(IDC_ENQUERY, OnEnquery)
ON_BN_CLICKED(IDC_FIRST, OnFirst)
ON_BN_CLICKED(IDC_PRIOR, OnPrior)
ON_BN_CLICKED(IDC_NEXT, OnNext)
ON_BN_CLICKED(IDC_LAST, OnLast)
ON_BN_CLICKED(IDC_NEW, OnNew)
ON_BN_CLICKED(IDC_EDIT, OnEdit)
ON_BN_CLICKED(IDC_SAVE, OnSave)
ON_BN_CLICKED(IDC_CANCEL_REC, OnCancelRec)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_BN_CLICKED(IDC_EXIT, OnExit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// bookdlg message handlers
void bookdlg::OnEnquery()
{
UpdateData(TRUE);
if (m_strbookidq.IsEmpty() && m_strbookname.IsEmpty())
{
m_rsDataSet.m_strFilter = "";
m_rsDataSet.Requery();
DisplayRecord();
SetButtonState();
return;
}
BOOL mAll = FALSE;
if (!m_strbookidq.IsEmpty())
{
m_rsDataSet.m_strFilter = "bookinf.booknum='" + m_strbookidq ;
m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + "'";
mAll = TRUE;
}
if (!m_booknameq.IsEmpty())
{
if (mAll)
{
m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + " AND bookinf.bookname='";
m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + m_strbookidq;
m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + "'";
}
else
{
m_rsDataSet.m_strFilter = "bookinf.bookname='" + m_strbookidq;
m_rsDataSet.m_strFilter = m_rsDataSet.m_strFilter + "'";
}
}
m_rsDataSet.Requery();
DisplayRecord();
SetButtonState();
}
void bookdlg::OnFirst()
{
if(!m_rsDataSet.IsBOF())
{
m_rsDataSet.MoveFirst();
DisplayRecord();
SetButtonState();
}
}
void bookdlg::OnPrior()
{
if(!m_rsDataSet.IsBOF())
{
m_rsDataSet.MovePrev();
DisplayRecord();
SetButtonState();
}
}
void bookdlg::OnNext()
{
if(!m_rsDataSet.IsEOF())
{
m_rsDataSet.MoveNext();
DisplayRecord();
SetButtonState();
}
}
void bookdlg::OnLast()
{
if(!m_rsDataSet.IsEOF())
{
m_rsDataSet.MoveLast();
DisplayRecord();
SetButtonState();
}
}
void bookdlg::OnNew()
{
m_strbookid="";
m_strbookname = "";
m_strauthor = "";
m_strpress = "";
m_amount=0;
m_remain=0;
// m_cntrPosition.
UpdateData(FALSE);
m_bEdit = TRUE;
m_bAdd = TRUE;
SetButtonState();
SetTextState();
CWnd *pWnd;
pWnd = GetDlgItem(IDC_BOOKID);
pWnd->SetFocus();
}
void bookdlg::OnEdit()
{
m_bEdit = TRUE;
SetButtonState();
SetTextState();
CWnd *pWnd;
pWnd = GetDlgItem(IDC_BOOKNAME);
pWnd->SetFocus();
}
void bookdlg::OnSave()
{
UpdateData();
if (m_strbookid.IsEmpty()|| m_strbookname.IsEmpty())
{
AfxMessageBox("请输入相应数据!");
return;
}
if (m_bAdd)
{
m_rsDataSet.AddNew();
}
else
{
m_rsDataSet.Edit();
}
m_rsDataSet.m_author = m_strauthor;
m_rsDataSet.m_bookname = m_strbookname;
m_rsDataSet.m_bookinf_booknum = m_strbookid;
m_rsDataSet.m_publish = m_strpress;
m_rsDataSet.m_remain=m_remain;
m_rsDataSet.m_amount=m_amount;
m_rsDataSet.Update();
m_rsDataSet.Requery();
m_bAdd = FALSE;
m_bEdit = FALSE;
DisplayRecord();
SetButtonState();
SetTextState();
}
void bookdlg::OnCancelRec()
{
m_bAdd = FALSE;
m_bEdit = FALSE;
DisplayRecord();
SetButtonState();
SetTextState();
}
void bookdlg::OnDelete()
{
m_rsDataSet.Delete();
DisplayRecord();
SetButtonState();
}
void bookdlg::OnExit()
{
CDialog::OnCancel();
}
BOOL bookdlg::DisplayRecord()
{
if (m_rsDataSet.IsEOF() && m_rsDataSet.IsBOF())
{
m_strbookid ="";
m_strbookname = "";
m_strpress = "";
m_strauthor = "";
m_strflag = "";
m_amount=0;
m_remain=0;
}
else
{
if (m_rsDataSet.IsBOF())
{
m_rsDataSet.MoveNext();
}
else
{
if (m_rsDataSet.IsEOF())
{
m_rsDataSet.MovePrev();
}
}
m_strbookid = m_rsDataSet.m_bookinf_booknum;
m_strbookname = m_rsDataSet.m_bookname;
m_strpress = m_rsDataSet.m_publish;
m_strauthor = m_rsDataSet.m_author ;
m_remain = m_rsDataSet.m_remain ;
m_amount=m_rsDataSet.m_amount;
if(m_rsDataSet.m_remain==0){
m_strflag="NO";
}
else{
m_strflag="YES";
}
}
UpdateData(FALSE);
return TRUE;
}
BOOL bookdlg::SetTextState()
{
CWnd *pWnd;
if (m_bEdit)
{
pWnd = GetDlgItem(IDC_BOOKNAME);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_BOOKID);
if (m_bAdd)
pWnd->EnableWindow(TRUE);
else
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_AUTHOR);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_PRESS);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_PRESSDATE);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_FLAG_BORROW);
pWnd->EnableWindow(TRUE);
}
else
{
pWnd = GetDlgItem(IDC_BOOKNAME);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_BOOKID);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_AUTHOR);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_PRESS);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_PRESSDATE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_FLAG_BORROW);
pWnd->EnableWindow(FALSE);
}
pWnd = GetDlgItem(IDC_BOOKNAME_Q);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_BOOKID_Q);
pWnd->EnableWindow(TRUE);
return TRUE;
}
BOOL bookdlg::SetButtonState()
{
CWnd *pWnd;
if(!m_rsDataSet.IsOpen())
{
pWnd = GetDlgItem(IDC_FIRST);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_NEXT);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_PRIOR);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_LAST);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_NEW);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_EDIT);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_ENQUERY);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_DELETE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_SAVE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_CANCEL_REC);
pWnd->EnableWindow(FALSE);
return TRUE;
}
if (m_bEdit)
{
pWnd = GetDlgItem(IDC_FIRST);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_NEXT);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_PRIOR);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_LAST);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_NEW);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_EDIT);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_ENQUERY);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_DELETE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_SAVE);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_CANCEL_REC);
pWnd->EnableWindow(TRUE);
return TRUE;
}
if (m_rsDataSet.IsBOF())
{
pWnd = GetDlgItem(IDC_FIRST);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_PRIOR);
pWnd->EnableWindow(FALSE);
}
else
{
pWnd = GetDlgItem(IDC_FIRST);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_PRIOR);
pWnd->EnableWindow(TRUE);
}
if (m_rsDataSet.IsEOF())
{
pWnd = GetDlgItem(IDC_NEXT);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_LAST);
pWnd->EnableWindow(FALSE);
}
else
{
pWnd = GetDlgItem(IDC_NEXT);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_LAST);
pWnd->EnableWindow(TRUE);
}
if (m_rsDataSet.IsBOF() && m_rsDataSet.IsEOF())
{
pWnd = GetDlgItem(IDC_EDIT);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_DELETE);
pWnd->EnableWindow(FALSE);
}
else
{
pWnd = GetDlgItem(IDC_EDIT);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_DELETE);
pWnd->EnableWindow(TRUE);
}
pWnd = GetDlgItem(IDC_NEW);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_ENQUERY);
pWnd->EnableWindow(TRUE);
pWnd = GetDlgItem(IDC_SAVE);
pWnd->EnableWindow(FALSE);
pWnd = GetDlgItem(IDC_CANCEL_REC);
pWnd->EnableWindow(FALSE);
return TRUE;
}
BOOL bookdlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_bAdd = FALSE;
m_bEdit = FALSE;
if (!m_rsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE))
AfxMessageBox("数据打开失败!");
DisplayRecord();
SetButtonState();
SetTextState();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -