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

📄 datadlg.cpp

📁 家庭财务管理系统毕业论文,含源码。基于ACCESS数据库的运用。用了VC++ 6.0 ADO。
💻 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 + -