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

📄 dialogfinancequery.cpp

📁 C++的课程设计
💻 CPP
字号:
// DialogFinanceQuery.cpp : implementation file
//

#include "stdafx.h"
#include "HomeFinanceManager.h"
#include "DialogFinanceQuery.h"
#include "DBOperator.h"
#include "DialogRecord.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDialogFinanceQuery dialog


CDialogFinanceQuery::CDialogFinanceQuery(CWnd* pParent /*=NULL*/)
	: CDialog(CDialogFinanceQuery::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDialogFinanceQuery)
	m_strTotalIn = _T("");
	m_dateEnd = 0;
	m_dateStart = 0;
	//}}AFX_DATA_INIT

}


void CDialogFinanceQuery::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDialogFinanceQuery)
	DDX_Control(pDX, IDC_BTN_QUERY, m_btnQuery);
	DDX_Text(pDX, IDC_TOTALIN, m_strTotalIn);
	DDX_DateTimeCtrl(pDX, IDC_DATE_END, m_dateEnd);
	DDX_DateTimeCtrl(pDX, IDC_DATE_START, m_dateStart);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDialogFinanceQuery, CDialog)
	//{{AFX_MSG_MAP(CDialogFinanceQuery)
	ON_BN_CLICKED(IDC_BTN_QUERY, OnBtnQuery)
	ON_WM_SHOWWINDOW()
	ON_NOTIFY(NM_DBLCLK, IDC_LISTCTRL_FIANCEDATE, OnClickDBgridFinanceIn)
	ON_NOTIFY(LVN_COLUMNCLICK, IDC_LISTCTRL_FIANCEDATE, OnColumnclickDBgridFinanceIn)
	//}}AFX_MSG_MAP
	ON_WM_ERASEBKGND() 
	ON_WM_CTLCOLOR()
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDialogFinanceQuery message handlers

void CDialogFinanceQuery::OnOK( )
{

}
//-----------------------------------------------------------------------------

BOOL CDialogFinanceQuery::OnInitDialog( )
{
	CDialog::OnInitDialog();
	//显示收入dbgrid
	RECT rcClient;
	this->GetClientRect(&rcClient);
	rcClient.top += 200;
	rcClient.bottom += 90;
	
	m_dbgridFinanceIn.Create(LVS_REPORT, rcClient, this, IDC_LISTCTRL_FIANCEDATE);
	m_dbgridFinanceIn.ShowWindow(SW_SHOW);

	m_dateStart = CTime::GetCurrentTime();
	m_dateEnd = CTime::GetCurrentTime();
	
	this->UpdateData(FALSE);

	CButton* pRadio = (CButton*)GetDlgItem(IDC_ORDERBYASC);
	pRadio->SetCheck(TRUE);


	return TRUE;
	
}

//-----------------------------------------------------------------------------

BOOL CDialogFinanceQuery::OnEraseBkgnd( CDC* pDC )
{
	RECT rcClient;
	this->GetClientRect(&rcClient);
	HBRUSH hOldBrush;
	HBRUSH hBrush = ::CreateSolidBrush(RGB(213, 247, 209));
	hOldBrush = (HBRUSH)pDC->SelectObject(hBrush);
	pDC->Rectangle(&rcClient);
	pDC->SelectObject(hOldBrush);
	
	::DeleteObject(hBrush);
	return TRUE;
}


//-----------------------------------------------------------------------------


HBRUSH CDialogFinanceQuery::OnCtlColor( CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	//改变控件的颜色
	if(nCtlColor == CTLCOLOR_STATIC)
	{
		pDC->SetBkMode(TRANSPARENT);
		pDC->SetTextColor(RGB(0,0,0));
		
		LOGBRUSH  logBrush;
		logBrush.lbStyle = BS_HOLLOW;
		hbr = CreateBrushIndirect(&logBrush);
	}
	if(nCtlColor == CTLCOLOR_EDIT)
	{
		pDC->SetTextColor(RGB(255,0,0));//字体色
		//pDC->SetBkColor(RGB(170, 243, 162));
	}
	
	return hbr;
}
//-----------------------------------------------------------------------------

void CDialogFinanceQuery::OnBtnQuery() 
{
	// TODO: Add your control notification handler code here
	CString strStart;
	CString strEnd;
	
	UpdateData(TRUE);
	strStart.Format("%d-%d-%d", m_dateStart.GetYear(),
								m_dateStart.GetMonth(),
								m_dateStart.GetDay());
	strEnd.Format("%d-%d-%d", m_dateEnd.GetYear(),
								m_dateEnd.GetMonth(),
								m_dateEnd.GetDay());
	CString strTotalIn;
	gDBOperator.selectFinanceIn(strStart, strEnd, m_dbgridFinanceIn, strTotalIn);
	m_strTotalIn = strTotalIn;
	UpdateData(FALSE);
	
}
//-----------------------------------------------------------------------------

void CDialogFinanceQuery::OnShowWindow(BOOL bShow, UINT nStatus) 
{
	CDialog::OnShowWindow(bShow, nStatus);
	
	// TODO: Add your message handler code here
	OnBtnQuery();
	
}
//-----------------------------------------------------------------------------

void CDialogFinanceQuery::OnClickDBgridFinanceIn(NMHDR* pNMHDR, LRESULT* pResult)
{
	for(int i = 0; i < m_dbgridFinanceIn.GetItemCount(); i++)
	{
		if(m_dbgridFinanceIn.GetItemState(i, LVIS_SELECTED) == LVIS_SELECTED)
		{
			char strID[50];
			char strSum[50];
			char strClass[50];
			char strDate[50];
			char strOperator[50];
			char strRemark[200];
			
			m_dbgridFinanceIn.GetItemText(i, 0, strID, 50);
			m_dbgridFinanceIn.GetItemText(i, 1, strSum, 50);
			m_dbgridFinanceIn.GetItemText(i, 2, strClass, 50);
			m_dbgridFinanceIn.GetItemText(i, 3, strDate, 50);
			m_dbgridFinanceIn.GetItemText(i, 4, strOperator, 50);
			m_dbgridFinanceIn.GetItemText(i, 5, strRemark, 200);
			
			CSysDataStruct::CClassInfo ClassInfo;
			gDBOperator.getMoneyInClassInfo(ClassInfo);
			
			
			CDialogRecord DialogRecord;
			DialogRecord.setRecordInfo(strID, strSum, strOperator, strClass, strDate, strRemark, ClassInfo);
			DialogRecord.IsMoneyIn(true);
			
			DialogRecord.DoModal();
			break;
		}
	}	
	
	
	*pResult = 0;
}

//-----------------------------------------------------------------------------

void CDialogFinanceQuery::OnColumnclickDBgridFinanceIn(NMHDR* pNMHDR, LRESULT* pResult)
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	int iColumIndex = pNMListView->iSubItem;
	LVCOLUMN column;
	column.mask = LVCF_TEXT;
	char strTitle[256];
	column.pszText = strTitle;
	column.cchTextMax=256;
	int iResutl = m_dbgridFinanceIn.GetColumn(iColumIndex, &column);
	
	CString strStart;
	CString strEnd;
	
	UpdateData(TRUE);
	strStart.Format("%d-%d-%d", m_dateStart.GetYear(),
								m_dateStart.GetMonth(),
								m_dateStart.GetDay());
	strEnd.Format("%d-%d-%d",   m_dateEnd.GetYear(),
								m_dateEnd.GetMonth(),
								m_dateEnd.GetDay());
	
	CButton* pRadio = (CButton*)GetDlgItem(IDC_ORDERBYASC);
	if(pRadio->GetCheck())
	{
		gDBOperator.ReOrderFinanceIn(strStart, strEnd, m_dbgridFinanceIn, m_strTotalIn,CString(strTitle), CString("asc"));
	}
	
	pRadio = (CButton*)GetDlgItem(IDC_ORDERBYDESC);
	if(pRadio->GetCheck())
	{
		gDBOperator.ReOrderFinanceIn(strStart, strEnd, m_dbgridFinanceIn, m_strTotalIn,CString(strTitle), CString("desc"));
	}
	UpdateData(FALSE);
	
}

⌨️ 快捷键说明

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