📄 datadlg.cpp
字号:
// DataDlg.cpp : implementation file
//
#include "stdafx.h"
#include "HomeRes.h"
#include "DataDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDataDlg dialog
CDataDlg::CDataDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDataDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDataDlg)
//}}AFX_DATA_INIT
}
void CDataDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDataDlg)
DDX_Control(pDX, IDC_COMBO_MODEL, m_cobModel);
DDX_Control(pDX, IDC_COMBO_ANATYPE, m_cobAnaType);
DDX_Control(pDX, IDC_COMBO_ANAHANDLER, m_cobAnaHandler);
DDX_Control(pDX, IDC_LIST_RESULT, m_ResList);
DDX_Control(pDX, IDC_DATETIMEPICKER_FROM, m_DateFrom);
DDX_Control(pDX, IDC_DATETIMEPICKER_TO, m_DateTo);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDataDlg, CDialog)
//{{AFX_MSG_MAP(CDataDlg)
ON_BN_CLICKED(IDC_BTN_ANA, OnBtnAna)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDataDlg message handlers
void CDataDlg::Load(int nFrom, int nTo, int nYear)
{
}
void CDataDlg::OnBtnAna()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CString strModel;
m_cobModel.GetWindowText(strModel);
if(strModel == "消费情况")
{
CString strAnaType,strAnaHandler,strDateFrom,strDateTo;
m_DateFrom.GetWindowText(strDateFrom);
m_DateTo.GetWindowText(strDateTo);
m_cobAnaType.GetWindowText(strAnaType);
m_cobAnaHandler.GetWindowText(strAnaHandler);
CString strSql,strTemp;
strSql.Format("select SUM(MoneyA) as SumMoneyA from Budget where DateA>=#%s# and DateA<=#%s#",
strDateFrom,strDateTo);
if(strAnaType != "全部类型")
{
strTemp.Format(" and Type='%s'",strAnaType);
strSql += strTemp;
}
if(strAnaHandler != "全部成员")
{
strTemp.Format(" and Handler='%s'",strAnaHandler);
strSql += strTemp;
}
strTemp.Format("时间:%s-> %s",strDateFrom,strDateTo);
m_ResList.AddString(strTemp);
strTemp.Format("消费类型:%s",strAnaType);
m_ResList.AddString(strTemp);
strTemp.Format("成员:%s",strAnaHandler);
m_ResList.AddString(strTemp);
_RecordsetPtr SumRecordset;
_variant_t vSum;
SumRecordset = theApp.m_pConnection->Execute(_bstr_t(strSql),&vSum,adCmdText);
while(!SumRecordset->adoEOF)
{
vSum = SumRecordset->GetCollect("SumMoneyA");
if(vSum.vt != VT_NULL)
{
strTemp.Format("总计消费:¥%.2f元",(float)vSum);
m_ResList.AddString(strTemp);
}
else
{
m_ResList.AddString("总计消费:¥0.00元");
}
SumRecordset->MoveNext();
}
SumRecordset->Close();
m_ResList.AddString("----------------");
}
else
{
float m_fAllChu;//总支出
CString strAnaType,strAnaHandler,strDateFrom,strDateTo;
m_DateFrom.GetWindowText(strDateFrom);
m_DateTo.GetWindowText(strDateTo);
m_cobAnaType.GetWindowText(strAnaType);
m_cobAnaHandler.GetWindowText(strAnaHandler);
CString strSql,strTemp;
strSql.Format("select SUM(MoneyA) as SumMoneyA from Budget where DateA>=#%s# and DateA<=#%s#",
strDateFrom,strDateTo);
if(strAnaHandler != "全部成员")
{
strTemp.Format(" and Handler='%s'",strAnaHandler);
strSql += strTemp;
}
strTemp.Format("时间:%s-> %s",strDateFrom,strDateTo);
m_ResList.AddString(strTemp);
strTemp.Format("成员:%s",strAnaHandler);
m_ResList.AddString(strTemp);
_RecordsetPtr SumRecordset;
_variant_t vSum;
SumRecordset = theApp.m_pConnection->Execute(_bstr_t(strSql),&vSum,adCmdText);
while(!SumRecordset->adoEOF)
{
vSum = SumRecordset->GetCollect("SumMoneyA");
if(vSum.vt != VT_NULL)
{
strTemp.Format("总支出:¥%.2f元",(float)vSum);
m_fAllChu = (float)vSum;
m_ResList.AddString(strTemp);
}
else
{
m_ResList.AddString("总支出:¥0.00元");
}
SumRecordset->MoveNext();
}
SumRecordset->Close();
float m_fAllAdd;//总收入
strSql.Format("select SUM(AddMoney) as SumAddMoney from Budget where DateA>=#%s# and DateA<=#%s#",
strDateFrom,strDateTo);
if(strAnaHandler != "全部成员")
{
strTemp.Format(" and Handler='%s'",strAnaHandler);
strSql += strTemp;
}
SumRecordset = theApp.m_pConnection->Execute(_bstr_t(strSql),&vSum,adCmdText);
while(!SumRecordset->adoEOF)
{
vSum = SumRecordset->GetCollect("SumAddMoney");
if(vSum.vt != VT_NULL)
{
strTemp.Format("总收入:¥%.2f元",(float)vSum);
m_fAllAdd = (float)vSum;
m_ResList.AddString(strTemp);
}
else
{
m_ResList.AddString("总收入:¥0.00元");
}
SumRecordset->MoveNext();
}
SumRecordset->Close();
strTemp.Format("总余额:¥%.2f元",m_fAllAdd - m_fAllChu);
m_ResList.AddString(strTemp);
m_ResList.AddString("------------");
}
}
BOOL CDataDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_cobAnaType.AddString("全部类型");
m_cobAnaHandler.AddString("全部成员");
m_cobAnaType.SetCurSel(0);
m_cobAnaHandler.SetCurSel(0);
m_cobModel.AddString("存款余额");
m_cobModel.AddString("消费情况");
m_cobModel.SetCurSel(1);
GetSystemTime(&m_CurTime);
m_CurTime.wDay = 1;
m_DateFrom.SetTime(&m_CurTime);
m_CurTime.wMonth += 1;
m_DateTo.SetTime(&m_CurTime);
//从数据库中读入经手人名单和类型名单
_RecordsetPtr pHandlerRecordset;
pHandlerRecordset.CreateInstance(__uuidof(Recordset));
try
{
pHandlerRecordset->Open("SELECT * FROM Handler", // 查询DemoTable表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
_variant_t var;
CString strName;
while(!pHandlerRecordset->adoEOF)
{
var = pHandlerRecordset->GetCollect("Handler");
if(var.vt != VT_NULL)
strName = (LPCSTR)_bstr_t(var);
m_cobAnaHandler.AddString(strName);
pHandlerRecordset->MoveNext();
}
pHandlerRecordset->Close();
pHandlerRecordset.Release();
pHandlerRecordset = NULL;
CString strType;
_RecordsetPtr pTypeRecordset;
pTypeRecordset.CreateInstance(__uuidof(Recordset));
try
{
pTypeRecordset->Open("SELECT * FROM Type", // 查询DemoTable表中所有字段
theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
while(!pTypeRecordset->adoEOF)
{
var = pTypeRecordset->GetCollect("Type");
if(var.vt != VT_NULL)
strType = (LPCSTR)_bstr_t(var);
m_cobAnaType.AddString(strType);
pTypeRecordset->MoveNext();
}
pTypeRecordset->Close();
pTypeRecordset.Release();
pTypeRecordset = NULL;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -