📄 readerlist.cpp
字号:
// ReaderList.cpp : implementation file
//
#include "stdafx.h"
#include "LibraryM.h"
#include "ReaderList.h"
#include "InsertReader.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CReaderList dialog
CReaderList::CReaderList(CWnd* pParent /*=NULL*/)
: CDialog(CReaderList::IDD, pParent)
{
//{{AFX_DATA_INIT(CReaderList)
m_ReaderID = _T("");
m_ReaderName = _T("");
//}}AFX_DATA_INIT
}
void CReaderList::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CReaderList)
DDX_Control(pDX, IDC_LIST_READER, m_ReaderList);
DDX_Text(pDX, IDC_EDIT_READERID, m_ReaderID);
DDX_Text(pDX, IDC_EDIT_READERNAME, m_ReaderName);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CReaderList, CDialog)
//{{AFX_MSG_MAP(CReaderList)
ON_BN_CLICKED(IDC_BUTTON_INSERT_READER, OnButtonInsertReader)
ON_BN_CLICKED(IDC_BUTTON_SEARCH_READER, OnButtonSearchReader)
ON_BN_CLICKED(IDC_BUTTON_CANCEL_READER2, OnButtonCancelReader2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CReaderList message handlers
BOOL CReaderList::OnInitDialog()
{
CDialog::OnInitDialog();
//初始化数据库连接
HRESULT result;
try
{
//实例化连接对象
result=m_pConnection.CreateInstance(_uuidof(Connection));
if(SUCCEEDED(result))
{
//设置连接属性为UDL文件
m_pConnection->ConnectionString="File Name=LIBRARYM.udl";
//设置等待连接打开的时间为20s
m_pConnection->ConnectionTimeout=20;
result=m_pConnection->Open("","","",adConnectUnspecified);
if(FAILED(result))
{
AfxMessageBox("open failed");
return TRUE;
}
}
else
{
AfxMessageBox("createinstance of connection failed!");
return TRUE;
}
}
catch(_com_error e)
{
//输出异常信息
_bstr_t bstrSource(e.Source());
_bstr_t bstrDescription(e.Description());
AfxMessageBox(bstrSource+bstrDescription);
return TRUE;
}
//初始化列表
m_ReaderList.InsertColumn(0,"ID",LVCFMT_LEFT,100);
m_ReaderList.InsertColumn(1,"Name",LVCFMT_CENTER,70);
m_ReaderList.InsertColumn(2,"TypeID",LVCFMT_CENTER,100);
m_ReaderList.InsertColumn(3,"Gender",LVCFMT_CENTER,80);
m_ReaderList.InsertColumn(4,"WorkUnit",LVCFMT_CENTER,100);
m_ReaderList.InsertColumn(5,"Address",LVCFMT_CENTER,100);
m_ReaderList.InsertColumn(6,"Phone",LVCFMT_CENTER,100);
m_ReaderList.InsertColumn(7,"Email",LVCFMT_CENTER,100);
m_ReaderList.InsertColumn(8,"PS",LVCFMT_CENTER,100);
m_ReaderList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
InitListCtrl();
return TRUE;
}
void CReaderList::OnButtonInsertReader()
{
CInsertReader dlg;
if(dlg.DoModal()==IDOK)
{
m_ReaderList.DeleteAllItems();
InitListCtrl();
}
return;
}
void CReaderList::InitListCtrl()
{
HRESULT hr;
_RecordsetPtr pReaderList;
hr=pReaderList.CreateInstance(_uuidof(Recordset));
if(FAILED(hr))
{
AfxMessageBox("createinstance of recordset failed!\ncan't initiate borrowlist control");
return;
}
CString strSql;
_variant_t getvar;
CString strValue;
int curItem=0;
strSql="select * from ReaderInfo";
try
{
hr=pReaderList->Open(_variant_t(strSql),m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
if(SUCCEEDED(hr))
{
while(!pReaderList->adoEOF)
{
getvar=pReaderList->GetCollect("ReaderID");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.InsertItem(curItem,strValue);
getvar=pReaderList->GetCollect("ReaderName");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,1,strValue);
getvar=pReaderList->GetCollect("ReaderTypeID");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,2,strValue);
getvar=pReaderList->GetCollect("Gender");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,3,strValue);
getvar=pReaderList->GetCollect("WorkUnit");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,4,strValue);
getvar=pReaderList->GetCollect("Address");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,5,strValue);
getvar=pReaderList->GetCollect("Phone");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,6,strValue);
getvar=pReaderList->GetCollect("Email");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,7,strValue);
getvar=pReaderList->GetCollect("PS");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,8,strValue);
pReaderList->MoveNext();
curItem++;
}
}
else
{
AfxMessageBox("open recordset failed!");
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
return;
}
pReaderList->Close();
pReaderList=NULL;
}
void CReaderList::InitList()
{
InitListCtrl();
}
void CReaderList::OnButtonSearchReader()
{
UpdateData(TRUE);
CString temp;
bool bset=false;
CString strSql="select * from ReaderInfo where ";
if(!m_ReaderName.IsEmpty())
{
temp.Format("ReaderName='%s'",m_ReaderName);
bset=true;
}
if(!temp.IsEmpty())
strSql+=temp;
temp="";
if(!m_ReaderID.IsEmpty() )
{
if(bset)
{
temp.Format("and ReaderID='%s'",m_ReaderID);
}
else
{
temp.Format("ReaderID='%s'",m_ReaderID);
bset=true;
}
}
if(!temp.IsEmpty())
strSql+=temp;
if(!bset)
{
AfxMessageBox("empty input!");
return;
}
_RecordsetPtr pReaderList;
pReaderList.CreateInstance(_uuidof(Recordset));
_variant_t getvar;
CString strValue;
int curItem=0;
try
{
HRESULT hr;
hr=pReaderList->Open(_variant_t(strSql),m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
if(SUCCEEDED(hr))
{
m_ReaderList.DeleteAllItems();
while(!pReaderList->adoEOF)
{
getvar=pReaderList->GetCollect("ReaderID");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.InsertItem(curItem,strValue);
getvar=pReaderList->GetCollect("ReaderName");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,1,strValue);
getvar=pReaderList->GetCollect("ReaderTypeID");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,2,strValue);
getvar=pReaderList->GetCollect("Gender");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,3,strValue);
getvar=pReaderList->GetCollect("WorkUnit");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,4,strValue);
getvar=pReaderList->GetCollect("Address");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,5,strValue);
getvar=pReaderList->GetCollect("Phone");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,6,strValue);
getvar=pReaderList->GetCollect("Email");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,7,strValue);
getvar=pReaderList->GetCollect("PS");
if(getvar.vt!=VT_NULL)
{
strValue=(LPCSTR)_bstr_t(getvar);
}
else
strValue=" ";
m_ReaderList.SetItemText(curItem,8,strValue);
pReaderList->MoveNext();
curItem++;
}
}
else
{
AfxMessageBox("open recordset failed!");
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
return;
}
pReaderList->Close();
pReaderList=NULL;
}
void CReaderList::OnButtonCancelReader2()
{
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -