⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 findguazhangdlg.cpp

📁 系统主要包括住宿管理,客房管理,查询统计,报表管理,系统设置五个模块,适用于中小型宾馆酒店。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -