📄 searchtitledlg.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 + -