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 + -
显示快捷键?