📄 adminnewbook.cpp
字号:
// AdminNewBook.cpp : implementation file
//
#include "stdafx.h"
#include "library.h"
#include "AdminNewBook.h"
#include "_recordset.h"
#include "ADOConn.h"
#include "Book.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
///////////////////////////////////////////////////////////////////////////
// CAdminNewBook dialog
CAdminNewBook::CAdminNewBook(CWnd* pParent /*=NULL*/)
: CDialog(CAdminNewBook::IDD, pParent)
{
//{{AFX_DATA_INIT(CAdminNewBook)
m_About = _T("");
m_Author = _T("");
m_Name = _T("");
m_Press = _T("");
m_PDate = _T("");
m_CopyNum = 1;
//}}AFX_DATA_INIT
}
void CAdminNewBook::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAdminNewBook)
DDX_Control(pDX, IDC_COMBO1, m_Combo);
DDX_Control(pDX, IDC_ADODC1, m_ado);
DDX_Control(pDX, IDC_DATAGRID1, m_datagrid);
DDX_Text(pDX, IDC_EDIT_ABOUT, m_About);
DDX_Text(pDX, IDC_EDIT_AUTHOR, m_Author);
DDX_Text(pDX, IDC_EDIT_NAME, m_Name);
DDX_Text(pDX, IDC_EDIT_PRESS, m_Press);
DDX_Text(pDX, IDC_EDIT_PUBLICDATE, m_PDate);
DDX_Text(pDX, IDC_EDIT_COPYNUM, m_CopyNum);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAdminNewBook, CDialog)
//{{AFX_MSG_MAP(CAdminNewBook)
ON_BN_CLICKED(IDC_BTN_COMEIN, OnBtnComein)
ON_BN_CLICKED(IDC_BTN_DELETE, OnBtnDelete)
ON_BN_CLICKED(IDC_BTN_INSERT, OnBtnInsert)
ON_BN_CLICKED(IDC_BTN_UPDATE, OnBtnUpdate)
ON_BN_CLICKED(IDC_BTN_CANCLE, OnBtnCancle)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CAdminNewBook message handlers
void CAdminNewBook::OnBtnComein()
{
// TODO: Add your control notification handler code here
m_flag = 2;
((CButton *)GetDlgItem(IDC_BTN_INSERT))->SetWindowText("确认入库");
//((CEdit *)GetDlgItem(IDC_EDIT_NAME))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_COPYNUM))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_NAME))->SetFocus( );
m_ado.EnableWindow(FALSE);
m_datagrid.EnableWindow(FALSE);
GetDlgItem(IDC_BTN_UPDATE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BTN_DELETE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BTN_COMEIN)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BTN_CANCLE)->ShowWindow(SW_SHOW);
}
void CAdminNewBook::OnBtnDelete()
{
// TODO: Add your control notification handler code here
if (MessageBox("确认要删除??","确认",MB_YESNO)==IDYES)
{
nbook.SQL_Delete(nbook.GetName());
m_ado.Refresh();
RefreshData();
UpdateData(false);
}
}
void CAdminNewBook::OnBtnInsert()
{
// TODO: Add your control notification handler code here
if (m_flag ==0)
{
m_flag = 1;
((CButton *)GetDlgItem(IDC_BTN_INSERT))->SetWindowText("确认创建");
((CEdit *)GetDlgItem(IDC_EDIT_NAME))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_AUTHOR))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_PRESS))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_PUBLICDATE))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_ABOUT))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_NAME))->SetFocus( );
m_ado.EnableWindow(FALSE);
m_datagrid.EnableWindow(FALSE);
GetDlgItem(IDC_BTN_UPDATE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BTN_DELETE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BTN_COMEIN)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BTN_CANCLE)->ShowWindow(SW_SHOW);
}
else if (m_flag==1)
{
if (m_Name=="")
{
MessageBox("书名不能为空!", "警告",MB_OK);
return;
}
UpdateData(true);
nbook.SetName(m_Name);
nbook.SetAuthor(m_Author);
nbook.SetPress(m_Press);
nbook.SetPublicDate(m_PDate);
nbook.SetAbout(m_About);
int type = m_Combo.GetCurSel();
switch (type)
{
case 0:
nbook.SetType("社会科学");
break;
case 1:
nbook.SetType("自然科学");
break;
case 2:
nbook.SetType("艺术类");
break;
default:
nbook.SetType("综合类");
}
nbook.SQL_Insert();
MessageBox("创建成功!");
m_flag = 0;
((CButton *)GetDlgItem(IDC_BTN_INSERT))->SetWindowText("创建");
((CEdit *)GetDlgItem(IDC_EDIT_NAME))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_AUTHOR))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_PRESS))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_PUBLICDATE))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_ABOUT))->SetReadOnly(TRUE);
m_ado.EnableWindow(TRUE);
m_datagrid.EnableWindow(TRUE);
GetDlgItem(IDC_BTN_UPDATE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_DELETE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_COMEIN)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_CANCLE)->ShowWindow(SW_HIDE);
m_ado.Refresh();
RefreshData();
UpdateData(false);
}
else if (m_flag==2)
{
UpdateData(true);
if (m_CopyNum==0)
{
MessageBox("请输入入库书目");
return;
}
CString stype,vNo,stime;
stime.Format("%d-%02d-%02d",CTime::GetCurrentTime().GetYear(),CTime::GetCurrentTime().GetMonth(),
CTime::GetCurrentTime().GetDay());
int itype = m_Combo.GetCurSel();
switch (itype)
{
case 0:
stype="社会科学";
vNo="A";
break;
case 1:
stype="自然科学";
vNo="B";
break;
case 2:
stype="艺术类";
vNo="C";
break;
default:
stype="综合类";
vNo="D";
}
CBook b;
b.SetAbout(m_About);
b.SetAuthor(m_Author);
b.SetName(m_Name);
b.SetType(stype);
b.SetPress(m_Press);
b.SetPublicDate(m_PDate);
b.SetStatus("可借");
b.SetComeInDate(stime);
b.SetCopyNum(m_CopyNum);
ADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
_bstr_t vSQL;
vSQL = "select top 1 BNo from Book where Type='"+stype+"' order by BNo desc";
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
if (m_pRecordset->adoEOF)
{
vNo=vNo+"000001";
b.SetNo(vNo);
b.SQL_Insert();
}
else
{
stype = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect("BNo");
m_AdoConn.ExitConnect();
stype = stype.Mid(1);
int i=atoi(stype);
for (int j=0;j<m_CopyNum;j++)
{
i = i+1;
stype.Format("%06d",i);
stime = vNo+stype;
b.SetNo(stime);
b.SQL_Insert();
}
}
MessageBox("入库成功!");
nbook.SQL_Delete(m_Name);
m_flag=0;
((CButton *)GetDlgItem(IDC_BTN_INSERT))->SetWindowText("创建");
((CEdit *)GetDlgItem(IDC_EDIT_COPYNUM))->SetReadOnly(TRUE);
m_ado.EnableWindow(TRUE);
m_datagrid.EnableWindow(TRUE);
GetDlgItem(IDC_BTN_UPDATE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_DELETE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_COMEIN)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_CANCLE)->ShowWindow(SW_HIDE);
m_ado.Refresh();
RefreshData();
UpdateData(false);
}
else
{
UpdateData(true);
if (m_Name=="")
{
MessageBox("书名不能为空!", "警告",MB_OK);
return;
}
nbook.SetName(m_Name);
nbook.SetAuthor(m_Author);
nbook.SetPress(m_Press);
nbook.SetPublicDate(m_PDate);
nbook.SetAbout(m_About);
int type = m_Combo.GetCurSel();
switch (type)
{
case 0:
nbook.SetType("社会科学");
break;
case 1:
nbook.SetType("自然科学");
break;
case 2:
nbook.SetType("艺术类");
break;
default:
nbook.SetType("综合类");
}
nbook.SQL_Update(nbook.GetName());
MessageBox("修改成功!");
m_flag=0;
((CButton *)GetDlgItem(IDC_BTN_INSERT))->SetWindowText("创建");
//((CEdit *)GetDlgItem(IDC_EDIT_NAME))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_AUTHOR))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_PRESS))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_PUBLICDATE))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_ABOUT))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_COPYNUM))->SetReadOnly(TRUE);
m_ado.EnableWindow(TRUE);
m_datagrid.EnableWindow(TRUE);
GetDlgItem(IDC_BTN_UPDATE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_DELETE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_COMEIN)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_CANCLE)->ShowWindow(SW_HIDE);
m_ado.Refresh();
RefreshData();
UpdateData(false);
}
}
void CAdminNewBook::OnBtnUpdate()
{
// TODO: Add your control notification handler code here
m_flag = 3;
((CButton *)GetDlgItem(IDC_BTN_INSERT))->SetWindowText("确认修改");
((CEdit *)GetDlgItem(IDC_EDIT_AUTHOR))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_PRESS))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_PUBLICDATE))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_ABOUT))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_COPYNUM))->SetReadOnly(FALSE);
((CEdit *)GetDlgItem(IDC_EDIT_NAME))->SetFocus( );
m_ado.EnableWindow(FALSE);
m_datagrid.EnableWindow(FALSE);
GetDlgItem(IDC_BTN_UPDATE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BTN_DELETE)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BTN_COMEIN)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_BTN_CANCLE)->ShowWindow(SW_SHOW);
/**/
}
BOOL CAdminNewBook::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//m_ado.Refresh();
m_flag = 0;
((CEdit *)GetDlgItem(IDC_EDIT_NAME))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_AUTHOR))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_PRESS))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_PUBLICDATE))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_ABOUT))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_COPYNUM))->SetReadOnly(TRUE);
GetDlgItem(IDC_BTN_CANCLE)->ShowWindow(SW_HIDE);
RefreshData();
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CAdminNewBook::RefreshData()
{
if (m_ado.GetRecordset().GetEof()==1)
{
MessageBox("没有找到你所要的记录!请重来!");
return;
}
nbook.GetData(m_datagrid.GetItem(0));
m_Name = nbook.GetName();
m_Author = nbook.GetAuthor();
m_PDate = nbook.GetPublicDate();
m_About = nbook.GetAbout();
m_Press = nbook.GetPress();
CString type;
type = nbook.GetType();
if(type == "社会科学")
{
m_Combo.SetCurSel(0);
}
else if (type == "自然科学")
{
m_Combo.SetCurSel(1);
}
else if (type == "艺术类")
{
m_Combo.SetCurSel(2);
}
else
m_Combo.SetCurSel(3);
}
BEGIN_EVENTSINK_MAP(CAdminNewBook, CDialog)
//{{AFX_EVENTSINK_MAP(CAdminNewBook)
ON_EVENT(CAdminNewBook, IDC_DATAGRID1, 218 /* RowColChange */, OnRowColChangeDatagrid1, VTS_PVARIANT VTS_I2)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CAdminNewBook::OnRowColChangeDatagrid1(VARIANT FAR* LastRow, short LastCol)
{
// TODO: Add your control notification handler code here
RefreshData();
UpdateData(false);
}
void CAdminNewBook::OnBtnCancle()
{
// TODO: Add your control notification handler code here
m_flag = 0;
GetDlgItem(IDC_BTN_INSERT)->SetWindowText("创建");
((CEdit *)GetDlgItem(IDC_EDIT_NAME))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_AUTHOR))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_PRESS))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_PUBLICDATE))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_ABOUT))->SetReadOnly(TRUE);
((CEdit *)GetDlgItem(IDC_EDIT_COPYNUM))->SetReadOnly(TRUE);
m_ado.EnableWindow(TRUE);
m_datagrid.EnableWindow(TRUE);
GetDlgItem(IDC_BTN_UPDATE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_DELETE)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_COMEIN)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_BTN_CANCLE)->ShowWindow(SW_HIDE);
m_ado.Refresh();
RefreshData();
UpdateData(false);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -