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

📄 searchtitledlg.cpp

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

#include "stdafx.h"
#include "db.h"
#include "SearchTitleDlg.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] = {"ISBN", "书名","出版社","作者","分类号"};
static int s_view_colwidth[VIEW_COLCOUNT] = {150,150,150,150,120};

/////////////////////////////////////////////////////////////////////////////
// CSearchTitleDlg dialog


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


void CSearchTitleDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CSearchTitleDlg)
	DDX_Control(pDX, IDC_LIST, m_list);
	DDX_Text(pDX, IDC_KEYWORD, m_sKeyword);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CSearchTitleDlg, CDialog)
	//{{AFX_MSG_MAP(CSearchTitleDlg)
	ON_BN_CLICKED(IDC_ADDTITLE, OnAddtitle)
	ON_BN_CLICKED(IDC_DELETETITLE, OnDeletetitle)
	ON_BN_CLICKED(IDC_ITEMMANEGE, OnItemmanege)
	ON_BN_CLICKED(IDC_SEARCH, OnSearch)
	ON_BN_CLICKED(IDC_ADDITEM, OnAdditem)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSearchTitleDlg message handlers

BOOL CSearchTitleDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	InitList();
//	ShowList();
	
	CComboBox* p=(CComboBox*)GetDlgItem(IDC_SEARCHTYPE);
	p->AddString("ISBN");
	p->AddString("书名");
	p->AddString("出版社");
	p->AddString("作者");
	p->AddString("分类号");
	p->SetCurSel(1);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CSearchTitleDlg::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);

}


void CSearchTitleDlg::ShowList()
{
	_variant_t var;
	CString strCount("");
	
	//ADOConn m_AdoConn;
	//m_AdoConn.OnInitADOConn(m_strDataBase);	
	
	//设置SELECT语句
	CString strSQL;
	
	strSQL.Format("select * from TitleInfo ASEC");
	_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("TitleISBN");
		if(var.vt != VT_NULL)
			m_list.SetItemText(n,0,(LPCSTR)_bstr_t(var));

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

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

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

}

void CSearchTitleDlg::OnAddtitle() 
{
	CAddTitleDlg dlg;
	dlg.DoModal();
	ShowList();
}

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



void CSearchTitleDlg::OnItemmanege() 
{
	int n = m_list.GetSelectionMark();
	if(n == -1)
	{
		MessageBox("请选择一条记录!");
		return;
	}
	CItemDlg dlg;
	dlg.SetItemIsbn(m_list.GetItemText(n,0));
	dlg.DoModal();
}

void CSearchTitleDlg::OnSearch() 
{
	UpdateData();
	if(m_sKeyword.GetLength() ==0)
	{
		MessageBox("检索词不能为空!");
		return;
	}
	_bstr_t vSQL;
	CComboBox* p=(CComboBox*)GetDlgItem(IDC_SEARCHTYPE);
	int index=p->GetCurSel();
	switch(index)
	{
	case 0:
		vSQL="select * from TitleInfo where TitleISBN ='"+m_sKeyword+"'";
		break;
	case 1:

		vSQL="select * from TitleInfo where TitleName LIKE '%"+m_sKeyword+"%'";
		break;
	case 2:

		vSQL="select * from TitleInfo where TitlePub ='"+m_sKeyword+"'";
		break;
	case 3:
		vSQL="select * from TitleInfo where TitleClass LIKE '%"+m_sKeyword+"%'";
		break;
	default:
		return;
	}
		
	ShowList(vSQL);

}

void CSearchTitleDlg::ShowList(_bstr_t vSQL)
{
	variant_t var;
	CString strCount("");
	
	//ADOConn m_AdoConn;
	//m_AdoConn.OnInitADOConn(m_strDataBase);	

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

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

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

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


}


void CSearchTitleDlg::DeleteData(CString strTitleISBN)
{
	CString strSQL("");
	//删除item

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

	//删除title

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

}

void CSearchTitleDlg::OnAdditem() 
{
	int n = m_list.GetSelectionMark();
	if(n == -1)
	{
		MessageBox("请选择一条记录!");
		return;
	}
	CAddItemDlg dlg;
	dlg.SetItemIsbn(m_list.GetItemText(n,0));
	dlg.DoModal();
}

⌨️ 快捷键说明

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