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

📄 detqueryview.cpp

📁 一个用MFC编写的家庭财务管理系统.采用了Sqlserver数据库.压缩包中已包括了所需的数据库文件.可直接附加到SQL服务器.
💻 CPP
字号:
// DetQueryView.cpp : implementation file
//

#include "stdafx.h"
#include "FinaceMIS.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_strInType = _T("");
	m_strExpType = _T("");
	//}}AFX_DATA_INIT
}

CDetQueryView::~CDetQueryView()
{
}

void CDetQueryView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDetQueryView)
	DDX_Control(pDX, IDC_COMBO_EXP, m_comboExpType);
	DDX_Control(pDX, IDC_COMBO_IN, m_comboInType);
	DDX_Control(pDX, IDC_LIST_INFO, m_listInfo);
	DDX_CBString(pDX, IDC_COMBO_IN, m_strInType);
	DDX_CBString(pDX, IDC_COMBO_EXP, m_strExpType);
	//}}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_IN_ALL, OnBtnInAll)
	ON_BN_CLICKED(IDC_BTN_EXP_QUERY, OnBtnExpQuery)
	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::OnBtnInQuery() 
{
	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::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::OnBtnExpQuery() 
{
	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::OnBtnExpAll() 
{
	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);
	
}

void CDetQueryView::RefreshComboData()
{
	if(!g_adoDB.IsOpen())
		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(i=0;i<ExpFields.size();i++)
	{
		CStrs strs=ExpFields[i];
		m_comboExpType.AddString(strs[0]);
	}

}

void CDetQueryView::OnDraw(CDC* pDC) 
{
	RefreshComboData();	
	
}

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::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	InitControl();	
}

⌨️ 快捷键说明

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