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

📄 cjiansuo.cpp

📁 “图书馆书籍检索与借阅管理系统”软件旨在为在校学生提供一个功能全面、使用方便的个人数据库系统
💻 CPP
字号:
// CJianSuo.cpp : implementation file
//

#include "stdafx.h"
#include "Work.h"
#include "CJianSuo.h"
#include "CommonData.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCJianSuo dialog


CCJianSuo::CCJianSuo(CWnd* pParent /*=NULL*/)
	: CDialog(CCJianSuo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCJianSuo)
	//}}AFX_DATA_INIT
}


void CCJianSuo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCJianSuo)
	DDX_Control(pDX, IDC_BOOK_LIST, m_Book_List);
	DDX_Control(pDX, IDC_SUOSHU_EDIT, m_SuoShu_Edit);
	DDX_Control(pDX, IDC_PUBLISH_EDIT, m_Publish_Edit);
	DDX_Control(pDX, IDC_BOOKNAME_EDIT, m_BookName_Edit);
	DDX_Control(pDX, IDC_AUTHOR_EDIT, m_Author_Edit);
	DDX_Control(pDX, ID_YUYUE_BTN, m_JieShu_Btn);
	DDX_Control(pDX, IDC_JIANSUO_COMBO, m_PLACE);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCJianSuo, CDialog)
	//{{AFX_MSG_MAP(CCJianSuo)
	ON_BN_CLICKED(ID_JIANSUO_BTN, OnJiansuoBtn)
	ON_BN_CLICKED(ID_YUYUE_BTN, OnYuyueBtn)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCJianSuo message handlers

BOOL CCJianSuo::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_PLACE.AddString("任意");
	m_PLACE.AddString("南区");
	m_PLACE.AddString("新区");
	m_PLACE.SetCurSel(0);

	LV_COLUMN h;
	h.mask=LVCF_FMT|LVCF_TEXT|LVCF_WIDTH;
	h.fmt=LVCFMT_CENTER;
	h.cx=90;

	h.pszText="书目名称";
	m_Book_List.InsertColumn(0,&h);
	h.pszText="索书号";
	m_Book_List.InsertColumn(1,&h);
	h.pszText="条码号";
	m_Book_List.InsertColumn(2,&h);
	h.pszText="作者";
	m_Book_List.InsertColumn(3,&h);
	h.pszText="出版社";
	m_Book_List.InsertColumn(4,&h);
	h.pszText="馆藏地";
	m_Book_List.InsertColumn(5,&h);
	h.pszText="可借时间";
	m_Book_List.InsertColumn(6,&h);

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

void CCJianSuo::OnJiansuoBtn() 
{
	// TODO: Add your control notification handler code here
	m_Book_List.DeleteAllItems();
	UpdateData(FALSE);
	//确定查询内容
	CString Author="",SuoShu="",GuanChang="",BookName="",Publish="",QueryString="";
	m_Author_Edit.GetWindowText(Author);
	Author.TrimLeft();Author.TrimRight();
	if(!Author.IsEmpty())
	{
		if(!QueryString.IsEmpty())
		{
			QueryString+="&";
		}
		QueryString+=("BAuthor LIKE '%"+Author+"%'");
	}
	if(m_PLACE.GetCurSel()==1)
	{
		GuanChang="BPlace='南区'";
	}
	else if(m_PLACE.GetCurSel()==2)
	{
		GuanChang="BPlace='新区'";
	}
	if(!GuanChang.IsEmpty())
	{
		if(!QueryString.IsEmpty())
		{
			QueryString+="&";
		}
		QueryString+=GuanChang;
	}
	m_SuoShu_Edit.GetWindowText(SuoShu);
	SuoShu.TrimLeft();SuoShu.TrimRight();
	if(!SuoShu.IsEmpty())
	{
		if(!QueryString.IsEmpty())
		{
			QueryString+="&";
		}
		QueryString+=("BNSuoShu='"+SuoShu+"'");
	}
	m_BookName_Edit.GetWindowText(BookName);	//可能有多个关键字,此处需做相应修改!
	BookName.TrimLeft();BookName.TrimRight();
	if(!BookName.IsEmpty())
	{
		if(!QueryString.IsEmpty())
		{
			QueryString+="&";
		}
		QueryString+=("BName LIKE '%"+BookName+"%'");
	}
	m_Publish_Edit.GetWindowText(Publish);
	Publish.TrimLeft();Publish.TrimRight();
	if(!Publish.IsEmpty())
	{
		if(!QueryString.IsEmpty())
		{
			QueryString+="&";
		}
		QueryString+=("BNPublish LIKE '%"+Publish+"%'");
	}

	QueryString=("SELECT * FROM Book_Infor WHERE "+QueryString);
	
//	MessageBox(QueryString);
	_RecordsetPtr m_pRecordset;
	m_pRecordset.CreateInstance("ADODB.Recordset");
	m_pRecordset->Open((_bstr_t)QueryString,_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);

	//"书目名称","索书号","条码号","作者","出版社","馆藏地"
	int i=0;
	CString TiaoMa,Place,CanBorrowDate;

	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
		while(!m_pRecordset->adoEOF)
		{
			BookName=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BName"));
			m_Book_List.InsertItem(i,BookName);
			SuoShu=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BNSuoShu"));
			m_Book_List.SetItemText(i,1,SuoShu);
			TiaoMa=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BNTiaoMa"));
			m_Book_List.SetItemText(i,2,TiaoMa);
			Author=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BAuthor"));
			m_Book_List.SetItemText(i,3,Author);
			Publish=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BNPublish"));
			m_Book_List.SetItemText(i,4,Publish);
			Place=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BPlace"));
			m_Book_List.SetItemText(i,5,Place);
			CanBorrowDate=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BCanBorrowDate"));
			if(CanBorrowDate=="2000-1-1")
			{
				CanBorrowDate="当前";
			}
			m_Book_List.SetItemText(i,6,CanBorrowDate);

			m_pRecordset->MoveNext();
			i++;
		}
	}
	else
	{
		MessageBox("抱歉,符合条件的记录为空……");
	}

}

void CCJianSuo::OnYuyueBtn() 
{
	// TODO: Add your control notification handler code here
	if(CCommonData::userNumber.IsEmpty())
	{
		MessageBox("抱歉,您还没登录……");
		return;
	}

	//书是否可借
	CString canBorrowDate;
	canBorrowDate=m_Book_List.GetItemText(m_Book_List.GetSelectionMark(),6);
	if(canBorrowDate!="当前")
	{
		MessageBox("抱歉,此书暂时不可预约……");
		return;
	}

	//该读者是否可以预约:欠款或借书、预约书之和达最大量5
	int number=0;
	CString QueryString="SELECT * FROM Book_Borrow_Infor WHERE BSNumber='"+CCommonData::userNumber+"'";
	CString BPreDate,BIsReturned;
	_RecordsetPtr m_pRecordset;
	m_pRecordset.CreateInstance("ADODB.Recordset");
	m_pRecordset->Open((_bstr_t)QueryString,_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
	
	if(!m_pRecordset->BOF)
	{
		m_pRecordset->MoveFirst();
		while(!m_pRecordset->adoEOF)
		{
			BPreDate=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BPreDate"));
	//		MessageBox((LPCTSTR)(_bstr_t(m_pRecordset->GetCollect("BIsReturned"))+" "+BPreDate));
			BIsReturned=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("BIsReturned"));
			if(BIsReturned=="-1"||BPreDate!="3000-1-1")
			{
				number++;
			}

			m_pRecordset->MoveNext();
		}
	}
/*	//测试个数是否计算正确
	char Num1[2];
	CString Num2;
	_gcvt(number,2,Num1);
	MessageBox(Num1);*/
	if(number>=5)
	{
		MessageBox("抱歉,您所借和所预约的书数量已达最大量……");
		return;
	}

	//在Book_Borrow_Infor插入预约相应数据(新)
	CString BNTiaoMa;
	BNTiaoMa=m_Book_List.GetItemText(m_Book_List.GetSelectionMark(),2);
	try{
		m_pRecordset->AddNew();
		m_pRecordset->PutCollect("BNTiaoMa",(LPCTSTR)BNTiaoMa);
		m_pRecordset->PutCollect("BBorrowDate","2000-1-1");
		m_pRecordset->PutCollect("BIsReturned","0");
		CTime now=CTime::GetCurrentTime();
		int year,month,day;
		year=now.GetYear();
		month=now.GetMonth();
		day=now.GetDay();
		BPreDate.Format("%d-%d-%d",year,month,day);
		//MessageBox((LPCTSTR)BPreDate);
		char x[11];
		memset(x,0,11);
		for(int i=0;i<BPreDate.GetLength();i++)
		{
			x[i]=BPreDate[i];
		}
		m_pRecordset->PutCollect("BPreDate",x);
		m_pRecordset->PutCollect("BSNumber",(LPCTSTR)CCommonData::userNumber);
		m_pRecordset->PutCollect("BReturnDate","3000-1-1");
		m_pRecordset->Update();
	}
	catch(_com_error* e)
	{
		MessageBox(e->ErrorMessage());
	}
	m_pRecordset->Close();

	//修改Book_Infor中BCanBorrowDate的值
	QueryString="SELECT * FROM Book_Infor WHERE BNTiaoMa='"+BNTiaoMa+"'";
	m_pRecordset->Open((_bstr_t)QueryString,_variant_t((IDispatch *)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
	
	try{
		m_pRecordset->MoveFirst();
		CTime now=CTime::GetCurrentTime();
		CTimeSpan t(3,0,0,0);
		now+=t;
		int year,month,day;
		year=now.GetYear();
		month=now.GetMonth();
		day=now.GetDay();
		BPreDate.Format("%d-%d-%d",year,month,day);
		char x[11];
		memset(x,0,11);
		for(int i=0;i<BPreDate.GetLength();i++)
		{
			x[i]=BPreDate[i];
		}
		m_pRecordset->PutCollect("BCanBorrowDate",x);
		m_pRecordset->Update();
		MessageBox("预约成功,请于3日内取书!");
	}
	catch(_com_error* e)
	{
		MessageBox(e->ErrorMessage());
	}

}

⌨️ 快捷键说明

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