?? checkdvdinfo.cpp
字號:
// CheckDVDInfo.cpp : implementation file
//
#include "stdafx.h"
#include "Rent.h"
#include "CheckDVDInfo.h"
#include "connectionDB.h"
#include "addrentinfo.h"
#include "rentdlg.h"
#include "rewritedlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCheckDVDInfo dialog
CCheckDVDInfo::CCheckDVDInfo(CWnd* pParent /*=NULL*/)
: CDialog(CCheckDVDInfo::IDD, pParent)
{
//{{AFX_DATA_INIT(CCheckDVDInfo)
m_CName = _T("");
//}}AFX_DATA_INIT
}
void CCheckDVDInfo::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCheckDVDInfo)
DDX_Control(pDX, IDC_RENT, m_RentButton);
DDX_Control(pDX, IDC_REWRITE, m_RwButton);
DDX_Control(pDX, IDC_CHECK_NAME, m_EditName);
DDX_Control(pDX, IDC_LIST_CHECK, m_CheckList);
DDX_Text(pDX, IDC_CHECK_NAME, m_CName);
//}}AFX_DATA_MAP
}
BOOL CCheckDVDInfo::OnInitDialog()
{
CDialog::OnInitDialog();
m_CheckList.InsertColumn(0,"ID",LVCFMT_LEFT,50,-1);
m_CheckList.InsertColumn(1,"名稱",LVCFMT_LEFT,120,-1);
m_CheckList.InsertColumn(2,"發行日期",LVCFMT_LEFT,110,-1);
m_CheckList.InsertColumn(3,"所屬地",LVCFMT_LEFT,90,-1);
m_CheckList.InsertColumn(4,"庫存數量",LVCFMT_LEFT,70,-1);
m_CheckList.InsertColumn(5,"備注",LVCFMT_LEFT,350,-1);
m_CheckList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_RwButton.EnableWindow(FALSE);
m_RentButton.EnableWindow(FALSE);
return TRUE;
}
BEGIN_MESSAGE_MAP(CCheckDVDInfo, CDialog)
//{{AFX_MSG_MAP(CCheckDVDInfo)
ON_BN_CLICKED(IDC_CHECK, OnCheck)
ON_BN_CLICKED(IDC_LISTALL, OnListall)
ON_BN_CLICKED(IDC_RENT, OnRent)
ON_BN_CLICKED(IDC_REWRITE, OnRewrite)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCheckDVDInfo message handlers
void CCheckDVDInfo::OnCheck()
{//根據輸入的條件查找DVD信息
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_CName.IsEmpty())
{
MessageBox("請輸入要查找的DVD名稱");
m_EditName.SetFocus();
return;
}
m_CheckList.DeleteAllItems();//刪除列表框中所有內容
UpdateData(FALSE);
_RecordsetPtr pRecordset;
CConnectionDB *connectionDB=new CConnectionDB();
m_pConnection=connectionDB->GetConnectionPtr();//獲取連接指針
pRecordset.CreateInstance(__uuidof(Recordset));
CString strSQL;
strSQL.Format("select * from DVDInfo where DVDName='%s'",m_CName);
_variant_t var;
CString strValue;
int ItemNum=0;
try
{
pRecordset->Open(_variant_t(strSQL),m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error *e)
{
MessageBox(e->ErrorMessage());
return;
}
if((pRecordset->adoEOF)&&(pRecordset->BOF))
{
MessageBox("沒有記錄!");
m_RwButton.EnableWindow(FALSE);
m_RentButton.EnableWindow(FALSE);
return;
}
try
{
while(!pRecordset->adoEOF)
{
var=pRecordset->GetCollect("DVDID");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
m_CheckList.InsertItem(ItemNum,strValue);
var=pRecordset->GetCollect("DVDName");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
m_CheckList.SetItemText(ItemNum,1,strValue);
var=pRecordset->GetCollect("OutDate");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
m_CheckList.SetItemText(ItemNum,2,strValue);
var=pRecordset->GetCollect("Place");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
m_CheckList.SetItemText(ItemNum,3,strValue);
var=pRecordset->GetCollect("DVDNum");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
m_CheckList.SetItemText(ItemNum,4,strValue);
var=pRecordset->GetCollect("Note");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
else
strValue=_T("");
m_CheckList.SetItemText(ItemNum,5,strValue);
pRecordset->MoveNext();
ItemNum++;
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
return;
}
m_RwButton.EnableWindow(TRUE);
m_RentButton.EnableWindow(TRUE);
pRecordset->Close();
pRecordset=NULL;
delete connectionDB;
}
void CCheckDVDInfo::OnListall()
{//顯示所有DVD的信息
// TODO: Add your control notification handler code here
if(m_CheckList.GetItemCount()>0)
{
m_CheckList.DeleteAllItems();
UpdateData(FALSE);
}
if(m_CName!=_T(""))
{
m_CName=_T("");
UpdateData(FALSE);
}
CConnectionDB connection;
if(m_pConnection==NULL)
m_pConnection=connection.GetConnectionPtr();
_RecordsetPtr pRecordset;
pRecordset.CreateInstance(__uuidof(Recordset));
CString strSQL;
strSQL="select * from DVDInfo";
_variant_t var;
CString strValue;
int ItemNum=0;
HRESULT hr;
try
{
hr=pRecordset->Open(_variant_t(strSQL),m_pConnection.GetInterfacePtr(),
adOpenDynamic,adLockOptimistic,adCmdText);
if(SUCCEEDED(hr))
{
while(!pRecordset->adoEOF)
{
//取各個字段的值,并在列表中顯示出來
var=pRecordset->GetCollect("DVDID");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
m_CheckList.InsertItem(ItemNum,strValue);
var=pRecordset->GetCollect("DVDName");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
m_CheckList.SetItemText(ItemNum,1,strValue);
var=pRecordset->GetCollect("OutDate");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
m_CheckList.SetItemText(ItemNum,2,strValue);
var=pRecordset->GetCollect("Place");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
m_CheckList.SetItemText(ItemNum,3,strValue);
var=pRecordset->GetCollect("DVDNum");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
m_CheckList.SetItemText(ItemNum,4,strValue);
var=pRecordset->GetCollect("Note");
if(var.vt!=VT_NULL)
strValue=(LPCSTR)_bstr_t(var);
else
strValue=_T("");
m_CheckList.SetItemText(ItemNum,5,strValue);
pRecordset->MoveNext();
ItemNum++;
}
}
else
{
MessageBox("error");
return;
}
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
return;
}
m_RwButton.EnableWindow(TRUE);
m_RentButton.EnableWindow(TRUE);
pRecordset->Close();
pRecordset=NULL;
}
void CCheckDVDInfo::OnRent()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CAddRentInfo ARentDlg;
int sel;
CString strName;
if(!m_CName.IsEmpty())
{
ARentDlg.m_DVDName=m_CName;
UpdateData(FALSE);
}
else if((sel=m_CheckList.GetSelectionMark())>=0)
{
strName=m_CheckList.GetItemText(sel,1);
ARentDlg.m_DVDName=strName;
UpdateData(FALSE);
}
else
{
MessageBox("請選擇要出租的DVD","提示",MB_OK);
return;
}
ARentDlg.DoModal();
}
void CCheckDVDInfo::OnRewrite()
{
// TODO: Add your control notification handler code here
CRewriteDlg RewriteDlg;
int sel=0;
int flag=m_CheckList.GetItemCount();
CString strValue;
if(flag>1)
{
sel=m_CheckList.GetSelectionMark();
if(sel>=0)
{
strValue=m_CheckList.GetItemText(sel,0);
}
else
{
MessageBox("請選擇要修改的DVD!","提示",MB_OK);
return;
}
}
else
{
strValue=m_CheckList.GetItemText(0,0);
}
RewriteDlg.dvdId=atoi(strValue);
RewriteDlg.m_VName=m_CheckList.GetItemText(sel,1);
RewriteDlg.m_VDate=m_CheckList.GetItemText(sel,2);
RewriteDlg.m_VPlace=m_CheckList.GetItemText(sel,3);
RewriteDlg.m_VNum=m_CheckList.GetItemText(sel,4);
RewriteDlg.m_VNote=m_CheckList.GetItemText(sel,5);
if(RewriteDlg.DoModal()==IDOK)
{
if(flag>1)
this->OnListall();
else
this->OnCheck();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -