📄 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
//设置列表框颜色
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,"联系电话");
m_findprebookroom_list.InsertColumn(3,"详细地址");
m_findprebookroom_list.InsertColumn(4,"工作单位");
m_findprebookroom_list.InsertColumn(5,"房间类型");
m_findprebookroom_list.InsertColumn(6,"客房价格");
m_findprebookroom_list.InsertColumn(7,"预住日期");
m_findprebookroom_list.InsertColumn(8,"预住天数");
m_findprebookroom_list.InsertColumn(9,"预收金额");
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创建数据库记录集
m_pRecordset.CreateInstance(__uuidof(Recordset));
_variant_t var;
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
//
try
{//打开数据库
m_pRecordset->Open("SELECT * FROM kfyd", // 查询 表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{//捕获可能出现的打开异常情况
AfxMessageBox(e->ErrorMessage());
}
try
{
if(!m_pRecordset->BOF)//判断指针是否在数据集最后
m_pRecordset->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return false;
}
// read data from the database table
while(!m_pRecordset->adoEOF)
{//循环读取数据,并在列表框内实时显示
//读取数据表内姓名字段的内容
var = m_pRecordset->GetCollect("姓名");
if(var.vt != VT_NULL)
gustname = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.InsertItem(i,gustname.GetBuffer(50));
//读取数据表内身份证号字段的内容
var = m_pRecordset->GetCollect("身份证号");
if(var.vt != VT_NULL)
id_number = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,1,id_number.GetBuffer(50));
//读取数据表内联系电话字段的内容
var = m_pRecordset->GetCollect("联系电话");
if(var.vt != VT_NULL)
m_tel = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,2,m_tel.GetBuffer(50));
//读取数据表内详细地址字段的内容
var = m_pRecordset->GetCollect("详细地址");
if(var.vt != VT_NULL)
gustaddr = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,3,gustaddr.GetBuffer(100));
//读取数据表内工作单位字段的内容
var = m_pRecordset->GetCollect("工作单位");
if(var.vt != VT_NULL)
workcompany = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,4,workcompany.GetBuffer(50));
//读取数据表内客房类型字段的内容
var = m_pRecordset->GetCollect("客房类型");
if(var.vt != VT_NULL)
roomlevel = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,5,roomlevel.GetBuffer(50));
//读取数据表内房间价格字段的内容
var = m_pRecordset->GetCollect("房间价格");
if(var.vt != VT_NULL)
room_money = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,6,room_money.GetBuffer(50));
//读取数据表内预住日期字段的内容
var = m_pRecordset->GetCollect("预住日期");
if(var.vt != VT_NULL)
precheckindate = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,7,precheckindate.GetBuffer(50));
//读取数据表内预住天数字段的内容
var = m_pRecordset->GetCollect("预住天数");
if(var.vt != VT_NULL)
precheckdays = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,8,precheckdays.GetBuffer(50));
//读取数据表内预付金额字段的内容
var = m_pRecordset->GetCollect("预付金额");
if(var.vt != VT_NULL)
pre_handinmoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,9,pre_handinmoney.GetBuffer(50));
//读取数据表内备注字段的内容
var = m_pRecordset->GetCollect("备注");
if(var.vt != VT_NULL)
beizhu = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,10,beizhu.GetBuffer(50));
//读取数据表内日期字段的内容
var = m_pRecordset->GetCollect("日期");
if(var.vt != VT_NULL)
dopredate = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,11,dopredate.GetBuffer(50));
//读取数据表内操作员字段的内容
var = m_pRecordset->GetCollect("操作员");
if(var.vt != VT_NULL)
caozuoman = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,12,caozuoman.GetBuffer(50));
i++;
//记录指针下移一条
m_pRecordset->MoveNext();
}
//
}
catch(_com_error *e)//捕获异常
{
AfxMessageBox(e->ErrorMessage());
}
// 关闭记录集
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()来捕获错误信息,
//
try
{//打开数据库
m_pRecordsetfind->Open(_variant_t(strsqlfind), // 查询 表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)//捕获打开数据库时候可能发生的异常
{
AfxMessageBox(e->ErrorMessage());
}
int i=0;
try
{
if(!m_pRecordsetfind->BOF)//判断指针是否在数据集最后
m_pRecordsetfind->MoveFirst();
else
{
MessageBox("表内数据为空","客房管理系统");
return;
}
//读取数据库内的相应的数据,实时在列表框内显示
//读取数据表内姓名字段的内容
var = m_pRecordsetfind->GetCollect("姓名");
if(var.vt != VT_NULL)
gustname = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.InsertItem(i,gustname.GetBuffer(50));
//读取数据表内身份证号字段的内容
var = m_pRecordsetfind->GetCollect("身份证号");
if(var.vt != VT_NULL)
id_number = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,1,id_number.GetBuffer(50));
//读取数据表内联系电话字段的内容
var =m_pRecordsetfind->GetCollect("联系电话");
if(var.vt != VT_NULL)
m_tel = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,2,m_tel.GetBuffer(50));
//读取数据表内详细地址字段的内容
var = m_pRecordsetfind->GetCollect("详细地址");
if(var.vt != VT_NULL)
gustaddr = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,3,gustaddr.GetBuffer(100));
//读取数据表内工作单位字段的内容
var = m_pRecordsetfind->GetCollect("工作单位");
if(var.vt != VT_NULL)
workcompany = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,4,workcompany.GetBuffer(50));
//读取数据表内客房类型字段的内容
var = m_pRecordsetfind->GetCollect("客房类型");
if(var.vt != VT_NULL)
roomlevel = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,5,roomlevel.GetBuffer(50));
//读取数据表内房间价格字段的内容
var = m_pRecordsetfind->GetCollect("房间价格");
if(var.vt != VT_NULL)
room_money = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,6,room_money.GetBuffer(50));
//读取数据表内预住日期字段的内容
var = m_pRecordsetfind->GetCollect("预住日期");
if(var.vt != VT_NULL)
precheckindate = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,7,precheckindate.GetBuffer(50));
//读取数据表内预住天数字段的内容
var = m_pRecordsetfind->GetCollect("预住天数");
if(var.vt != VT_NULL)
precheckdays = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,8,precheckdays.GetBuffer(50));
//读取数据表内预付金额字段的内容
var = m_pRecordsetfind->GetCollect("预付金额");
if(var.vt != VT_NULL)
pre_handinmoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,9,pre_handinmoney.GetBuffer(50));
//读取数据表内备注字段的内容
var =m_pRecordsetfind->GetCollect("备注");
if(var.vt != VT_NULL)
beizhu = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,10,beizhu.GetBuffer(50));
//读取数据表内日期字段的内容
var = m_pRecordsetfind->GetCollect("日期");
if(var.vt != VT_NULL)
dopredate = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,11,dopredate.GetBuffer(50));
//读取数据表内操作员字段的内容
var =m_pRecordsetfind->GetCollect("操作员");
if(var.vt != VT_NULL)
caozuoman = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findprebookroom_list.SetItemText(i,12,caozuoman.GetBuffer(50));
//
}
catch(_com_error *e)//捕获可能出现的异常
{
AfxMessageBox(e->ErrorMessage());
}
// 关闭记录集
m_pRecordsetfind->Close();
m_pRecordsetfind = NULL;
//更新显示
UpdateData(false);
// CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -