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

📄 adminbookinfo.cpp

📁 图书管理系统 带源码 文档
💻 CPP
字号:
// AdminBookInfo.cpp : implementation file
//

#include "stdafx.h"
#include "library.h"
#include "AdminBookInfo.h"
#include "_recordset.h"
#include "Borrow.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CAdminBookInfo dialog


CAdminBookInfo::CAdminBookInfo(CWnd* pParent /*=NULL*/)
	: CDialog(CAdminBookInfo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAdminBookInfo)
	m_EditQuery = _T("");
	m_Aut = _T("");
	m_CDate = _T("");
	m_Name = _T("");
	m_No = _T("");
	m_PDate = _T("");
	m_Pre = _T("");
	m_RNo = _T("");
	m_Status = _T("");
	m_About = _T("");
	m_CNum = 0;
	//}}AFX_DATA_INIT
}


void CAdminBookInfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAdminBookInfo)
	DDX_Control(pDX, IDC_COMBO2, m_Combo2);
	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_QUERY, m_EditQuery);
	DDX_Text(pDX, IDC_EDIT_AUT, m_Aut);
	DDX_Text(pDX, IDC_EDIT_CDATE, m_CDate);
	DDX_Text(pDX, IDC_EDIT_NAME, m_Name);
	DDX_Text(pDX, IDC_EDIT_NO, m_No);
	DDX_Text(pDX, IDC_EDIT_PDATE, m_PDate);
	DDX_Text(pDX, IDC_EDIT_PRE, m_Pre);
	DDX_Text(pDX, IDC_EDIT_RNO, m_RNo);
	DDX_Text(pDX, IDC_EDIT_STATUS, m_Status);
	DDX_Text(pDX, IDC_EDITABOUT, m_About);
	DDX_Text(pDX, IDC_EDIT_CNUM, m_CNum);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAdminBookInfo, CDialog)
	//{{AFX_MSG_MAP(CAdminBookInfo)
	ON_BN_CLICKED(IDC_BTN_QUERY, OnBtnQuery)
	ON_BN_CLICKED(IDC_BTN_UPDATE, OnBtnUpdate)
	ON_BN_CLICKED(IDC_BTN_DELETE, OnBtnDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAdminBookInfo message handlers

BOOL CAdminBookInfo::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	((CButton *)GetDlgItem(IDC_RADIO6))->SetCheck(TRUE);//选上
	m_Combo.SetCurSel(1);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CAdminBookInfo::OnBtnQuery() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	int index;
	CString strCom,vSQL;
	vSQL = "Select BNo As 书号, BName As 书名, Type As 类型,Status As 状态,Author As 作者,Press As 出版社 ";
	vSQL += " From Book Where ";
	if (((CButton *)GetDlgItem(IDC_RADIO6))->GetCheck() == 1)
	{
		strCom = m_EditQuery + "%";
	}
	else 
	{
		strCom = "%" + m_EditQuery + "%";
	}
	index = m_Combo.GetCurSel();
	switch (index)
	{
	case 0:
		vSQL = vSQL + "BNo like '" +strCom + "'"; 
		break;
	case 1:
		vSQL = vSQL + "BName like '" +strCom + "'"; 
		break;
	case 2:
		if (m_EditQuery == "1")
			strCom = "社会科学";
		else if (m_EditQuery == "2")
			strCom = "自然科学"; 
		else if (m_EditQuery == "3")
			strCom = "艺术类";
		else if (m_EditQuery == "4")
			strCom = "综合类";
		else
			strCom = "";
		vSQL = vSQL + "Type='" +strCom + "'"; 
		break;
	case 3:
		vSQL = vSQL + "Author like '" +strCom + "'"; 
		break;
	case 4:
		vSQL = vSQL + "Press like '" +strCom + "'"; 
		break;
	}
	m_ado.SetRecordSource(vSQL);		//刷新ADO Data控件的记录源
	m_ado.Refresh();

	int i = (int)m_datagrid.GetApproxCount();
	strCom.Format("命中项为: %d",i);
	GetDlgItem(IDC_NUM)->SetWindowText(strCom);

	RefreshData();
	UpdateData(false);
}

BEGIN_EVENTSINK_MAP(CAdminBookInfo, CDialog)
    //{{AFX_EVENTSINK_MAP(CAdminBookInfo)
	ON_EVENT(CAdminBookInfo, IDC_DATAGRID1, 218 /* RowColChange */, OnRowColChangeDatagrid1, VTS_PVARIANT VTS_I2)
	//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()

void CAdminBookInfo::OnRowColChangeDatagrid1(VARIANT FAR* LastRow, short LastCol) 
{
	// TODO: Add your control notification handler code here
	RefreshData();
	UpdateData(false);
}

void CAdminBookInfo::RefreshData()
{
	if (m_ado.GetRecordset().GetEof()==1)
	{
		MessageBox("没有找到你所要的记录!请重来!");
		return;
	}
	book.GetData(m_datagrid.GetItem(0));	
	m_No = book.GetNo();
	m_Name = book.GetName();
	m_Status = book.GetStatus();
	m_Aut = book.GetAuthor();
	m_PDate = book.GetPublicDate();
	m_CDate = book.GetComeInDate();
	m_About = book.GetAbout();
	m_Pre = book.GetPress();
	m_CNum = book.GetCopyNum();
	if (m_Status=="可借")
		m_RNo = "在馆";
	else
	{
		CBorrow b;
		b.GetData(m_No);
		m_RNo = b.GetReaderNo();
	}
	CString type;
	type = book.GetType();
	if(type == "社会科学")
	{
		m_Combo2.SetCurSel(0);
	}
	else if (type == "自然科学")
	{
		m_Combo2.SetCurSel(1);
	}
	else if (type == "艺术类")
	{
		m_Combo2.SetCurSel(2);
	}
	else
		m_Combo2.SetCurSel(3);
}

void CAdminBookInfo::OnBtnUpdate() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	if (m_Name=="")
	{
		MessageBox("书名不能为空!", "警告",MB_OK);
		return;
	}
	book.SetName(m_Name);
	book.SetAuthor(m_Aut);
	book.SetPress(m_Pre);
	book.SetPublicDate(m_PDate);
	book.SetAbout(m_About);
	int type = m_Combo2.GetCurSel();
	switch (type)
	{
	case 0:
		book.SetType("社会科学");
		break;
	case 1:
		book.SetType("自然科学");
		break;
	case 2:
		book.SetType("艺术类");
		break;
	default:
		book.SetType("综合类");
	}
	book.SQL_Update(book.GetNo());
	m_ado.Refresh();
	RefreshData();
	UpdateData(false);
}

void CAdminBookInfo::OnBtnDelete() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	if (m_Status != "可借")
	{
		MessageBox("不能删除该书,因为该书还没归还!","删除无效",MB_OK);
		return;
	}
	book.SQL_Delete(book.GetNo());
	m_ado.Refresh();
	RefreshData();
	UpdateData(false);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -