⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adminnewbook.cpp

📁 图书管理系统 带源码 文档
💻 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 + -