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

📄 financemaindlg.cpp

📁 这是一个学生信息管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// FinanceMainDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "SMS.h"
#include "FinanceMainDlg.h"


// CFinanceMainDlg 对话框

IMPLEMENT_DYNAMIC(CFinanceMainDlg, CDialog)

CFinanceMainDlg::CFinanceMainDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CFinanceMainDlg::IDD, pParent)
	, m_pCashSet(&theApp.m_db )
	, m_pIncomeSet(&theApp.m_db )
	, m_pOutcomeSet(&theApp.m_db )
	, m_pBankSet(&theApp.m_db )
	, m_pTangibleSet(&theApp.m_db )
	, m_pBorrowSet(&theApp.m_db )
	, m_pInvestSet(&theApp.m_db )
	, m_pTransferSet(&theApp.m_db )
{
	//显示窗口颜色
	m_backcolor=m_RGB_BkColor;
	m_brush.CreateSolidBrush(m_backcolor);
//	m_pFinanceDlg=NULL;
}

CFinanceMainDlg::~CFinanceMainDlg()
{
}

void CFinanceMainDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_INCOME_WIZARD_BT, m_cIncomeWizard_Bt);
	DDX_Control(pDX, IDC_OUTCOME_WIZARD_BT, m_cOutcome_Wizard_Bt);
	DDX_Control(pDX, IDC_FINANCE_DLG_BT, m_cFinanceDlg_Bt);
	DDX_Control(pDX, IDCANCEL, m_cCancel_Bt);
}


BEGIN_MESSAGE_MAP(CFinanceMainDlg, CDialog)
	ON_BN_CLICKED(IDC_INCOME_WIZARD_BT, &CFinanceMainDlg::OnBnClickedIncomeWizardBt)
	ON_BN_CLICKED(IDC_OUTCOME_WIZARD_BT, &CFinanceMainDlg::OnBnClickedOutcomeWizardBt)
	ON_BN_CLICKED(IDC_FINANCE_DLG_BT, &CFinanceMainDlg::OnBnClickedFinanceDlgBt)
	ON_BN_CLICKED(IDCANCEL, &CFinanceMainDlg::OnBnClickedCancel)
	ON_WM_TIMER()
	ON_WM_CLOSE()
	ON_WM_CTLCOLOR()
	ON_WM_DESTROY()
	ON_COMMAND(ID_FINANCE_MAIN_INCOME_WIZARD, &CFinanceMainDlg::OnFinanceMainIncomeWizard)
	ON_COMMAND(ID_FINANCE_MAIN_OUTCOME_WIZARD, &CFinanceMainDlg::OnFinanceMainOutcomeWizard)
	ON_COMMAND(ID_FINANCEMAIN_TO_FINANCE, &CFinanceMainDlg::OnFinancemainToFinance)
	ON_COMMAND(ID_FINANCE_MAIN_CLOSE, &CFinanceMainDlg::OnFinanceMainClose)
END_MESSAGE_MAP()


// CFinanceMainDlg 消息处理程序

void CFinanceMainDlg::OnBnClickedIncomeWizardBt()
{
	// TODO: 在此添加控件通知处理程序代码
	CIncomeWizardDlg  dlg;
	dlg.DoModal ();
}

void CFinanceMainDlg::OnBnClickedOutcomeWizardBt()
{
	// TODO: 在此添加控件通知处理程序代码
	COutcomeWizardDlg1 dlg;
	dlg.DoModal();
}

void CFinanceMainDlg::OnBnClickedFinanceDlgBt()
{
	// TODO: 在此添加控件通知处理程序代码
	CFinanceDlg dlg;
	dlg.DoModal ();
}
void CFinanceMainDlg::OnBnClickedCancel()
{
	// TODO: 在此添加控件通知处理程序代码
	OnCancel();
}

BOOL CFinanceMainDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	BeginWaitCursor();
	// TODO:  在此添加额外的初始化
	SetTimer(FINANCE_TIMER,10000,NULL);//设置定时期,用于定时监测有没有金额变动或借贷变动,或者是其他的财务报表
    ///////初始化添加现金和借贷
	//先添加现金
	double dCashAmount=0;
	CString StrCashAmount=L"";
	int Length;
	if(m_pCashSet.IsOpen ())
		m_pCashSet.Close ();
	m_pCashSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * From Cash Order by cDate");//按结算日期排序
	if(m_pCashSet.GetRecordCount ()!=0)//还没有现金的信息,则不用理,否则进入
	{
		m_pCashSet.MoveLast ();//现金是用最后的状态的,故最后一个
		dCashAmount=m_pCashSet.m_cAmount ;
		StrCashAmount.Format (L"%f",dCashAmount);
		Length=StrCashAmount.GetLength ();
		StrCashAmount.Delete (Length-4,4);
	}
	m_pCashSet.Close ();
	SetDlgItemText(IDC_CASHNOW_STATIC,StrCashAmount);
	//再添加借贷信息
	CString StrBorrowInfo=L"";
	CString StartDate;
	CString EndDate;
	CString StrAmount;
	CString StrMoneyLeft;
	CTime   tTime=CTime::GetCurrentTime();
	CString Date=DateToString(tTime);
	if(m_pBorrowSet.IsOpen ())
		m_pBorrowSet.Close ();
	m_pBorrowSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * From Borrow Order by bDate");
    if(m_pBorrowSet.GetRecordCount ()==0)//还没有借贷的信息,则显示一些名言
	{
		m_pBorrowSet.Close ();
		StrBorrowInfo=L"节俭持家,脑筋理财。";
		SetDlgItemText(IDC_BORROW_REMIND_STATIC,StrBorrowInfo);
	}
	else//否则,监测借贷信息
	{
		m_pBorrowSet.MoveFirst ();
		m_pBorrowSet.m_strFilter .Empty ();
		while(!m_pBorrowSet.IsEOF ())
		{
			StartDate=DateToString(m_pBorrowSet.m_bStartDate );
			EndDate=DateToString(m_pBorrowSet.m_bEndDate );
			if(StartDate<=Date&&EndDate>=Date)//如果借贷期间跨越了当天,则显示
			{
				StrAmount.Format(L"%f",m_pBorrowSet.m_bAmount);
				Length=StrAmount.GetLength ();
				StrAmount.Delete (Length-4,4);
				StrMoneyLeft.Format (L"%f",m_pBorrowSet.m_bMoneyLeft );
				Length=StrMoneyLeft.GetLength ();
				StrMoneyLeft.Delete (Length-4,4);
				//还要判断是借入,借出,还欠,还回等操作
				if((CString)m_pBorrowSet.m_bAction==L"借入")
				{
					//借入,则必须提醒
					StrBorrowInfo+=L"你于"+FormatDate(m_pBorrowSet.m_bDate) +L"从"
						+m_pBorrowSet.m_bOtherName +L"处借入"+StrAmount+L"元,有效期从"
						+FormatDate(m_pBorrowSet.m_bStartDate) +L"到"+FormatDate(m_pBorrowSet.m_bEndDate) +L"\n"; 
				}else
				    if((CString)m_pBorrowSet.m_bAction==L"借出")
					{
						//借出,则必须提醒
						StrBorrowInfo+=m_pBorrowSet.m_bOtherName +L"于"
							+FormatDate(m_pBorrowSet.m_bDate) +L"从你手中借出"+StrAmount+L"元,有效期从"
							+FormatDate(m_pBorrowSet.m_bStartDate) +L"到"+FormatDate(m_pBorrowSet.m_bEndDate) +L"\n";
					}else
						if((CString)m_pBorrowSet.m_bAction==L"还出")
						{   //还出,只有在有余额的时候要提醒
							if(m_pBorrowSet.m_bMoneyLeft !=0)
								StrBorrowInfo+=L"你于"+FormatDate(m_pBorrowSet.m_bDate) +L"还出"
									+StrAmount +L"元给"+m_pBorrowSet.m_bOtherName 
									+L"仍欠"+StrMoneyLeft +L"元\n";
						}else
						{   //还入,只有在还有余额的时候提醒
						    if(m_pBorrowSet.m_bMoneyLeft !=0)
								StrBorrowInfo+=m_pBorrowSet.m_bOtherName +L"于"+FormatDate(m_pBorrowSet.m_bDate) 
								+L"还入"+StrAmount +L"元,仍欠"+StrMoneyLeft +L"元\n";
						}

			}//if
			m_pBorrowSet.MoveNext ();
		}//while
	}//else
	m_pBorrowSet.Close ();
	SetDlgItemText(IDC_BORROW_REMIND_STATIC,StrBorrowInfo);
/////////////////////////////////////////////////////////////////////////////////
	//下面是财务报表的信息添加
	//先收入部分
	CString FinanceInfo;
	double nAllIncome=0;
	CString strAllIncome;
	if(m_pIncomeSet.IsOpen ())
		m_pIncomeSet.Close ();
	m_pIncomeSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * From Income");
	if(m_pIncomeSet.GetRecordCount ()==0)
	{
		m_pIncomeSet.Close();
	}
	else
	{
		m_pIncomeSet.MoveFirst ();
		while(!m_pIncomeSet.IsEOF ())
		{
			nAllIncome+=m_pIncomeSet.m_iAmount ;
			m_pIncomeSet.MoveNext ();
		}
		m_pIncomeSet.Close ();
		strAllIncome.Format (L"%f",nAllIncome);
		Length=strAllIncome.GetLength ();
		strAllIncome.Delete (Length-4,4);
		FinanceInfo+=L"至目前为止,您有总收入:";
		FinanceInfo+=strAllIncome;
		FinanceInfo+=L"元\n";
	}
	//再支出部分
	double nAllOutcome=0;
	CString strAllOutcome;
	if(m_pOutcomeSet.IsOpen ())
		m_pOutcomeSet.Close ();
	m_pOutcomeSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * From Outcome");
	if(m_pOutcomeSet.GetRecordCount ()==0)
	{
		m_pOutcomeSet.Close();
	}
	else
	{
		m_pOutcomeSet.MoveFirst ();
		while(!m_pOutcomeSet.IsEOF ())
		{
			nAllOutcome+=m_pOutcomeSet.m_oAmount ;
			m_pOutcomeSet.MoveNext ();
		}
		m_pOutcomeSet.Close ();
		strAllOutcome.Format (L"%f",nAllOutcome);
		Length=strAllOutcome.GetLength ();
		strAllOutcome.Delete (Length-4,4);
		FinanceInfo+=L"至目前为止,您有总支出:";
		FinanceInfo+=strAllOutcome;
		FinanceInfo+=L"元\n";
	}
	//再列出银行卡里钱的总额
	CString sCardId=L"";
	double nAllBank=0;
	CString strAllBank;
	if(m_pBankSet.IsOpen ())
		m_pBankSet.Close ();
	m_pBankSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * From Bank Order by bODate DESC,bCardId");
	if(m_pBankSet.GetRecordCount ()==0)
	{
		m_pBankSet.Close();
	}
	else
	{
		m_pBankSet.MoveFirst ();
		while(!m_pBankSet.IsEOF ())
		{
			if(sCardId==(CString)m_pBankSet.m_bCardId   )
		    {
			    m_pBankSet.MoveNext ();//若相等,则说明还是那个,则跳过
			   continue;
		     }
			sCardId=m_pBankSet.m_bCardId ;//转换
			nAllBank+=m_pBankSet.m_bLeft ;
			m_pBankSet.MoveNext ();
		}
		m_pBankSet.Close ();
		strAllBank.Format (L"%f",nAllBank);
		Length=strAllBank.GetLength ();
		strAllBank.Delete (Length-4,4);
		FinanceInfo+=L"至目前为止,您银行卡上共有金额:";
		FinanceInfo+=strAllBank;
		FinanceInfo+=L"元\n";
	}
	//再列出所有物品财产的总额
	double nAllTangible=0;
	CString strAllTangible;
	if(m_pTangibleSet.IsOpen ())
		m_pTangibleSet.Close ();
	m_pTangibleSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * From Tangible");
	if(m_pTangibleSet.GetRecordCount ()==0)
	{
		m_pTangibleSet.Close();
	}
	else
	{
		m_pTangibleSet.MoveFirst ();
		while(!m_pTangibleSet.IsEOF ())
		{
			nAllTangible+=m_pTangibleSet.m_tSum ;
			m_pTangibleSet.MoveNext ();
		}
		m_pTangibleSet.Close ();
		strAllTangible.Format (L"%f",nAllTangible);
		Length=strAllTangible.GetLength ();
		strAllTangible.Delete (Length-4,4);
		FinanceInfo+=L"至目前为止,您有物品资产总值:";
		FinanceInfo+=strAllTangible;
		FinanceInfo+=L"元\n";
	}
	//下面再列出投资总额
	double nAllInvest=0;
	CString strAllInvest;
	if(m_pInvestSet.IsOpen ())
		m_pInvestSet.Close ();
	m_pInvestSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * From Invest");
	if(m_pInvestSet.GetRecordCount ()==0)
	{
		m_pInvestSet.Close();
	}
	else
	{
		m_pInvestSet.MoveFirst ();
		while(!m_pInvestSet.IsEOF ())
		{
			nAllInvest+=m_pInvestSet.m_iSum  ;
			m_pInvestSet.MoveNext ();
		}
		m_pInvestSet.Close ();
		strAllInvest.Format (L"%f",nAllInvest);

⌨️ 快捷键说明

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