📄 cjiansuo.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 + -