📄 listdlg.cpp
字号:
// 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 + -