📄 boanreturndlg.cpp
字号:
// BoanReturnDlg.cpp : implementation file
//
#include "stdafx.h"
#include "db.h"
#include "BoanReturnDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLoanReturnDlg dialog
#define VIEW_COLCOUNT 3
static char s_view_colname[VIEW_COLCOUNT][10] = {"读者号", "ItemID","应还时间"};
static int s_view_colwidth[VIEW_COLCOUNT] = {120,120,120};
CLoanReturnDlg::CLoanReturnDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLoanReturnDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLoanReturnDlg)
m_sBorrowerId = _T("S030501813");
//}}AFX_DATA_INIT
}
void CLoanReturnDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLoanReturnDlg)
DDX_Control(pDX, IDC_LIST, m_list);
DDX_Text(pDX, IDC_BORROWERID, m_sBorrowerId);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLoanReturnDlg, CDialog)
//{{AFX_MSG_MAP(CLoanReturnDlg)
ON_BN_CLICKED(IDC_LOAN, OnLoan)
ON_BN_CLICKED(IDC_RETURN, OnReturn)
ON_BN_CLICKED(IDC_SEARCH, OnSearch)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLoanReturnDlg message handlers
void CLoanReturnDlg::OnLoan()
{
CLoanBookDlg dlg(m_sBorrowerId);
dlg.DoModal();
ShowList();
}
void CLoanReturnDlg::OnReturn()
{
int n= m_list.GetSelectionMark();
if(n == -1)
{
AfxMessageBox("请选择您要修改的信息!");
return ;
}
ModifyData(m_list.GetItemText(n,0) ,m_list.GetItemText(n,1));
m_list.DeleteItem(n);
// UpdateDataItem(m_list.GetItemText(n,1));
}
void CLoanReturnDlg::OnSearch()
{
UpdateData();
if(m_sBorrowerId.GetLength()==0)
{
MessageBox("读者号为空!");
GetDlgItem(IDC_LOAN)->EnableWindow(false);
GetDlgItem(IDC_RETURN)->EnableWindow(false);
return;
}
if(JudgeBorrowerID())
{
MessageBox("读者不存在!");
GetDlgItem(IDC_LOAN)->EnableWindow(false);
GetDlgItem(IDC_RETURN)->EnableWindow(false);
return ;
}
ShowList();
GetDlgItem(IDC_LOAN)->EnableWindow(true);
GetDlgItem(IDC_RETURN)->EnableWindow(true);
}
BOOL CLoanReturnDlg::JudgeBorrowerID()
{
CString strBorrowerID=m_sBorrowerId;
if(strBorrowerID.GetLength()==0)
return false;
_variant_t var;
//设置SELECT语句
CString strSQL;
strSQL.Format( "SELECT * FROM BorrowerInfo WHERE BorrowerID = '%s'",strBorrowerID);
_bstr_t vSQL =strSQL;
_RecordsetPtr pRecordset;
pRecordset = m_AdoConn.GetRecordSet(vSQL);
BOOL bRet;
if (pRecordset->adoEOF != VARIANT_TRUE)
{
bRet = false;
}
else
{
bRet = true;
}
return bRet;
}
void CLoanReturnDlg::InitList()
{
LV_COLUMN lvC;
int i;
//ListView_SetImageList(m_list.m_hWnd, ImageList_Create(1, 16, ILC_COLOR, 1, 1), LVSIL_SMALL);
ListView_SetExtendedListViewStyle(m_list.m_hWnd, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
lvC.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvC.fmt = LVCFMT_LEFT;
for (i = 0; i < VIEW_COLCOUNT; i++)
{
lvC.pszText = s_view_colname[i];
lvC.cx = s_view_colwidth[i];
lvC.iSubItem = i;
if (ListView_InsertColumn(m_list.m_hWnd, i, &lvC) == -1) return;
}
ListView_SetItemCount(m_list.m_hWnd, VIEW_COLCOUNT);
}
BOOL CLoanReturnDlg::OnInitDialog()
{
CDialog::OnInitDialog();
GetDlgItem(IDC_LOAN)->EnableWindow(false);
GetDlgItem(IDC_RETURN)->EnableWindow(false);
InitList();
// TODO: Add extra initialization here
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CLoanReturnDlg::ShowList()
{
_variant_t var;
CString strCount("");
//ADOConn m_AdoConn;
//m_AdoConn.OnInitADOConn(m_strDataBase);
//设置SELECT语句
CString strSQL;
strSQL.Format("select * from LoanInfo where BorrowerID='%s' AND Returned =0",m_sBorrowerId);
_bstr_t vSQL =strSQL;
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
int n = 0;
m_list.DeleteAllItems();
m_list.Invalidate(TRUE);
while(!m_pRecordset->adoEOF)
{
m_list.InsertItem(n,"");
var = m_pRecordset->GetCollect("BorrowerID");
if(var.vt != VT_NULL)
m_list.SetItemText(n,0,(LPCSTR)_bstr_t(var));
var = m_pRecordset->GetCollect("ItemID");
if(var.vt != VT_NULL)
m_list.SetItemText(n,1,(LPCSTR)_bstr_t(var));
var = m_pRecordset->GetCollect("LoanEndTime");
if(var.vt != VT_NULL)
m_list.SetItemText(n,2,(LPCSTR)_bstr_t(var));
n++;
m_pRecordset->MoveNext();
}
//m_AdoConn.ExitConnect();
}
void CLoanReturnDlg::ModifyData(CString strBorrowerID ,CString strTitleID)
{
CString strSQL("");
CTime tm = CTime::GetCurrentTime();
CString strLoanEndDate;
strLoanEndDate.Format ("%d-%d-%d",tm.GetYear(),tm.GetMonth(),tm.GetDay());
try
{
strSQL.Format("update LoanInfo SET Returned ='%d', LoanEndTime='%s' WHERE Returned=0 AND BorrowerID='%s' AND ItemID='%s'",\
1,strLoanEndDate,strBorrowerID,strTitleID);
_bstr_t vSQL =strSQL;
m_AdoConn.ExecuteSQL(vSQL);
}
catch (_com_error e)
{
CString errormessage;
errormessage.Format("自定义错误信息3:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
try
{
strSQL.Format("update ItemInfo SET ItemLoanType ='%d' ,ItemReturnTime='%s' WHERE ItemID ='%s'",\
0,"",strTitleID);
_bstr_t vSQL =strSQL;
m_AdoConn.ExecuteSQL(vSQL);
}
catch (_com_error e)
{
CString errormessage;
errormessage.Format("自定义错误信息3:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
void CLoanReturnDlg::UpdateDataItem(CString strItemID)
{
CString strSQL("");
try
{
strSQL.Format("update ItemInfo SET ItemLoanType= '%d',ItemReturnTime= '%s' WHERE ItemID ='%s'",\
0,NULL,strItemID);
_bstr_t vSQL =strSQL;
m_AdoConn.ExecuteSQL(vSQL);
}
catch (_com_error e)
{
CString errormessage;
errormessage.Format("自定义错误信息3:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -