📄 findguazhangdlg.cpp
字号:
// Findguazhangdlg.cpp : implementation file
//
#include "stdafx.h"
#include "Myhotel.h"
#include "Findguazhangdlg.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;
extern CString loguserid;
/////////////////////////////////////////////////////////////////////////////
// CFindguazhangdlg dialog
CFindguazhangdlg::CFindguazhangdlg(CWnd* pParent /*=NULL*/)
: CDialog(CFindguazhangdlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CFindguazhangdlg)
m_gz_fanddepname = _T("");
m_findbegindate = 0;
m_findstopdate = 0;
m_showuser = _T("");
//}}AFX_DATA_INIT
}
void CFindguazhangdlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CFindguazhangdlg)
DDX_Control(pDX, IDC_COMBO_findguazhang_depname, findgz_depnamectr);
DDX_Control(pDX, IDC_LIST_findguazhang, m_findguazhanglist);
DDX_CBString(pDX, IDC_COMBO_findguazhang_depname, m_gz_fanddepname);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_findgua_begindate, m_findbegindate);
DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_findgua_stopdate, m_findstopdate);
DDX_Text(pDX, IDC_STATICshowuser, m_showuser);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CFindguazhangdlg, CDialog)
//{{AFX_MSG_MAP(CFindguazhangdlg)
ON_CBN_CLOSEUP(IDC_COMBO_findguazhang_depname, OnCloseupCOMBOfindguazhangdepname)
ON_NOTIFY(DTN_CLOSEUP, IDC_DATETIMEPICKER_findgua_begindate, OnCloseupDATETIMEPICKERfindguabegindate)
ON_NOTIFY(DTN_CLOSEUP, IDC_DATETIMEPICKER_findgua_stopdate, OnCloseupDATETIMEPICKERfindguastopdate)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFindguazhangdlg message handlers
BOOL CFindguazhangdlg::OnInitDialog()
{
CDialog::OnInitDialog();
CTime tTime;
//获得当前时间
tTime=tTime.GetCurrentTime();
m_findstopdate=tTime;
// TODO: Add extra initialization here
//设置列表框颜色
m_findguazhanglist.SetTextColor(RGB (0, 0, 0));
m_findguazhanglist.SetTextBkColor(RGB (140, 180, 20));
//列表框初始化
m_findguazhanglist.InsertColumn(0,"日期");
m_findguazhanglist.InsertColumn(1,"挂帐单位");
m_findguazhanglist.InsertColumn(2,"摘要");
m_findguazhanglist.InsertColumn(3,"住宿金额");
m_findguazhanglist.InsertColumn(4,"欠款金额");
m_findguazhanglist.InsertColumn(5,"还款金额");
m_findguazhanglist.InsertColumn(6,"金额累计");
m_findguazhanglist.InsertColumn(7,"姓名");
m_findguazhanglist.InsertColumn(8,"证件号码");
m_findguazhanglist.InsertColumn(9,"票号");
RECT rect;
m_findguazhanglist.GetWindowRect(&rect);
int wid=rect.right-rect.left;
int i=0;
m_findguazhanglist.SetColumnWidth(0,wid/10);
m_findguazhanglist.SetColumnWidth(1,wid/10);
m_findguazhanglist.SetColumnWidth(2,wid/10);
m_findguazhanglist.SetColumnWidth(3,wid/10);
m_findguazhanglist.SetColumnWidth(4,wid/10);
m_findguazhanglist.SetColumnWidth(5,wid/10);
m_findguazhanglist.SetColumnWidth(6,wid/10);
m_findguazhanglist.SetColumnWidth(7,wid/10);
m_findguazhanglist.SetColumnWidth(8,wid/10);
m_findguazhanglist.SetColumnWidth(9,wid/10);
//列表框初始化完毕
m_findguazhanglist.SetExtendedStyle(LVS_EX_FULLROWSELECT);
///////////////////////////////////////////
m_pRecordset.CreateInstance(__uuidof(Recordset));
_variant_t var;
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
//
try
{ //打开数据库
m_pRecordset->Open("SELECT * FROM guazhanginfo", // 查询 表中所有字段
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)
findgz_date = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.InsertItem(i,findgz_date.GetBuffer(50));
//读取数据表内挂账单位字段的内容
var = m_pRecordset->GetCollect("挂账单位");
if(var.vt != VT_NULL)
findgz_depname = (LPCSTR)_bstr_t(var);
// findgz_depnamectr.AddString(findgz_depname);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,1,findgz_depname.GetBuffer(100));
//读取数据表内摘要字段的内容
var = m_pRecordset->GetCollect("摘要");
if(var.vt != VT_NULL)
findgz_sumery = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,2,findgz_sumery.GetBuffer(100));
//读取数据表内住宿金额字段的内容
var = m_pRecordset->GetCollect("住宿金额");
if(var.vt != VT_NULL)
findgz_spendmoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,3,findgz_spendmoney.GetBuffer(50));
//读取数据表内欠款金额字段的内容
var = m_pRecordset->GetCollect("欠款金额");
if(var.vt != VT_NULL)
findgz_bowrowmoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,4,findgz_bowrowmoney.GetBuffer(50));
//读取数据表内还款金额字段的内容
var = m_pRecordset->GetCollect("还款金额");
if(var.vt != VT_NULL)
findgz_returnmoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,5,findgz_returnmoney.GetBuffer(50));
//读取数据表内金额累计字段的内容
var = m_pRecordset->GetCollect("金额累计");
if(var.vt != VT_NULL)
findgz_summoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,6,findgz_summoney.GetBuffer(50));
//读取数据表内姓名字段的内容
var = m_pRecordset->GetCollect("姓名");
if(var.vt != VT_NULL)
findgz_name = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,7,findgz_name.GetBuffer(100));
//读取数据表内证件号码字段的内容
var = m_pRecordset->GetCollect("证件号码");
if(var.vt != VT_NULL)
findgz_idnumber = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,8,findgz_idnumber.GetBuffer(100));
//读取数据表内票号字段的内容
var = m_pRecordset->GetCollect("票号");
if(var.vt != VT_NULL)
findgz_ticketnumber = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,9,findgz_ticketnumber.GetBuffer(50));
i++;
m_pRecordset->MoveNext();//移动到下一条记录,继续
}
//
}
catch(_com_error *e)//捕获异常
{
AfxMessageBox(e->ErrorMessage());
}
// 关闭记录集
m_pRecordset->Close();
m_pRecordset = NULL;
//显示操作员ID
m_showuser=loguserid;
UpdateData(false);
//更新显示
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CFindguazhangdlg::OnCloseupCOMBOfindguazhangdepname()
{
// TODO: Add your control notification handler code here
_variant_t var;
m_pRecordsetfindname.CreateInstance(__uuidof(Recordset));
// 在ADO操作中建议语句中要常用try...catch()来捕获错误信息,
//
UpdateData(true);
CString strsql;
strsql.Format("SELECT * FROM guazhanginfo where 挂账单位='%s'",m_gz_fanddepname);
int i=0;
//列表框内容清除
m_findguazhanglist.DeleteAllItems();
try
{//打开数据库
m_pRecordsetfindname->Open(_variant_t(strsql), // 查询 表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)//捕获打开数据库时候可能发生的异常
{
AfxMessageBox(e->ErrorMessage());
}
try
{
if(!m_pRecordsetfindname->BOF)//判断指针是否在数据集最后
m_pRecordsetfindname->MoveFirst();
else
{
AfxMessageBox("表内数据为空");
return;
}
// read data from the database table
while(!m_pRecordsetfindname->adoEOF)
{//循环读取数据
//读取数据表内日期字段的内容
var = m_pRecordsetfindname->GetCollect("日期");
if(var.vt != VT_NULL)
findgz_date = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.InsertItem(i,findgz_date.GetBuffer(50));
//读取数据表内挂账单位字段的内容
var = m_pRecordsetfindname->GetCollect("挂账单位");
if(var.vt != VT_NULL)
findgz_depname = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,1,findgz_depname.GetBuffer(100));
//读取数据表内摘要字段的内容
var = m_pRecordsetfindname->GetCollect("摘要");
if(var.vt != VT_NULL)
findgz_sumery = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,2,findgz_sumery.GetBuffer(100));
//读取数据表内住宿金额字段的内容
var =m_pRecordsetfindname->GetCollect("住宿金额");
if(var.vt != VT_NULL)
findgz_spendmoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,3,findgz_spendmoney.GetBuffer(50));
//读取数据表内欠款金额字段的内容
var = m_pRecordsetfindname->GetCollect("欠款金额");
if(var.vt != VT_NULL)
findgz_bowrowmoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,4,findgz_bowrowmoney.GetBuffer(50));
//读取数据表内还款金额字段的内容
var = m_pRecordsetfindname->GetCollect("还款金额");
if(var.vt != VT_NULL)
findgz_returnmoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,5,findgz_returnmoney.GetBuffer(50));
//读取数据表内金额累计字段的内容
var = m_pRecordsetfindname->GetCollect("金额累计");
if(var.vt != VT_NULL)
findgz_summoney = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,6,findgz_summoney.GetBuffer(50));
//读取数据表内姓名字段的内容
var = m_pRecordsetfindname->GetCollect("姓名");
if(var.vt != VT_NULL)
findgz_name = (LPCSTR)_bstr_t(var);
//在列表框内显示该字段的值
m_findguazhanglist.SetItemText(i,7,findgz_name.GetBuffer(100));
//读取数据表内证件号码字段的内容
var = m_pRecordsetfindname->GetCollect("证件号码");
if(var.vt != VT_NULL)
findgz_idnumber = (LPCSTR)_bstr_t(var);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -