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

📄 listdlg.cpp

📁 Family Financial Management System是一个特别方便的理财系统。功能方便实用。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// ListDlg.cpp : implementation file
//

#include "stdafx.h"
#include "FFManage.h"
#include "ListDlg.h"
#include "AddDlg.h"
#include "BankBookDlg.h"


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

/////////////////////////////////////////////////////////////////////////////
// CListDlg dialog


extern CRecordset g_Recordset;	
extern CDatabase  g_Database;
extern int        g_iType;


extern int Encrypt(const CString passwd, const char key, CString & resPasswd);
extern int Decrypt(const CString passwd, const char key, CString & resPasswd);


CListDlg::CListDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CListDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CListDlg)
	m_strAllMoney = _T("");
	m_strDateInfo = _T("");
	//}}AFX_DATA_INIT
	
	 m_bBlueType   = false;
	 m_iSel        = -1;

	 m_strDate1    = _T("");
	 m_strDate2    = _T("");
	 m_strDAC      = _T("");
	 m_strSQL      = _T("");
	 m_strTypeValue= _T("");
	 m_strBankBookID  = _T("");
}


void CListDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CListDlg)
	DDX_Control(pDX, IDC_LIST, m_ListCtrl);
	DDX_Text(pDX, IDC_STA_AllMoney, m_strAllMoney);
	DDX_Text(pDX, IDC_STA_Date, m_strDateInfo);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CListDlg, CDialog)
	//{{AFX_MSG_MAP(CListDlg)
	ON_BN_CLICKED(IDC_BTN_MOD, OnBtnMod)
	ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST, OnItemchangedList)
	ON_BN_CLICKED(IDC_BTN_Del, OnBTNDel)
	ON_BN_CLICKED(IDC_BTN_Add, OnBTNAdd)
	ON_BN_CLICKED(IDC_BTN_List, OnBTNList)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST, OnDblclkList)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CListDlg message handlers

BOOL CListDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here

	m_ListCtrl.SetExtendedStyle( LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_ListCtrl.SetTextBkColor(RGB(255,255,212)); 
	m_ListCtrl.SetBkColor( RGB(255,255,212));
	m_ListCtrl.SetTextColor(RGB(0,0,0));

//	GetDlgItem(IDC_BTN_Add)->ShowWindow(SW_HIDE );
	GetDlgItem(IDC_BTN_List)->ShowWindow(SW_HIDE );

	int i = 0;
	switch(g_iType)
	{
	case TYPE_Out:
		m_strTableName = "TOut";
		SetWindowText("“开支”记录");
		
		i = 0;
		m_ListCtrl.InsertColumn(i++, "",  LVCFMT_LEFT,0);	
		m_ListCtrl.InsertColumn(i++, " 日期",  LVCFMT_CENTER,100);	
		m_ListCtrl.InsertColumn(i++, " 种类",  LVCFMT_LEFT,70);	
		m_ListCtrl.InsertColumn(i++, "金额  ",LVCFMT_RIGHT,70);	
		m_ListCtrl.InsertColumn(i++, "备注",LVCFMT_LEFT,250);	
		break;
	case TYPE_Event:
		m_strTableName = "TEvent";	
		SetWindowText("“记事”记录");

		i = 0;
		m_ListCtrl.InsertColumn(i++, "",  LVCFMT_LEFT,0);	
		m_ListCtrl.InsertColumn(i++, " 日期",  LVCFMT_CENTER,100);	
		m_ListCtrl.InsertColumn(i++, " 种类",  LVCFMT_LEFT,70);	
		m_ListCtrl.InsertColumn(i++, "备注",LVCFMT_LEFT,260);
		break;
	case TYPE_In:
		m_strTableName = "TIn";
		SetWindowText("“收入”记录");

		i = 0;
		m_ListCtrl.InsertColumn(i++, "",  LVCFMT_LEFT,0);	
		m_ListCtrl.InsertColumn(i++, " 日期",  LVCFMT_CENTER,100);	
		m_ListCtrl.InsertColumn(i++, " 种类",  LVCFMT_LEFT,70);	
		m_ListCtrl.InsertColumn(i++, "金额  ",LVCFMT_RIGHT,70);	
		m_ListCtrl.InsertColumn(i++, "备注",LVCFMT_LEFT,250);
		break;
	case TYPE_BankBook:
		m_strTableName = "TBankBook";
		SetWindowText("银行帐号、卡号列表");
		GetDlgItem(IDC_BTN_Add)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_BTN_List)->ShowWindow(SW_SHOW);	
		
		i = 0;
		m_ListCtrl.InsertColumn(i++, "",  LVCFMT_LEFT,0);	
		m_ListCtrl.InsertColumn(i++, "银行",LVCFMT_LEFT,100);	
		m_ListCtrl.InsertColumn(i++, "帐号",LVCFMT_LEFT,150);	
		m_ListCtrl.InsertColumn(i++, "卡号",LVCFMT_LEFT,150);	
		m_ListCtrl.InsertColumn(i++, "户名",LVCFMT_LEFT,100);	
		m_ListCtrl.InsertColumn(i++, "存折号码",LVCFMT_LEFT,100);	
		m_ListCtrl.InsertColumn(i++, "币种",LVCFMT_LEFT,100);	
		m_ListCtrl.InsertColumn(i++, "开户日期",LVCFMT_LEFT,100);	
		m_ListCtrl.InsertColumn(i++, "开户所名",LVCFMT_LEFT,200);	
		m_ListCtrl.InsertColumn(i++, "联系电话",LVCFMT_LEFT,100);	
		m_ListCtrl.InsertColumn(i++, "余额(元)",LVCFMT_LEFT,100);	
		m_ListCtrl.InsertColumn(i++, "备注",LVCFMT_LEFT,160);
		break;
	case TYPE_Save:
		m_strTableName = "TSave";	
		SetWindowText("存取款明细列表");
		GetDlgItem(IDC_BTN_MOD)->ShowWindow(SW_HIDE );
		GetDlgItem(IDC_BTN_Add)->ShowWindow(SW_SHOW);
		GetDlgItem(IDC_BTN_Del)->ShowWindow(SW_SHOW);
		
		i = 0;
		m_ListCtrl.InsertColumn(i++, "",LVCFMT_LEFT,0);	
		m_ListCtrl.InsertColumn(i++, "",LVCFMT_LEFT,0);	
		m_ListCtrl.InsertColumn(i++, "日期",LVCFMT_LEFT,100);	
		m_ListCtrl.InsertColumn(i++, "支取",LVCFMT_LEFT,80);	
		m_ListCtrl.InsertColumn(i++, "存入",LVCFMT_LEFT,80);	
		m_ListCtrl.InsertColumn(i++, "余额",LVCFMT_LEFT,80);	
		m_ListCtrl.InsertColumn(i++, "备注",LVCFMT_LEFT,100);	

		break;
	case TYPE_Dac:
		m_strTableName = "TDac";	
		SetWindowText("“借贷”记录");

		i = 0;
		m_ListCtrl.InsertColumn(i++, "借贷",  LVCFMT_LEFT,40);	
		m_ListCtrl.InsertColumn(i++, "",  LVCFMT_LEFT,0);	
		m_ListCtrl.InsertColumn(i++, " 日期",  LVCFMT_CENTER,100);	
		m_ListCtrl.InsertColumn(i++, " 对方",  LVCFMT_LEFT,80);			
		m_ListCtrl.InsertColumn(i++, "金额  ",LVCFMT_RIGHT,100);	
		m_ListCtrl.InsertColumn(i++, "备注",LVCFMT_LEFT,160);
		
		m_ImageList.Create(16,16,TRUE,2,2);	
		m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_Debit));
		m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_Credit));
		m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_Clear));
	
		m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);


		break;
	default:
		m_strSQL.Empty();	
		break;
	}

	InitSQL();	
	AddDataIntoCtrl();

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CListDlg::AddDataIntoCtrl()
{	
	m_ListCtrl.DeleteAllItems();
	if(m_strSQL.IsEmpty())
	{
		m_strAllMoney = "****** 查询语句为空! 请重新查询! ******";
		UpdateData(FALSE);
		return;
	}
	
//	AfxMessageBox(m_strSQL);
	try
	{
		if(g_Recordset.IsOpen())g_Recordset.Close();
		g_Recordset.Open(CRecordset::forwardOnly,m_strSQL,CRecordset::readOnly);
	}
	catch (...)
	{
		g_Recordset.Close();
		m_strAllMoney = "****** 查询语句出错! ******" + m_strSQL;
		UpdateData(FALSE);
		return;
	}
	
	CString strTemp;
	CString strTemp2;
	int   nItem    = 0;
	short nSubItem = 0;
	short nCount   = g_Recordset.GetODBCFieldCount();
	switch(g_iType)
	{
	case TYPE_Dac:
		while( !g_Recordset.IsEOF() )
		{
			g_Recordset.GetFieldValue((short)0,strTemp);
			if(strTemp == "借")
			{
				m_ListCtrl.InsertItem(nItem, strTemp, 0);
			}
			else if(strTemp == "贷")
			{
				m_ListCtrl.InsertItem(nItem, strTemp, 1);
			}	
			else if(strTemp == "清")
			{
				m_ListCtrl.InsertItem(nItem, strTemp,2);
			}
			
			for(nSubItem = 1; nSubItem < nCount; nSubItem++)
			{
				g_Recordset.GetFieldValue(nSubItem, strTemp);
				strTemp.TrimRight();
				m_ListCtrl.SetItemText(nItem, nSubItem, strTemp);
			}	
			g_Recordset.MoveNext();	
			nItem++;
		}
		break;
	case TYPE_BankBook:
		while( !g_Recordset.IsEOF() )
		{
			g_Recordset.GetFieldValue((short)0, strTemp);
			m_ListCtrl.InsertItem(nItem,strTemp);
			for(nSubItem = 1; nSubItem < nCount - 1; nSubItem++)
			{
				g_Recordset.GetFieldValue(nSubItem, strTemp);
				strTemp.TrimRight();
				Decrypt(strTemp,PWDKEY,strTemp2);
				m_ListCtrl.SetItemText(nItem, nSubItem, strTemp2);
			}	
			g_Recordset.MoveNext();	
			nItem++;
		}
		break;
	case TYPE_Save:
		while( !g_Recordset.IsEOF() )
		{
			m_ListCtrl.InsertItem(nItem, "");
			for(nSubItem = 0; nSubItem < nCount; nSubItem++)
			{
				g_Recordset.GetFieldValue(nSubItem, strTemp);
				strTemp.TrimRight();
				if(strTemp == ".00")strTemp = "";
				m_ListCtrl.SetItemText(nItem, nSubItem, strTemp);
			}	
			g_Recordset.MoveNext();	
			nItem++;
		}	
		if(nItem > 0)
		{
			m_strDateLimit = m_ListCtrl.GetItemText(nItem - 1,2);
		}	
		break;
	default:
		while( !g_Recordset.IsEOF() )
		{
			m_ListCtrl.InsertItem(nItem, "");
			for(nSubItem = 0; nSubItem < nCount; nSubItem++)
			{
				g_Recordset.GetFieldValue(nSubItem, strTemp);
				strTemp.TrimRight();
				m_ListCtrl.SetItemText(nItem, nSubItem, strTemp);
			}	
			g_Recordset.MoveNext();	
			nItem++;
		}
	}
	
	g_Recordset.Close();

	if((g_iType == TYPE_Out)||(g_iType == TYPE_In)||(g_iType == TYPE_Dac))
	{
		CString strSQL;
		strSQL = m_strSQL;
		strSQL.Replace("*", "Sum(FMoney)");
		strSQL.TrimRight(" Order By FDate");
	//	AfxMessageBox(strSQL);
		try
		{
			strTemp.Empty();
			g_Recordset.Open(CRecordset::forwardOnly,strSQL,CRecordset::readOnly);
			if(!g_Recordset.IsEOF())
			{
				g_Recordset.GetFieldValue((short)0, strTemp);
			}
			if (strTemp.IsEmpty())
			{
				m_strAllMoney = "合计金额:0.00(元)";
			} 
			else
			{
				m_strAllMoney.Format("合计金额:%s (元)",strTemp);
			}			
		}
		catch (...)
		{
			g_Recordset.Close();
			strTemp.Format("错误!   %s",strSQL);
			AfxMessageBox(strTemp);
		}
		g_Recordset.Close();
		
	}
	UpdateData(FALSE);
}

⌨️ 快捷键说明

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