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

📄 itemdlg.cpp

📁 管理员登录功能;读者借阅模块;读者归还模块;书籍信息模块
💻 CPP
字号:
// ItemDlg.cpp : implementation file
//

#include "stdafx.h"
#include "db.h"
#include "ItemDlg.h"
#include "AddItemDlg.h"

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


#define VIEW_COLCOUNT 4
static char s_view_colname[VIEW_COLCOUNT][10] = {"条目号", "图书ISBN","状态","应还时间"};//,"应还时间"
static int s_view_colwidth[VIEW_COLCOUNT] = {100,120,200,100};


/////////////////////////////////////////////////////////////////////////////
// CItemDlg dialog


CItemDlg::CItemDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CItemDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CItemDlg)
	m_sItemIsbn = _T("");
	//}}AFX_DATA_INIT
}


void CItemDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CItemDlg)
	DDX_Control(pDX, IDC_LIST, m_list);
	DDX_Text(pDX, IDC_ITEMISBN, m_sItemIsbn);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CItemDlg, CDialog)
	//{{AFX_MSG_MAP(CItemDlg)
	ON_BN_CLICKED(IDC_SEARCHBTN, OnSearchbtn)
	ON_BN_CLICKED(IDC_ADDITEM, OnAdditem)
	ON_BN_CLICKED(IDC_DELETEITEM, OnDeleteitem)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CItemDlg message handlers

void CItemDlg::InitList()
{
	LV_COLUMN lvC;
	int i;
	
	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);
}

void CItemDlg::ShowList()
{
	_variant_t var;
	CString strCount("");
	
	
	//设置SELECT语句
	CString strSQL;
	strSQL.Format("SELECT * FROM ItemInfo");

 	_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("ItemId");
		if(var.vt != VT_NULL)
			m_list.SetItemText(n,0,(LPCSTR)_bstr_t(var));

		var = m_pRecordset->GetCollect("ItemISBN");
		if(var.vt != VT_NULL)
		{
			m_list.SetItemText(n,1,(LPCSTR)_bstr_t(var));
		}

		var = m_pRecordset->GetCollect("ItemLoanType");
		if(var.vt != VT_NULL)
			m_list.SetItemText(n,2,(LPCSTR)_bstr_t(var));

		var = m_pRecordset->GetCollect("ItemReturnTime");
		if(var.vt != VT_NULL)
			m_list.SetItemText(n,3,(LPCSTR)_bstr_t(var));
		n++;
		m_pRecordset->MoveNext();
	}
	//m_AdoConn.ExitConnect();
}

void CItemDlg::ShowList(CString strItemIsbn)
{
	_variant_t var;
	CString strCount("");
	
	
	//设置SELECT语句
	CString strSQL;
	strSQL.Format("SELECT * FROM ItemInfo where ItemIsbn= '%s' ",strItemIsbn);

 	_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("ItemId");
		if(var.vt != VT_NULL)
			m_list.SetItemText(n,0,(LPCSTR)_bstr_t(var));

		var = m_pRecordset->GetCollect("ItemISBN");
		if(var.vt != VT_NULL)
		{
			m_list.SetItemText(n,1,(LPCSTR)_bstr_t(var));
		}

		var = m_pRecordset->GetCollect("ItemLoanType");
		if(var.vt != VT_NULL)
			m_list.SetItemText(n,2,(LPCSTR)_bstr_t(var));

		var = m_pRecordset->GetCollect("ItemReturnTime");
		if(var.vt != VT_NULL)
			m_list.SetItemText(n,3,(LPCSTR)_bstr_t(var));
		n++;
		m_pRecordset->MoveNext();
	}
	//m_AdoConn.ExitConnect();
}



BOOL CItemDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	InitList();
	if(m_sItemIsbn.GetLength() == 0)
		ShowList();
	else
		ShowList(m_sItemIsbn);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CItemDlg::SetItemIsbn(CString strItemIsbn)
{
	m_sItemIsbn =strItemIsbn;
}


void CItemDlg::OnSearchbtn() 
{
	UpdateData();
	if(m_sItemIsbn.GetLength()  == 0)
	{
		MessageBox("ItemIsbn为空!");
		return;
	}
	if(JudgeIsbn(m_sItemIsbn))
	{
		MessageBox("Isbn不存在!");
		return;
	}
	ShowList(m_sItemIsbn);
	
}

BOOL CItemDlg::JudgeIsbn(CString strIsbn)
{
	
	_variant_t var;
	
	//设置SELECT语句
	CString strSQL;
	strSQL.Format( "SELECT * FROM TitleInfo WHERE TitleIsbn = '%s'",strIsbn);
	_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 CItemDlg::OnAdditem() 
{
	CAddItemDlg dlg;
	
	int n=m_list.GetSelectionMark();
	if(n!=-1)
		dlg.SetItemIsbn(m_list.GetItemText(n,1));

	dlg.DoModal();
}

void CItemDlg::OnDeleteitem() 
{
	int n=m_list.GetSelectionMark();
	if(n == -1)
	{
		MessageBox("请选择一条记录!");
		return ;
	}
	DeleteData(m_list.GetItemText(n,0));
	m_list.DeleteItem(n);
	
}

void CItemDlg::DeleteData(CString strItemID)
{
	CString strSQL("");

	try
	{
		strSQL.Format("Delete from ItemInfo where ItemID = '%s'",strItemID);
	
		_bstr_t vSQL =strSQL;
		m_AdoConn.ExecuteSQL(vSQL);
	}
	catch (_com_error e) 
	{
		CString errormessage;		
		errormessage.Format("自定义错误信息2:%s",e.ErrorMessage());		
		AfxMessageBox(errormessage);///显示错误信息
	}

}

⌨️ 快捷键说明

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