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

📄 detqueryview.cpp

📁 个人财务管理系统,很实用的一个源码,很有参考价值,下载
💻 CPP
字号:
// DetQueryView.cpp : implementation file
//

#include "stdafx.h"
#include "FinanceMIS.h"
#include "DetQueryView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDetQueryView

IMPLEMENT_DYNCREATE(CDetQueryView, CFormView)

CDetQueryView::CDetQueryView()
	: CFormView(CDetQueryView::IDD)
{
	//{{AFX_DATA_INIT(CDetQueryView)
	m_strExpType = _T("");
	m_strInType = _T("");
	//}}AFX_DATA_INIT
}

CDetQueryView::~CDetQueryView()
{
}

void CDetQueryView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDetQueryView)
	DDX_Control(pDX, IDC_LIST_INFO, m_listInfo);
	DDX_Control(pDX, IDC_COMBO_IN, m_comboInType);
	DDX_Control(pDX, IDC_COMBO_EXP, m_comboExpType);
	DDX_CBString(pDX, IDC_COMBO_EXP, m_strExpType);
	DDX_CBString(pDX, IDC_COMBO_IN, m_strInType);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDetQueryView, CFormView)
	//{{AFX_MSG_MAP(CDetQueryView)
	ON_BN_CLICKED(IDC_BTN_IN_QUERY, OnBtnInQuery)
	ON_BN_CLICKED(IDC_BTN_EXP_QUERY, OnBtnExpQuery)
	ON_BN_CLICKED(IDC_BTN_IN_ALL, OnBtnInAll)
	ON_BN_CLICKED(IDC_BTN_EXP_ALL, OnBtnExpAll)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDetQueryView diagnostics

#ifdef _DEBUG
void CDetQueryView::AssertValid() const
{
	CFormView::AssertValid();
}

void CDetQueryView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CDetQueryView message handlers

void CDetQueryView::InitControl()
{
	//设置列表框控件扩展风格
	DWORD dwExStyle = LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES |
		LVS_EX_HEADERDRAGDROP | LVS_EX_ONECLICKACTIVATE | LVS_EX_UNDERLINEHOT;
	m_listInfo.SetExtendedStyle(dwExStyle);
	//初始收支信息列表框控件
	m_listInfo.InsertColumn(0,"日期",LVCFMT_CENTER,80);
	m_listInfo.InsertColumn(1,"收入/支出",LVCFMT_CENTER,80);
	m_listInfo.InsertColumn(2,"名称",LVCFMT_CENTER,100);
	m_listInfo.InsertColumn(3,"金额",LVCFMT_CENTER,100);
	m_listInfo.InsertColumn(4,"说明",LVCFMT_CENTER,120);
}

VOID CDetQueryView::InsertCtrlItem(CString item0,CString item1,CString item2, CString item3,CString item4)
{
	//获取当前的纪录条数.
	int nIndex = m_listInfo.GetItemCount();
	LV_ITEM lvItem;
	lvItem.mask = LVIF_TEXT ;	
	lvItem.iItem = nIndex;				//行数
	lvItem.iSubItem = 0;
	lvItem.pszText = (char*)(LPCTSTR)item0;		//第一列
	//在最后一行插入记录值.
	m_listInfo.InsertItem(&lvItem);	
	//设置该行的其他列的值.
	m_listInfo.SetItemText(nIndex,1,item1);	
	m_listInfo.SetItemText(nIndex,2,item2);	
	m_listInfo.SetItemText(nIndex,3,item3);	
	m_listInfo.SetItemText(nIndex,4,item4);	
}

void CDetQueryView::InsertCtrlData(CString sql)
{
	if(!g_adoDB.IsOpen())
		return;
	m_listInfo.DeleteAllItems();
	CDStrs ixFields;
	//获取收支信息表数据
	g_adoDB.ExecuteQuery(sql,ixFields);
	for(int i = 0 ; i < ixFields.size() ; i++)
	{
		CStrs strs = ixFields[i]; 
		InsertCtrlItem(strs[0].Left(10),strs[1]=="0"?"收入":"支出",
			strs[2],strs[3],strs[4]);
	}
}

void CDetQueryView::RefreshComboData()
{
	if(!g_adoDB.IsOpen())
	{
		AfxMessageBox("Open Database ERROR !");
		return;
	}
	m_comboInType.ResetContent();
	m_comboExpType.ResetContent();
	CDStrs InFields,ExpFields;
	//获取收入类型数据
	g_adoDB.ExecuteQuery("Select name from in_type_tab order by id",InFields);
	for(int i = 0 ; i < InFields.size() ; i++)
	{
		CStrs strs = InFields[i];
		m_comboInType.AddString(strs[0]);
	}
	//获取支出类型数据
	g_adoDB.ExecuteQuery("Select name from exp_type_tab order by id",ExpFields);
	for(int i = 0 ; i < ExpFields.size() ; i++)
	{
		CStrs strs = ExpFields[i];
		m_comboExpType.AddString(strs[0]);
	}
}

void CDetQueryView::OnDraw(CDC* pDC) 
{
	// TODO: Add your specialized code here and/or call the base class
	RefreshComboData();	
}

void CDetQueryView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	InitControl();
	RefreshComboData();	
}

void CDetQueryView::OnBtnInQuery() 
{
	// TODO: Add your control notification handler code here
	if(!g_adoDB.IsOpen())
		return;
	if(!UpdateData())
		return;
	if(m_strInType.IsEmpty())
		return;
	CString sql;
	//构造满足查询条件的SQL语句
	sql.Format("select ix_date,ix_type,ix_name,money,description " 
		"from in_exp_info_tab where ix_type = 0 "
		"and ix_name = '%s' order by ix_date",m_strInType);
	TRACE(sql);
	InsertCtrlData(sql);
}

void CDetQueryView::OnBtnExpQuery() 
{
	// TODO: Add your control notification handler code here
	if(!g_adoDB.IsOpen())
		return;
	if(!UpdateData())
		return;
	if(m_strExpType.IsEmpty())
		return;
	CString sql;
	//构造满足查询条件的SQL语句
	sql.Format("select ix_date,ix_type,ix_name,money,description " 
		"from in_exp_info_tab where ix_type = 1 "
		"and ix_name = '%s' order by ix_date",m_strExpType);
	InsertCtrlData(sql);		
}

void CDetQueryView::OnBtnInAll() 
{
	if(!g_adoDB.IsOpen())
		return;
	if(!UpdateData())
		return;
	//构造满足查询条件的SQL语句	
	CString sql = "select ix_date,ix_type,ix_name,money,description " 
		"from in_exp_info_tab where ix_type = 0 ";
	TRACE(sql);
	InsertCtrlData(sql);	
}

void CDetQueryView::OnBtnExpAll() 
{
	// TODO: Add your control notification handler code here
	if(!g_adoDB.IsOpen())
		return;
	if(!UpdateData())
		return;
	//构造满足查询条件的SQL语句	
	CString sql = "select ix_date,ix_type,ix_name,money,description " 
		"from in_exp_info_tab where ix_type = 1 ";
	InsertCtrlData(sql);		
}

⌨️ 快捷键说明

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