?? findprebookroomdlg.cpp
字號:
// Findprebookroomdlg.cpp : implementation file
//
#include "stdafx.h"
#include "Myhotel.h"
#include "Findprebookroomdlg.h"
#include <stdlib.h>
#include <stdio.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CMyhotelApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CFindprebookroomdlg dialog
CFindprebookroomdlg::CFindprebookroomdlg(CWnd* pParent /*=NULL*/)
: CDialog(CFindprebookroomdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFindprebookroomdlg)
m_findprebookroom_name = _T("");
//}}AFX_DATA_INIT
}
void CFindprebookroomdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFindprebookroomdlg)
DDX_Control(pDX, IDC_LIST_findprebookroom, m_findprebookroom_list);
DDX_Text(pDX, IDC_prebook_findname, m_findprebookroom_name);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFindprebookroomdlg, CDialog)
//{{AFX_MSG_MAP(CFindprebookroomdlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFindprebookroomdlg message handlers
BOOL CFindprebookroomdlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//設(shè)置列表框顏色
m_findprebookroom_list.SetTextColor(RGB (0, 0, 0));
m_findprebookroom_list.SetTextBkColor(RGB (140, 180, 20));
//列表框初始化
m_findprebookroom_list.InsertColumn(0,"姓名");
m_findprebookroom_list.InsertColumn(1,"身份證號");
m_findprebookroom_list.InsertColumn(2,"聯(lián)系電話");
m_findprebookroom_list.InsertColumn(3,"詳細(xì)地址");
m_findprebookroom_list.InsertColumn(4,"工作單位");
m_findprebookroom_list.InsertColumn(5,"房間類型");
m_findprebookroom_list.InsertColumn(6,"客房價(jià)格");
m_findprebookroom_list.InsertColumn(7,"預(yù)住日期");
m_findprebookroom_list.InsertColumn(8,"預(yù)住天數(shù)");
m_findprebookroom_list.InsertColumn(9,"預(yù)收金額");
m_findprebookroom_list.InsertColumn(10,"備注");
m_findprebookroom_list.InsertColumn(11,"日期");
m_findprebookroom_list.InsertColumn(12,"操作員");
RECT rect;
m_findprebookroom_list.GetWindowRect(&rect);
int wid=rect.right-rect.left;
int i=0;
m_findprebookroom_list.SetColumnWidth(0,wid/12);
m_findprebookroom_list.SetColumnWidth(1,wid/12);
m_findprebookroom_list.SetColumnWidth(2,wid/12);
m_findprebookroom_list.SetColumnWidth(3,wid/12);
m_findprebookroom_list.SetColumnWidth(4,wid/12);
m_findprebookroom_list.SetColumnWidth(5,wid/12);
m_findprebookroom_list.SetColumnWidth(6,wid/12);
m_findprebookroom_list.SetColumnWidth(7,wid/12);
m_findprebookroom_list.SetColumnWidth(8,wid/12);
m_findprebookroom_list.SetColumnWidth(9,wid/12);
m_findprebookroom_list.SetColumnWidth(10,wid/12);
m_findprebookroom_list.SetColumnWidth(11,wid/12);
m_findprebookroom_list.SetColumnWidth(12,wid/12);
m_findprebookroom_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
// 使用ADO創(chuàng)建數(shù)據(jù)庫記錄集
m_pRecordset.CreateInstance(__uuidof(Recordset));
_variant_t var;
// 在ADO操作中建議語句中要常用try...catch()來捕獲錯(cuò)誤信息,
//
try
{//打開數(shù)據(jù)庫
m_pRecordset->Open("SELECT * FROM kfyd", // 查詢 表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 獲取庫接庫的IDispatch指針
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{//捕獲可能出現(xiàn)的打開異常情況
AfxMessageBox(e->ErrorMessage());
}
try
{
if(!m_pRecordset->BOF)//判斷指針是否在數(shù)據(jù)集最后
m_pRecordset->MoveFirst();
else
{
AfxMessageBox("表內(nèi)數(shù)據(jù)為空");
return false;
}
// read data from the database table
while(!m_pRecordset->adoEOF)
{//循環(huán)讀取數(shù)據(jù),并在列表框內(nèi)實(shí)時(shí)顯示
//讀取數(shù)據(jù)表內(nèi)姓名字段的內(nèi)容
var = m_pRecordset->GetCollect("姓名");
if(var.vt != VT_NULL)
gustname = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.InsertItem(i,gustname.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)身份證號字段的內(nèi)容
var = m_pRecordset->GetCollect("身份證號");
if(var.vt != VT_NULL)
id_number = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,1,id_number.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)聯(lián)系電話字段的內(nèi)容
var = m_pRecordset->GetCollect("聯(lián)系電話");
if(var.vt != VT_NULL)
m_tel = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,2,m_tel.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)詳細(xì)地址字段的內(nèi)容
var = m_pRecordset->GetCollect("詳細(xì)地址");
if(var.vt != VT_NULL)
gustaddr = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,3,gustaddr.GetBuffer(100));
//讀取數(shù)據(jù)表內(nèi)工作單位字段的內(nèi)容
var = m_pRecordset->GetCollect("工作單位");
if(var.vt != VT_NULL)
workcompany = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,4,workcompany.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)客房類型字段的內(nèi)容
var = m_pRecordset->GetCollect("客房類型");
if(var.vt != VT_NULL)
roomlevel = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,5,roomlevel.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)房間價(jià)格字段的內(nèi)容
var = m_pRecordset->GetCollect("房間價(jià)格");
if(var.vt != VT_NULL)
room_money = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,6,room_money.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)預(yù)住日期字段的內(nèi)容
var = m_pRecordset->GetCollect("預(yù)住日期");
if(var.vt != VT_NULL)
precheckindate = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,7,precheckindate.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)預(yù)住天數(shù)字段的內(nèi)容
var = m_pRecordset->GetCollect("預(yù)住天數(shù)");
if(var.vt != VT_NULL)
precheckdays = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,8,precheckdays.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)預(yù)付金額字段的內(nèi)容
var = m_pRecordset->GetCollect("預(yù)付金額");
if(var.vt != VT_NULL)
pre_handinmoney = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,9,pre_handinmoney.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)備注字段的內(nèi)容
var = m_pRecordset->GetCollect("備注");
if(var.vt != VT_NULL)
beizhu = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,10,beizhu.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)日期字段的內(nèi)容
var = m_pRecordset->GetCollect("日期");
if(var.vt != VT_NULL)
dopredate = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,11,dopredate.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)操作員字段的內(nèi)容
var = m_pRecordset->GetCollect("操作員");
if(var.vt != VT_NULL)
caozuoman = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,12,caozuoman.GetBuffer(50));
i++;
//記錄指針下移一條
m_pRecordset->MoveNext();
}
//
}
catch(_com_error *e)//捕獲異常
{
AfxMessageBox(e->ErrorMessage());
}
// 關(guān)閉記錄集
m_pRecordset->Close();
m_pRecordset = NULL;
//更新顯示
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CFindprebookroomdlg::OnOK()
{
// TODO: Add extra validation here
m_findprebookroom_list.DeleteAllItems();
m_pRecordsetfind.CreateInstance(__uuidof(Recordset));
UpdateData(true);
_variant_t var;
CString strsqlfind;
strsqlfind.Format("SELECT * FROM kfyd WHERE 姓名='%s'",m_findprebookroom_name);
// 在ADO操作中建議語句中要常用try...catch()來捕獲錯(cuò)誤信息,
//
try
{//打開數(shù)據(jù)庫
m_pRecordsetfind->Open(_variant_t(strsqlfind), // 查詢 表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 獲取庫接庫的IDispatch指針
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)//捕獲打開數(shù)據(jù)庫時(shí)候可能發(fā)生的異常
{
AfxMessageBox(e->ErrorMessage());
}
int i=0;
try
{
if(!m_pRecordsetfind->BOF)//判斷指針是否在數(shù)據(jù)集最后
m_pRecordsetfind->MoveFirst();
else
{
MessageBox("表內(nèi)數(shù)據(jù)為空","客房管理系統(tǒng)");
return;
}
//讀取數(shù)據(jù)庫內(nèi)的相應(yīng)的數(shù)據(jù),實(shí)時(shí)在列表框內(nèi)顯示
//讀取數(shù)據(jù)表內(nèi)姓名字段的內(nèi)容
var = m_pRecordsetfind->GetCollect("姓名");
if(var.vt != VT_NULL)
gustname = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.InsertItem(i,gustname.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)身份證號字段的內(nèi)容
var = m_pRecordsetfind->GetCollect("身份證號");
if(var.vt != VT_NULL)
id_number = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,1,id_number.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)聯(lián)系電話字段的內(nèi)容
var =m_pRecordsetfind->GetCollect("聯(lián)系電話");
if(var.vt != VT_NULL)
m_tel = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,2,m_tel.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)詳細(xì)地址字段的內(nèi)容
var = m_pRecordsetfind->GetCollect("詳細(xì)地址");
if(var.vt != VT_NULL)
gustaddr = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,3,gustaddr.GetBuffer(100));
//讀取數(shù)據(jù)表內(nèi)工作單位字段的內(nèi)容
var = m_pRecordsetfind->GetCollect("工作單位");
if(var.vt != VT_NULL)
workcompany = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,4,workcompany.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)客房類型字段的內(nèi)容
var = m_pRecordsetfind->GetCollect("客房類型");
if(var.vt != VT_NULL)
roomlevel = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,5,roomlevel.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)房間價(jià)格字段的內(nèi)容
var = m_pRecordsetfind->GetCollect("房間價(jià)格");
if(var.vt != VT_NULL)
room_money = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,6,room_money.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)預(yù)住日期字段的內(nèi)容
var = m_pRecordsetfind->GetCollect("預(yù)住日期");
if(var.vt != VT_NULL)
precheckindate = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,7,precheckindate.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)預(yù)住天數(shù)字段的內(nèi)容
var = m_pRecordsetfind->GetCollect("預(yù)住天數(shù)");
if(var.vt != VT_NULL)
precheckdays = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,8,precheckdays.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)預(yù)付金額字段的內(nèi)容
var = m_pRecordsetfind->GetCollect("預(yù)付金額");
if(var.vt != VT_NULL)
pre_handinmoney = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,9,pre_handinmoney.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)備注字段的內(nèi)容
var =m_pRecordsetfind->GetCollect("備注");
if(var.vt != VT_NULL)
beizhu = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,10,beizhu.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)日期字段的內(nèi)容
var = m_pRecordsetfind->GetCollect("日期");
if(var.vt != VT_NULL)
dopredate = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,11,dopredate.GetBuffer(50));
//讀取數(shù)據(jù)表內(nèi)操作員字段的內(nèi)容
var =m_pRecordsetfind->GetCollect("操作員");
if(var.vt != VT_NULL)
caozuoman = (LPCSTR)_bstr_t(var);
//在列表框內(nèi)顯示該字段的值
m_findprebookroom_list.SetItemText(i,12,caozuoman.GetBuffer(50));
//
}
catch(_com_error *e)//捕獲可能出現(xiàn)的異常
{
AfxMessageBox(e->ErrorMessage());
}
// 關(guān)閉記錄集
m_pRecordsetfind->Close();
m_pRecordsetfind = NULL;
//更新顯示
UpdateData(false);
// CDialog::OnOK();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -