loandlg.cpp
来自「管理员登录功能;读者借阅模块;读者归还模块;书籍信息模块」· C++ 代码 · 共 299 行
CPP
299 行
// LoanDlg.cpp : implementation file
//
#include "stdafx.h"
#include "db.h"
#include "LoanDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define VIEW_COLCOUNT 5
static char s_view_colname[VIEW_COLCOUNT][10] = {"读者号", "读者姓名","书名","借阅时间","归还时间"};//,"应还时间"
static int s_view_colwidth[VIEW_COLCOUNT] = {100,120,200,100,100};
/////////////////////////////////////////////////////////////////////////////
// CLoanDlg dialog
CLoanDlg::CLoanDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLoanDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLoanDlg)
m_sBorrowerID = _T("S030501813");
m_StartDate = 0;
m_EndDate = 0;
//}}AFX_DATA_INIT
}
void CLoanDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLoanDlg)
DDX_Control(pDX, IDC_LIST, m_list);
DDX_Text(pDX, IDC_BOROWERID, m_sBorrowerID);
DDX_DateTimeCtrl(pDX, IDC_LOANENDDATEPICKER, m_StartDate);
DDX_DateTimeCtrl(pDX, IDC_LOANSTARTDATEPICKER, m_EndDate);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLoanDlg, CDialog)
//{{AFX_MSG_MAP(CLoanDlg)
ON_BN_CLICKED(IDC_BORROWBORROWERLOANINFO, OnBorrowborrowerloaninfo)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLoanDlg message handlers
BOOL CLoanDlg::JudgeBorrowerID(CString strBorrowerID)
{
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;
}
BOOL CLoanDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
InitList();
m_AdoConn.OnInitADOConn(".");
ShowList();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CLoanDlg::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);
//m_list.SetSelectionMark(1);
}
/***********************************************
* 函数名: CPhoneDlg::ShowList
*
* 功 能: 显示
*
* 返回值: void
***********************************************/
void CLoanDlg::ShowList()
{
_variant_t var;
CString strCount("");
//ADOConn m_AdoConn;
//m_AdoConn.OnInitADOConn(m_strDataBase);
//设置SELECT语句
CString strSQL;
strSQL.Format("select * from LoanInfo,BorrowerInfo,TitleInfo,ItemInfo where \
LoanInfo.BorrowerID=BorrowerInfo.BorrowerID AND\
LoanInfo.ItemID=ItemInfo.ItemID AND\
ItemInfo.ItemIsbn=TitleInfo.TitleIsbn");
_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("BorrowerName");
if(var.vt != VT_NULL)
{
m_list.SetItemText(n,1,(LPCSTR)_bstr_t(var));
}
var = m_pRecordset->GetCollect("TitleName");
if(var.vt != VT_NULL)
m_list.SetItemText(n,2,(LPCSTR)_bstr_t(var));
var = m_pRecordset->GetCollect("LoanStartTime");
if(var.vt != VT_NULL)
m_list.SetItemText(n,3,(LPCSTR)_bstr_t(var));
var = m_pRecordset->GetCollect("LoanEndTime");
if(var.vt != VT_NULL)
m_list.SetItemText(n,4,(LPCSTR)_bstr_t(var));
/* var = m_pRecordset->GetCollect("LoanEndTime");
if(var.vt != VT_NULL)
m_list.SetItemText(n,4,(LPCSTR)_bstr_t(var));
*/
n++;
m_pRecordset->MoveNext();
}
//m_AdoConn.ExitConnect();
}
/*
*/
void CLoanDlg::AddList(CString strBorrowerID,CString strBorrowerName)
{
int Count = m_list.GetItemCount();
m_list.InsertItem(Count,"");
m_list.SetItemText(Count,0,strBorrowerID);
m_list.SetItemText(Count,1,strBorrowerName);
}
void CLoanDlg::ModifyList(CString strBorrowerID,CString strBorrowerName)
{
int n = m_list.GetSelectionMark();
m_list.SetItemText(n,0,strBorrowerID);
m_list.SetItemText(n,1,strBorrowerName);
}
void CLoanDlg::OnBorrowborrowerloaninfo()
{
UpdateData();
CString strBorrowerID=m_sBorrowerID;
if(strBorrowerID.GetLength()== 0)
{
AfxMessageBox("读者号不能为空!");
return ;
}
if(JudgeBorrowerID(strBorrowerID))
{
AfxMessageBox("该读者不存在!");
return ;
}
CString strStartDate="",strEndDate="";
// strStartDate.Format("%d-%d-%d",m_StartDate.GetYear(),m_StartDate.GetMonth(),m_StartDate.GetDay());
// strEndDate.Format("%d-%d-%d",m_EndDate.GetYear(),m_EndDate.GetMonth(),m_EndDate.GetDay());
ShowList1(strBorrowerID,strStartDate,strEndDate);
}
void CLoanDlg::ShowList1(CString strBorrowerID,CString strStartDate,CString strEndDate)
{
_variant_t var;
CString strCount("");
//ADOConn m_AdoConn;
//m_AdoConn.OnInitADOConn(m_strDataBase);
//设置SELECT语句
CString strSQL;
strSQL.Format("select * from LoanInfo,BorrowerInfo,TitleInfo,ItemInfo where \
LoanInfo.BorrowerID=BorrowerInfo.BorrowerID AND\
LoanInfo.BorrowerID='%s' AND \
LoanInfo.ItemID=ItemInfo.ItemID AND\
ItemInfo.ItemIsbn=TitleInfo.TitleIsbn",strBorrowerID);
/*
strSQL.Format("select * from LoanInfo,BorrowerInfo,TitleInfo,ItemInfo where \
LoanInfo.BorrowerID=BorrowerInfo.BorrowerID AND\
LoanInfo.BorrowerID='%s' AND \
LoanInfo.ItemID=ItemInfo.ItemID AND\
ItemInfo.ItemIsbn=TitleInfo.TitleIsbn AND \
'(' LoanInfo.LoanStartTime BETWEEN '%s' AND '%s' ')'",strBorrowerID,strStartDate,strEndDate);
*/
_bstr_t vSQL =strSQL ;
/* vSQL = "select * from LoanInfo,BorrowerInfo,TitleInfo,ItemInfo where \
LoanInfo.BorrowerID=BorrowerInfo.BorrowerID AND\
LoanInfo.BorrowerID='" +strBorrowerID+"'" + "AND \
LoanInfo.ItemID=ItemInfo.ItemID AND\
ItemInfo.ItemIsbn=TitleInfo.TitleIsbn AND \
LoanInfo.LoanStartTime BETWEEN '" + strStartDate + "'" + "AND '" +strEndDate + "'";
*/
_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("BorrowerName");
if(var.vt != VT_NULL)
{
m_list.SetItemText(n,1,(LPCSTR)_bstr_t(var));
}
var = m_pRecordset->GetCollect("TitleName");
if(var.vt != VT_NULL)
m_list.SetItemText(n,2,(LPCSTR)_bstr_t(var));
var = m_pRecordset->GetCollect("LoanStartTime");
if(var.vt != VT_NULL)
m_list.SetItemText(n,3,(LPCSTR)_bstr_t(var));
var = m_pRecordset->GetCollect("LoanEndTime");
if(var.vt != VT_NULL)
m_list.SetItemText(n,4,(LPCSTR)_bstr_t(var));
n++;
m_pRecordset->MoveNext();
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?