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

📄 calculatedlg.cpp

📁 该源码的前台用C++编写
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// CalculateDlg.cpp : implementation file
//

#include "stdafx.h"
#include "MenuManage.h"
#include "CalculateDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern CMenuManageApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CCalculateDlg dialog


CCalculateDlg::CCalculateDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCalculateDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCalculateDlg)
	m_nListSelect = 0;
	//}}AFX_DATA_INIT
}


void CCalculateDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCalculateDlg)
	DDX_Control(pDX, IDC_DATETIMEPICKER_START, m_timectrlStart);
	DDX_Control(pDX, IDC_DATETIMEPICKER_END, m_timectrlEnd);
	DDX_Control(pDX, IDC_EDIT_START, m_editStart);
	DDX_Control(pDX, IDC_EDIT_END, m_editEnd);
	DDX_Radio(pDX, IDC_SELL_LISTREPORT, m_nListSelect);
	DDX_Control(pDX, IDC_DATAGRID_LIST, m_dbList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCalculateDlg, CDialog)
//{{AFX_MSG_MAP(CCalculateDlg)
ON_BN_CLICKED(IDC_CAL_BTN, OnCalBtn)
ON_BN_CLICKED(IDC_CAL_PRING_BTN, OnCalPringBtn)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCalculateDlg message handlers
CString CCalculateDlg::Dateformat(CString sdate)
{
	if(sdate.GetLength()==8)
	{
		sdate.Insert(7,'0');
		sdate.Insert(5,'0');
	}
	if(sdate.GetLength()==9)
	{
		if(sdate.GetAt(6)=='-')
			sdate.Insert(5,'0');
		else
			sdate.Insert(8,'0');
	}
	return sdate;
}


void CCalculateDlg::OnCalBtn() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	
	CString startdate,enddate,starttime,endtime,sstart,send;
	//获取日期/时间:转化为时间/日期格式
	m_timectrlStart.GetWindowText(startdate);
	startdate = Dateformat(startdate);
	
	m_timectrlEnd.GetWindowText(enddate);
	enddate = Dateformat(enddate);
	
	m_editStart.GetWindowText(starttime);
	m_editEnd.GetWindowText(endtime);
	
	sstart = startdate +" "+ starttime;
	send = enddate +" "+ endtime;
	
	if(m_nListSelect == 0)
	{
		//调用desk表,统计后存入calinfo表
		int renminbi_num=0,renminbi_jine=0;
		int zhipiao_num=0,zhipiao_jine=0;
		int xinyongka_num=0,xinyongka_jine=0;
		int qita_num=0,qita_jine=0;
		int total_num=0,total_jine=0;
		
		CString str,str1,sql;
		int temp=1;
		str1.Format("%d",temp);		
		
		//时间段内已结帐的记录
		sql =  "SELECT * FROM DeskInfo  WHERE   DeskCheck = "+str1+" and DeskDatetime >= '"+sstart+"' and DeskDatetime <= '"+send+"'";
		m_pRecordset_Desk.CreateInstance("ADODB.Recordset");
		m_pRecordset_Desk->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
		
		if(m_pRecordset_Desk->GetRecordCount()!=0)
		{
			while(!m_pRecordset_Desk->adoEOF)
			{
				str = m_pRecordset_Desk->GetCollect("DeskPayMode").bstrVal;//获取付款方式
				if(str.CompareNoCase("人民币") == 0)
				{
					renminbi_num++;
					renminbi_jine += m_pRecordset_Desk->GetCollect("DeskPrice").lVal;					
				}
				else if(str.CompareNoCase("支票") == 0)
				{
					zhipiao_num++;
					zhipiao_jine += m_pRecordset_Desk->GetCollect("DeskPrice").lVal;
				}
				else if(str.CompareNoCase("信用卡") == 0)
				{
					xinyongka_num++;
					xinyongka_jine += m_pRecordset_Desk->GetCollect("DeskPrice").lVal;;
				}
				else
				{
					qita_num++;
					qita_jine +=m_pRecordset_Desk->GetCollect("DeskPrice").lVal;
				}
				
				m_pRecordset_Desk->MoveNext();
			}
			
		}
		
		sql =  "SELECT * FROM CalInfo ";
		m_pRecordset_CalInfo.CreateInstance("ADODB.Recordset");
		m_pRecordset_CalInfo->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
		
		m_pRecordset_CalInfo->MoveFirst();//人民币
		str.Format("%d",renminbi_num);
		m_pRecordset_CalInfo->PutCollect("checknum",_variant_t(str));
		m_pRecordset_CalInfo->PutCollect("mode",_variant_t("人民币"));
		str.Format("%d",renminbi_jine);
		m_pRecordset_CalInfo->PutCollect("money",_variant_t(str));
		
		m_pRecordset_CalInfo->MoveNext();//支票
		str.Format("%d",zhipiao_num);
		m_pRecordset_CalInfo->PutCollect("checknum",_variant_t(str));
		m_pRecordset_CalInfo->PutCollect("mode",_variant_t("支票"));
		str.Format("%d",zhipiao_jine);
		m_pRecordset_CalInfo->PutCollect("money",_variant_t(str));
		
		m_pRecordset_CalInfo->MoveNext();//信用卡
		str.Format("%d",xinyongka_num);
		m_pRecordset_CalInfo->PutCollect("checknum",_variant_t(str));
		m_pRecordset_CalInfo->PutCollect("mode",_variant_t("信用卡"));
		str.Format("%d",xinyongka_jine);
		m_pRecordset_CalInfo->PutCollect("money",_variant_t(str));
		
		m_pRecordset_CalInfo->MoveNext();//其它
		str.Format("%d",qita_num);
		m_pRecordset_CalInfo->PutCollect("checknum",_variant_t(str));
		m_pRecordset_CalInfo->PutCollect("mode",_variant_t("其他"));
		str.Format("%d",qita_jine);
		m_pRecordset_CalInfo->PutCollect("money",_variant_t(str));
		
		m_dbList.SetRefDataSource(NULL);
		m_dbList.SetRefDataSource((LPUNKNOWN)m_pRecordset_CalInfo);
		m_dbList.SetColumnHeaders(2) ;
		
		m_dbList.Refresh();	
	}
	else 
	{
		//调用order表,统计后存入calsignalinfo表
		CString str,str1,sql;
		int temp=1;
		str1.Format("%d",temp);	
		
		//时间段内已结帐的记录
		sql =  "SELECT * FROM OrderInfo  WHERE   FoodCheck = "+str1+"and FoodTime >= '"+sstart+"' and FoodTime <= '"+send+"'";
		m_pRecordset_Order.CreateInstance("ADODB.Recordset");
		m_pRecordset_Order->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
		
		sql =  "SELECT * FROM CalSignalInfo ";
		m_pRecordset_CalSignalInfo.CreateInstance("ADODB.Recordset");
		m_pRecordset_CalSignalInfo->Open((_variant_t)sql,_variant_t((IDispatch *)theApp.m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
		
		//清楚原来的数据
		if(m_pRecordset_CalSignalInfo->GetRecordCount() != 0)
		{	
			while(!m_pRecordset_CalSignalInfo -> adoEOF)
			{
				m_pRecordset_CalSignalInfo->Delete(adAffectCurrent);
				m_pRecordset_CalSignalInfo->MoveNext();
			}
		}
		
		int tempnum;
		CString stemp;
		BOOL m_bfind;
		
		if(m_pRecordset_Order->GetRecordCount()!=0)//if1
		{
			while(!m_pRecordset_Order->adoEOF)//while1
			{
				str = m_pRecordset_Order->GetCollect("FoodName").bstrVal;//获取菜名
				
				m_bfind = FALSE;
				
				if(m_pRecordset_CalSignalInfo -> GetRecordCount() != 0)//if2
				{
					m_pRecordset_CalSignalInfo->MoveFirst();
					while(!m_pRecordset_CalSignalInfo ->adoEOF)//while2
					{
						str1 = m_pRecordset_CalSignalInfo->GetCollect("name").bstrVal;
						if(str.CompareNoCase(str1) == 0 )//if3
						{
							//统计数量
							tempnum = m_pRecordset_Order->GetCollect("FoodAcount").lVal;
							tempnum += m_pRecordset_CalSignalInfo->GetCollect("acount").lVal;
							stemp.Format("%d",tempnum);
							m_pRecordset_CalSignalInfo->PutCollect("acount",_variant_t(stemp));
							//统计金额
							tempnum = m_pRecordset_Order->GetCollect("FoodPrice").lVal;
							tempnum += m_pRecordset_CalSignalInfo->GetCollect("money").lVal;
							stemp.Format("%d",tempnum);
							m_pRecordset_CalSignalInfo->PutCollect("money",_variant_t(stemp));
							
							m_pRecordset_CalSignalInfo->Update();
							
							m_bfind = TRUE;
							
							break;
						}
						else
						{
							m_bfind = FALSE;
							m_pRecordset_CalSignalInfo->MoveNext();	
							
						}//if3					
					}//while2
					if(m_bfind == FALSE)
					{
						m_pRecordset_CalSignalInfo->AddNew();
						m_pRecordset_CalSignalInfo->PutCollect("name",_variant_t(str));
						//统计数量
						tempnum = m_pRecordset_Order->GetCollect("FoodAcount").lVal;
						stemp.Format("%d",tempnum);
						m_pRecordset_CalSignalInfo->PutCollect("acount",_variant_t(stemp));
						//统计金额
						tempnum = m_pRecordset_Order->GetCollect("FoodPrice").lVal;
						stemp.Format("%d",tempnum);
						m_pRecordset_CalSignalInfo->PutCollect("money",_variant_t(stemp));
						
						m_pRecordset_CalSignalInfo->Update();
					}
					
				}
				else
				{
					
					m_pRecordset_CalSignalInfo->AddNew();
					m_pRecordset_CalSignalInfo->PutCollect("name",_variant_t(str));
					//统计数量
					tempnum = m_pRecordset_Order->GetCollect("FoodAcount").lVal;
					stemp.Format("%d",tempnum);
					m_pRecordset_CalSignalInfo->PutCollect("acount",_variant_t(stemp));
					//统计金额

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -