📄 calculatedlg.cpp
字号:
// 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 + -