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

📄 financedlg.cpp

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

#include "stdafx.h"
#include "SMS.h"
#include "FinanceDlg.h"


// CFinanceDlg 对话框

IMPLEMENT_DYNAMIC(CFinanceDlg, CDialog)

CFinanceDlg::CFinanceDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CFinanceDlg::IDD, pParent)
	, m_pCashSet(&theApp.m_db )
	, m_pBorrowSet(&theApp.m_db )
{
	//显示窗口颜色
	m_backcolor=m_RGB_BkColor;
	m_brush.CreateSolidBrush(m_backcolor);
}

CFinanceDlg::~CFinanceDlg()
{
}

void CFinanceDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_FINANCE_TAB, m_Finance_TabCtrl);
}


BEGIN_MESSAGE_MAP(CFinanceDlg, CDialog)
	ON_NOTIFY(TCN_SELCHANGE, IDC_FINANCE_TAB, &CFinanceDlg::OnTcnSelchangeFinanceTab)
	ON_WM_TIMER()
	ON_WM_CLOSE()
	ON_WM_CTLCOLOR()
	ON_COMMAND(ID_FINANCE_CASH, &CFinanceDlg::OnFinanceCash)
	ON_COMMAND(ID_FINANCE_INCOME, &CFinanceDlg::OnFinanceIncome)
	ON_COMMAND(ID_FINANCE_OUTCOME, &CFinanceDlg::OnFinanceOutcome)
	ON_COMMAND(ID_FINANCE_BANK, &CFinanceDlg::OnFinanceBank)
	ON_COMMAND(ID_FINANCE_TANGIBLE, &CFinanceDlg::OnFinanceTangible)
	ON_COMMAND(ID_FINANCE_BORROW, &CFinanceDlg::OnFinanceBorrow)
	ON_COMMAND(ID_FINANCE_INVEST, &CFinanceDlg::OnFinanceInvest)
	ON_COMMAND(ID_FINANCE_TRANSFER, &CFinanceDlg::OnFinanceTransfer)
	ON_COMMAND(ID_FINANCE_PLAN, &CFinanceDlg::OnFinancePlan)
	ON_COMMAND(ID_FINANCE_CLOSE, &CFinanceDlg::OnFinanceClose)
	ON_UPDATE_COMMAND_UI(ID_FINANCE_CASH, &CFinanceDlg::OnUpdateFinanceCash)
	ON_UPDATE_COMMAND_UI(ID_FINANCE_INCOME, &CFinanceDlg::OnUpdateFinanceIncome)
	ON_UPDATE_COMMAND_UI(ID_FINANCE_OUTCOME, &CFinanceDlg::OnUpdateFinanceOutcome)
	ON_UPDATE_COMMAND_UI(ID_FINANCE_BANK, &CFinanceDlg::OnUpdateFinanceBank)
	ON_UPDATE_COMMAND_UI(ID_FINANCE_TANGIBLE, &CFinanceDlg::OnUpdateFinanceTangible)
	ON_UPDATE_COMMAND_UI(ID_FINANCE_BORROW, &CFinanceDlg::OnUpdateFinanceBorrow)
	ON_UPDATE_COMMAND_UI(ID_FINANCE_INVEST, &CFinanceDlg::OnUpdateFinanceInvest)
	ON_UPDATE_COMMAND_UI(ID_FINANCE_TRANSFER, &CFinanceDlg::OnUpdateFinanceTransfer)
	ON_UPDATE_COMMAND_UI(ID_FINANCE_PLAN, &CFinanceDlg::OnUpdateFinancePlan)
	ON_WM_CONTEXTMENU()
    ON_WM_INITMENUPOPUP()
END_MESSAGE_MAP()


// CFinanceDlg 消息处理程序

BOOL CFinanceDlg::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);
	//借贷信息添加完毕

	TCITEM item;
	item.mask =TCIF_TEXT;
    CRect r;
	m_Finance_TabCtrl.GetClientRect (&r);
	item.pszText =_T("  现  金  ");
	m_Finance_TabCtrl.InsertItem (0,&item);
	item.pszText =_T("  收  入  ");
	m_Finance_TabCtrl.InsertItem (1,&item);
	item.pszText =_T("  支  出  ");
	m_Finance_TabCtrl.InsertItem (2,&item);
	item.pszText =_T("  银  行  ");
	m_Finance_TabCtrl.InsertItem (3,&item);
	item.pszText =_T("  物  品  ");
	m_Finance_TabCtrl.InsertItem (4,&item);
	item.pszText =_T("  借  贷  ");
	m_Finance_TabCtrl.InsertItem (5,&item);
	item.pszText =_T("  投  资  ");
	m_Finance_TabCtrl.InsertItem (6,&item);
	item.pszText =_T("  转  让  ");
	m_Finance_TabCtrl.InsertItem (7,&item);
	item.pszText =_T("  计  划  ");
	m_Finance_TabCtrl.InsertItem (8,&item);
	//生成各个子对话框
	m_FinanceCashDlg.Create (IDD_FINANCE_CASH_DLG,&m_Finance_TabCtrl);
	m_FinanceIncomeDlg.Create (IDD_FINANCE_INCOME_DLG,&m_Finance_TabCtrl);
	m_FinanceOutcomeDlg.Create (IDD_FINANCE_OUTCOME_DLG,&m_Finance_TabCtrl);
    m_FinanceBankDlg.Create (IDD_FINANCE_BANK_DLG,&m_Finance_TabCtrl);
	m_FinanceTangibleDlg.Create (IDD_FINANCE_TANGIBLE_DLG,&m_Finance_TabCtrl);
	m_FinanceBorrowDlg.Create (IDD_FINANCE_BORROW_DLG,&m_Finance_TabCtrl);
	m_FinanceInvestDlg.Create (IDD_FINANCE_INVEST_DLG,&m_Finance_TabCtrl);
	m_FinanceTransferDlg.Create (IDD_FINANCE_TRANSFER_DLG,&m_Finance_TabCtrl);
	m_FinancePlanDlg.Create (IDD_FINANCE_PLAN_DLG,&m_Finance_TabCtrl);
	//显示各个子对话框
	m_FinanceCashDlg.SetWindowPos (NULL,2,22,r.right -5, r.bottom -25,SWP_SHOWWINDOW);
	m_FinanceIncomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	m_FinanceOutcomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	m_FinanceBankDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	m_FinanceTangibleDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	m_FinanceBorrowDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	m_FinanceInvestDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	m_FinanceTransferDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	m_FinancePlanDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
    EndWaitCursor();
	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

void CFinanceDlg::OnTcnSelchangeFinanceTab(NMHDR *pNMHDR, LRESULT *pResult)
{
	// TODO: 在此添加控件通知处理程序代码
	CRect r;
	m_Finance_TabCtrl.GetClientRect (&r);
	switch(m_Finance_TabCtrl.GetCurSel ())
	{
	case 0:
		m_FinanceCashDlg.SetWindowPos (NULL,2,22,r.right -5, r.bottom -25,SWP_SHOWWINDOW);
	    m_FinanceIncomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceOutcomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceBankDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceTangibleDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceBorrowDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceInvestDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceTransferDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinancePlanDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
        break;
	case 1:
		m_FinanceCashDlg.SetWindowPos (NULL,2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceIncomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_SHOWWINDOW);
	    m_FinanceOutcomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceBankDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceTangibleDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceBorrowDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceInvestDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceTransferDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinancePlanDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
        break;
	case 2:
		m_FinanceCashDlg.SetWindowPos (NULL,2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceIncomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceOutcomeDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_SHOWWINDOW);
	    m_FinanceBankDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceTangibleDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceBorrowDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceInvestDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);
	    m_FinanceTransferDlg.SetWindowPos (NULL, 2,22,r.right -5, r.bottom -25,SWP_HIDEWINDOW);

⌨️ 快捷键说明

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