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