📄 financebankdlg.cpp
字号:
// FinanceBankDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "SMS.h"
#include "FinanceBankDlg.h"
// CFinanceBankDlg 对话框
IMPLEMENT_DYNAMIC(CFinanceBankDlg, CDialog)
CFinanceBankDlg::CFinanceBankDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFinanceBankDlg::IDD, pParent)
, m_pSet(&theApp.m_db )
, m_pCashSet(&theApp.m_db)
, m_iBankAmount(0)
{
//显示窗口颜色
m_backcolor=m_RGB_BkColor;
m_brush.CreateSolidBrush(m_backcolor);
m_bItemClick=false;
}
CFinanceBankDlg::~CFinanceBankDlg()
{
}
void CFinanceBankDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_FINANCE_BANK_LIST, m_cBankListCtrl);
DDX_Text(pDX, IDC_BANK_AMOUNT_STATIC, m_iBankAmount);
DDX_Control(pDX, IDC_FINANCE_BANK_DELETE_BT, m_cDeleteBt);
DDX_Control(pDX, IDC_FINANCE_BANK_UPDATE_BT, m_cUpdateBt);
DDX_Control(pDX, IDC_FINANCE_BANK_PRINT_BT, m_cPrintBt);
}
BEGIN_MESSAGE_MAP(CFinanceBankDlg, CDialog)
ON_NOTIFY(HDN_ITEMCLICK, 0, &CFinanceBankDlg::OnHdnItemclickFinanceBankList)
ON_BN_CLICKED(IDC_FINANCE_BANK_ALL_BT, &CFinanceBankDlg::OnBnClickedFinanceBankAllBt)
ON_BN_CLICKED(IDC_FINANCE_BANK_SEARCH_BT, &CFinanceBankDlg::OnBnClickedFinanceBankSearchBt)
ON_BN_CLICKED(IDC_BANK_KIND_BT, &CFinanceBankDlg::OnBnClickedBankKindBt)
ON_BN_CLICKED(IDC_FINANCE_BANK_ADD_BT, &CFinanceBankDlg::OnBnClickedFinanceBankAddBt)
ON_BN_CLICKED(IDC_FINANCE_BANK_UPDATE_BT, &CFinanceBankDlg::OnBnClickedFinanceBankUpdateBt)
ON_BN_CLICKED(IDC_FINANCE_BANK_DELETE_BT, &CFinanceBankDlg::OnBnClickedFinanceBankDeleteBt)
ON_WM_QUERYDRAGICON()//打印
ON_BN_CLICKED(IDC_FINANCE_BANK_PRINT_BT, &CFinanceBankDlg::OnBnClickedFinanceBankPrintBt)
ON_WM_CTLCOLOR()
ON_WM_CLOSE()
ON_WM_CONTEXTMENU()
ON_WM_TIMER()
ON_COMMAND(ID_BANK_ALL, &CFinanceBankDlg::OnBankAll)
ON_COMMAND(ID_BANK_KIND, &CFinanceBankDlg::OnBankKind)
ON_COMMAND(ID_BANK_ADD, &CFinanceBankDlg::OnBankAdd)
ON_COMMAND(ID_BANK_UPDATE, &CFinanceBankDlg::OnBankUpdate)
ON_COMMAND(ID_BANK_DELETE, &CFinanceBankDlg::OnBankDelete)
ON_COMMAND(ID_BANK_SEARCH, &CFinanceBankDlg::OnBankSearch)
ON_COMMAND(ID_BANK_PRINT, &CFinanceBankDlg::OnBankPrint)
ON_UPDATE_COMMAND_UI(ID_BANK_UPDATE, &CFinanceBankDlg::OnUpdateBankUpdate )
ON_UPDATE_COMMAND_UI(ID_BANK_DELETE, &CFinanceBankDlg::OnUpdateBankDelete )
ON_UPDATE_COMMAND_UI(ID_BANK_PRINT, &CFinanceBankDlg::OnUpdateBankPrint )
ON_WM_INITMENUPOPUP()
END_MESSAGE_MAP()
// CFinanceBankDlg 消息处理程序
void CFinanceBankDlg::OnHdnItemclickFinanceBankList(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMHEADER phdr = reinterpret_cast<LPNMHEADER>(pNMHDR);
// TODO: 在此添加控件通知处理程序代码
BeginWaitCursor();
CDataClass DataClass;
int nCount=m_cBankListCtrl.GetItemCount ();//列表中的个数
if(nCount==0)
{
EndWaitCursor();
return ;
}
DataClass.Init (nCount);//初始化类对象
for(int i=0; i<nCount; i++)
{
DataClass.m_Data [i].m_sCol_1 =m_cBankListCtrl.GetItemText (i,0);
DataClass.m_Data [i].m_sCol_2 =m_cBankListCtrl.GetItemText (i,1);
DataClass.m_Data [i].m_sCol_3 =m_cBankListCtrl.GetItemText (i,2);
DataClass.m_Data [i].m_sCol_4 =m_cBankListCtrl.GetItemText (i,3);
DataClass.m_Data [i].m_sCol_5 =m_cBankListCtrl.GetItemText (i,4);
DataClass.m_Data [i].m_sCol_6 =m_cBankListCtrl.GetItemText (i,5);
DataClass.m_Data [i].m_sCol_7 =m_cBankListCtrl.GetItemText (i,6);
DataClass.m_Data [i].m_sCol_8 =m_cBankListCtrl.GetItemText (i,7);
DataClass.m_Data [i].m_sId =m_cBankListCtrl.GetItemText (i,8);
}//初始化完毕
m_cBankListCtrl.DeleteAllItems ();
//现在排序
int nSelectCol=phdr->iItem ;
switch(nSelectCol)
{
case 0:
DataClass.SortDataByCol_1 (m_bSortUp,0);
break;
case 1:
DataClass.SortDataByCol_2 (m_bSortUp,0);
break;
case 2:
DataClass.SortDataByCol_3 (m_bSortUp,2);
break;
case 3:
DataClass.SortDataByCol_4 (m_bSortUp,2);
break;
case 4:
DataClass.SortDataByCol_5 (m_bSortUp,2);
break;
case 5:
DataClass.SortDataByCol_6 (m_bSortUp,1);
break;
case 6:
DataClass.SortDataByCol_7 (m_bSortUp,1);
break;
case 7:
DataClass.SortDataByCol_8 (m_bSortUp,0);
break;
default:break;
}
//现在把排好序的放回列表
//先删除
for(int j=0; j<nCount; j++)
{
m_cBankListCtrl.InsertItem(j,DataClass.m_Data [j].m_sCol_1 ,0);
m_cBankListCtrl.SetItemText (j,1,DataClass.m_Data [j].m_sCol_2 );
m_cBankListCtrl.SetItemText (j,2,DataClass.m_Data [j].m_sCol_3 );
m_cBankListCtrl.SetItemText (j,3,DataClass.m_Data [j].m_sCol_4 );
m_cBankListCtrl.SetItemText (j,4,DataClass.m_Data [j].m_sCol_5 );
m_cBankListCtrl.SetItemText (j,5,DataClass.m_Data [j].m_sCol_6 );
m_cBankListCtrl.SetItemText (j,6,DataClass.m_Data [j].m_sCol_7 );
m_cBankListCtrl.SetItemText (j,7,DataClass.m_Data [j].m_sCol_8 );
m_cBankListCtrl.SetItemText (j,8,DataClass.m_Data [j].m_sId );
}
*pResult = 0;
if(m_bSortUp)
m_bSortUp=false;
else
m_bSortUp=true;
EndWaitCursor();
}
void CFinanceBankDlg::ViewAll()
{
BeginWaitCursor();
CString s;
int Length;
m_cBankListCtrl.DeleteAllItems ();
if(m_pSet.IsOpen ())
m_pSet.Close ();
m_pSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * from Bank order by bODate");
m_pSet.m_strFilter .Empty ();
int count;
count=m_pSet.GetRecordCount ();
if(count==0)//如果该数据表为空,则不用显示
{
m_pSet.Close ();
EndWaitCursor();
return ;
}
m_pSet.MoveFirst ();
int i=0;
while (!m_pSet.IsEOF ())
{
m_cBankListCtrl.InsertItem(i,m_pSet.m_bCardId ,0);
if(m_pSet.m_bAction ==true)
m_cBankListCtrl.SetItemText (i,1,L"存");
else
m_cBankListCtrl.SetItemText (i,1,L"取");
s.Format (L"%f",m_pSet.m_bLastLeft );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cBankListCtrl.SetItemText (i,2,s );
s.Format (L"%f",m_pSet.m_bAccount );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cBankListCtrl.SetItemText (i,3,s);
s.Format (L"%f",m_pSet.m_bLeft );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cBankListCtrl.SetItemText (i,4,s);
m_cBankListCtrl.SetItemText (i,5,FormatDate(m_pSet.m_bODate ) );
m_cBankListCtrl.SetItemText (i,6,FormatDate(m_pSet.m_bRDate ) );
m_cBankListCtrl.SetItemText (i,7,m_pSet.m_bRemark );
s.Format (L"%d",m_pSet.m_bId );
m_cBankListCtrl.SetItemText (i,8,s);
i++;
m_pSet.MoveNext ();
}
m_pSet.Close ();
//现在在右边显示个数
m_iBankAmount=i;
s.Format (L"%d",m_iBankAmount);
SetDlgItemText(IDC_BANK_AMOUNT_STATIC,s);//显示
EndWaitCursor();
}
void CFinanceBankDlg::OnBnClickedFinanceBankAllBt()
{
// TODO: 在此添加控件通知处理程序代码
ViewAll();
}
void CFinanceBankDlg::Search()
{
BeginWaitCursor();
int i=0;
int Length;
CString s;
CString SearchTime;
CString ODate;
CString str;
CFinanceBankSearchDlg dlg;
if(dlg.DoModal ()==IDOK)
{
m_cBankListCtrl.DeleteAllItems ();
switch(dlg.m_iItem )
{
case 0:
case 1:
if(m_pSet.IsOpen ())
m_pSet.Close ();
str="Select * from Bank where ";
if(dlg.m_iItem==0)
str+="bCardId";
else
str+="bAccount";
str+=" like '%";
str+=dlg.m_sKeyWord ;
str+="%' order by bODate";
m_pSet.Open (AFX_DB_USE_DEFAULT_TYPE,str);
m_pSet.m_strFilter .Empty ();
m_pSet.Requery ();
if(m_pSet.IsEOF ())
{
m_iBankAmount=i;
s.Format (L"%d",m_iBankAmount);
SetDlgItemText(IDC_BANK_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
else
{
if(m_pSet.GetRecordCount ()==0)
{
m_iBankAmount=i;
s.Format (L"%d",m_iBankAmount);
SetDlgItemText(IDC_BANK_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
m_pSet.MoveFirst ();
while (!m_pSet.IsEOF ())
{
m_cBankListCtrl.InsertItem(i,m_pSet.m_bCardId ,0);
if(m_pSet.m_bAction ==true)
m_cBankListCtrl.SetItemText (i,1,L"存");
else
m_cBankListCtrl.SetItemText (i,1,L"取");
s.Format (L"%f",m_pSet.m_bLastLeft );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cBankListCtrl.SetItemText (i,2,s );
s.Format (L"%f",m_pSet.m_bAccount );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cBankListCtrl.SetItemText (i,3,s);
s.Format (L"%f",m_pSet.m_bLeft );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cBankListCtrl.SetItemText (i,4,s);
m_cBankListCtrl.SetItemText (i,5,FormatDate(m_pSet.m_bODate ) );
m_cBankListCtrl.SetItemText (i,6,FormatDate(m_pSet.m_bRDate ) );
m_cBankListCtrl.SetItemText (i,7,m_pSet.m_bRemark );
s.Format (L"%d",m_pSet.m_bId );
m_cBankListCtrl.SetItemText (i,8,s);
i++;
m_pSet.MoveNext ();
}
}
m_pSet.Close ();
break;
case 2:
SearchTime=DateToString(dlg.m_tSearchDate );
if(m_pSet.IsOpen ())
m_pSet.Close ();
m_pSet.Open ();
m_pSet.m_strFilter .Empty ();
m_pSet.Requery ();
if(m_pSet.GetRecordCount ()==0)
{
m_iBankAmount=i;
s.Format (L"%d",m_iBankAmount);
SetDlgItemText(IDC_BANK_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
m_pSet.MoveFirst ();
while (!m_pSet.IsEOF ())
{
//在这里来判断可以轻松地跳过CTime与CString的差别
ODate=DateToString(m_pSet.m_bODate );
if(ODate==SearchTime)
{
m_cBankListCtrl.InsertItem(i,m_pSet.m_bCardId ,0);
if(m_pSet.m_bAction ==true)
m_cBankListCtrl.SetItemText (i,1,L"存");
else
m_cBankListCtrl.SetItemText (i,1,L"取");
s.Format (L"%f",m_pSet.m_bLastLeft );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cBankListCtrl.SetItemText (i,2,s );
s.Format (L"%f",m_pSet.m_bAccount );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cBankListCtrl.SetItemText (i,3,s);
s.Format (L"%f",m_pSet.m_bLeft );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cBankListCtrl.SetItemText (i,4,s);
m_cBankListCtrl.SetItemText (i,5,FormatDate(m_pSet.m_bODate ) );
m_cBankListCtrl.SetItemText (i,6,FormatDate(m_pSet.m_bRDate ) );
m_cBankListCtrl.SetItemText (i,7,m_pSet.m_bRemark );
s.Format (L"%d",m_pSet.m_bId );
m_cBankListCtrl.SetItemText (i,8,s);
i++;
}
m_pSet.MoveNext ();
}
m_pSet.Close ();
break;//case 2
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -