📄 financetransferdlg.cpp
字号:
// FinanceTransferDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "SMS.h"
#include "FinanceTransferDlg.h"
// CFinanceTransferDlg 对话框
IMPLEMENT_DYNAMIC(CFinanceTransferDlg, CDialog)
CFinanceTransferDlg::CFinanceTransferDlg(CWnd* pParent /*=NULL*/)
: CDialog(CFinanceTransferDlg::IDD, pParent)
, m_iTransferAmount(0)
, m_pSet(&theApp.m_db )
{
//显示窗口颜色
m_backcolor=m_RGB_BkColor;
m_brush.CreateSolidBrush(m_backcolor);
m_bItemClick=false;
}
CFinanceTransferDlg::~CFinanceTransferDlg()
{
}
void CFinanceTransferDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_FINANCE_TRANSFER_LIST, m_cTransferListCtrl);
DDX_Text(pDX, IDC_TRANSFER_AMOUNT_STATIC, m_iTransferAmount);
DDX_Control(pDX, IDC_FINANCE_TRANSFER_DELETE_BT, m_cDeleteBt);
DDX_Control(pDX, IDC_FINANCE_TRANSFER_PRINT_BT, m_cPrintBt);
}
BEGIN_MESSAGE_MAP(CFinanceTransferDlg, CDialog)
ON_BN_CLICKED(IDC_FINANCE_TRANSFER_ALL_BT, &CFinanceTransferDlg::OnBnClickedFinanceTransferAllBt)
ON_BN_CLICKED(IDC_TRANSFER_KIND_BT, &CFinanceTransferDlg::OnBnClickedTransferKindBt)
ON_BN_CLICKED(IDC_FINANCE_TRANSFER_DELETE_BT, &CFinanceTransferDlg::OnBnClickedFinanceTransferDeleteBt)
ON_BN_CLICKED(IDC_FINANCE_TRANSFER_SEARCH_BT, &CFinanceTransferDlg::OnBnClickedFinanceTransferSearchBt)
ON_WM_QUERYDRAGICON()//打印
ON_BN_CLICKED(IDC_FINANCE_TRANSFER_PRINT_BT, &CFinanceTransferDlg::OnBnClickedFinanceTransferPrintBt)
ON_WM_CTLCOLOR()
ON_NOTIFY(HDN_ITEMCLICK, 0, &CFinanceTransferDlg::OnHdnItemclickFinanceTransferList)
ON_WM_CLOSE()
ON_WM_CONTEXTMENU()
ON_WM_TIMER()
ON_COMMAND(ID_TRANSFER_ALL, &CFinanceTransferDlg::OnTransferAll)
ON_COMMAND(ID_TRANSFER_KIND, &CFinanceTransferDlg::OnTransferKind)
ON_COMMAND(ID_TRANSFER_DELETE, &CFinanceTransferDlg::OnTransferDelete)
ON_COMMAND(ID_TRANSFER_SEARCH, &CFinanceTransferDlg::OnTransferSearch)
ON_COMMAND(ID_TRANSFER_PRINT, &CFinanceTransferDlg::OnTransferPrint)
ON_UPDATE_COMMAND_UI(ID_TRANSFER_DELETE, &CFinanceTransferDlg::OnUpdateTransferDelete )
ON_WM_INITMENUPOPUP()
END_MESSAGE_MAP()
// CFinanceTransferDlg 消息处理程序
void CFinanceTransferDlg::ViewAll()
{
BeginWaitCursor();
CString s;
int Length;
m_cTransferListCtrl.DeleteAllItems ();
if(m_pSet.IsOpen ())
m_pSet.Close ();
m_pSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * from Transfer order by tDate");
m_pSet.m_strFilter .Empty ();
int count;
count=m_pSet.GetRecordCount ();
if(count==0)//如果该数据表为空,则不用显示
{
EndWaitCursor();
m_pSet.Close ();
return ;
}
m_pSet.MoveFirst ();
int i=0;
while (!m_pSet.IsEOF ())
{
m_cTransferListCtrl.InsertItem(i,m_pSet.m_tName ,0);
m_cTransferListCtrl.SetItemText (i,1,m_pSet.m_tType );
m_cTransferListCtrl.SetItemText (i,2,m_pSet.m_tBuyerName);
s.Format (L"%d",m_pSet.m_tQuantity );
m_cTransferListCtrl.SetItemText (i,3,s);
s.Format (L"%f",m_pSet.m_tPrice );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cTransferListCtrl.SetItemText (i,4,s );
m_cTransferListCtrl.SetItemText (i,5,FormatDate(m_pSet.m_tDate ));
s.Format (L"%f",m_pSet.m_tSum );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cTransferListCtrl.SetItemText (i,6,s );
m_cTransferListCtrl.SetItemText (i,7,m_pSet.m_tRemark );
s.Format (L"%d",m_pSet.m_tId );
m_cTransferListCtrl.SetItemText (i,8,s);
i++;
m_pSet.MoveNext ();
}
m_pSet.Close ();
//现在在右边显示个数
m_iTransferAmount=i;
s.Format (L"%d",m_iTransferAmount);
SetDlgItemText(IDC_TRANSFER_AMOUNT_STATIC,s);//显示
EndWaitCursor();
}
void CFinanceTransferDlg::OnBnClickedFinanceTransferAllBt()
{
// TODO: 在此添加控件通知处理程序代码
ViewAll();
}
void CFinanceTransferDlg::Kind()
{
CString s;
int Length;
int i=0;
CFinanceTransferKindDlg dlg;
if(dlg.DoModal ()==IDOK)
{
BeginWaitCursor();
if(m_pSet.IsOpen ())
m_pSet.Close ();
m_pSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * from Transfer order by tDate");
m_pSet.m_strFilter .Empty ();
m_pSet.Requery ();
if(m_pSet.IsEOF ())
{
m_iTransferAmount=i;
s.Format (L"%d",m_iTransferAmount);
SetDlgItemText(IDC_TRANSFER_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
else
{
m_cTransferListCtrl.DeleteAllItems ();
if(m_pSet.GetRecordCount ()==0)
{
m_pSet.Close ();
EndWaitCursor();
return ;
}
m_pSet.MoveFirst ();
while (!m_pSet.IsEOF ())
{
if(dlg.m_sKind ==m_pSet.m_tType )
{
m_cTransferListCtrl.InsertItem(i,m_pSet.m_tName ,0);
m_cTransferListCtrl.SetItemText (i,1,m_pSet.m_tType );
m_cTransferListCtrl.SetItemText (i,2,m_pSet.m_tBuyerName);
s.Format (L"%d",m_pSet.m_tQuantity );
m_cTransferListCtrl.SetItemText (i,3,s);
s.Format (L"%f",m_pSet.m_tPrice );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cTransferListCtrl.SetItemText (i,4,s );
m_cTransferListCtrl.SetItemText (i,5,FormatDate(m_pSet.m_tDate ));
s.Format (L"%f",m_pSet.m_tSum );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cTransferListCtrl.SetItemText (i,6,s );
m_cTransferListCtrl.SetItemText (i,7,m_pSet.m_tRemark );
s.Format (L"%d",m_pSet.m_tId );
m_cTransferListCtrl.SetItemText (i,8,s);
i++;
}
m_pSet.MoveNext ();
}
m_pSet.Close ();
if(i==0)
{
m_iTransferAmount=i;
s.Format (L"%d",m_iTransferAmount);
SetDlgItemText(IDC_TRANSFER_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
//现在在右边显示个数
m_iTransferAmount=i;
s.Format (L"%d",m_iTransferAmount);
SetDlgItemText(IDC_TRANSFER_AMOUNT_STATIC,s);//显示
}
EndWaitCursor();
}
}
void CFinanceTransferDlg::OnBnClickedTransferKindBt()
{
// TODO: 在此添加控件通知处理程序代码
Kind();
}
void CFinanceTransferDlg::Delete ()
{
POSITION pos = m_cTransferListCtrl.GetFirstSelectedItemPosition();
if (pos == NULL)
{
MessageBox(L"\n你没有选中任何一个转让,不可以删除!\n",L"提示",MB_ICONEXCLAMATION);
}
else
{
if(MessageBox(L"\n此操作将永久删除该项,确定吗?\n",L"删除提醒",MB_OKCANCEL|MB_ICONQUESTION|MB_DEFBUTTON2)==IDCANCEL)
return ;
while (pos)
{
int nItem = m_cTransferListCtrl.GetNextSelectedItem(pos);
if(m_pSet.IsOpen ())
m_pSet.Close ();
m_pSet.Open (AFX_DB_USE_DEFAULT_TYPE,L"Select * from Transfer order by tDate");
//获取该单词
int m_iId;
m_iId=_ttol(m_cTransferListCtrl.GetItemText (nItem,8));
m_pSet.m_strFilter.Empty ();
m_pSet.MoveFirst ();//刚开始移动到第一个位置
while(!m_pSet.IsEOF ())
{
if(m_iId ==m_pSet.m_tId )
{
m_pSet.Delete ();
break;
}
m_pSet.MoveNext ();
}
if(!m_pSet.IsDeleted ())
{
MessageBox(L"\n删除失败!\n",L"错误", MB_ICONSTOP);
return ;
}
m_pSet.MoveNext ();
//数据库删除成功后就删除列表了
m_cTransferListCtrl.DeleteItem (nItem);
m_pSet.Close ();
//现在在右边显示个数
m_iTransferAmount--;
CString s;
s.Format (L"%d",m_iTransferAmount);
SetDlgItemText(IDC_TRANSFER_AMOUNT_STATIC,s);//显示
}
}
}
void CFinanceTransferDlg::OnBnClickedFinanceTransferDeleteBt()
{
// TODO: 在此添加控件通知处理程序代码
Delete();
}
void CFinanceTransferDlg::Search ()
{
int i=0;
int Length;
CString s;
CString SearchTime;
CString Date;
CString str;
CFinanceTransferSearchDlg dlg;
if(dlg.DoModal ()==IDOK)
{
BeginWaitCursor();
m_cTransferListCtrl.DeleteAllItems ();
switch(dlg.m_iItem )
{
case 0:
case 1:
if(m_pSet.IsOpen ())
m_pSet.Close ();
str="Select * from Transfer where ";
switch(dlg.m_iItem )
{
case 0:
str+="tName";
break;
case 1:
str+="tBuyerNam";
break;
}
str+=" like '%";
str+=dlg.m_sKeyWord ;
str+="%' order by tDate";
m_pSet.Open (AFX_DB_USE_DEFAULT_TYPE,str);
m_pSet.m_strFilter .Empty ();
m_pSet.Requery ();
if(m_pSet.IsEOF ())
{
m_iTransferAmount=i;
s.Format (L"%d",m_iTransferAmount);
SetDlgItemText(IDC_TRANSFER_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
else
{
if(m_pSet.GetRecordCount ()==0)
{
m_iTransferAmount=i;
s.Format (L"%d",m_iTransferAmount);
SetDlgItemText(IDC_TRANSFER_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
m_pSet.MoveFirst ();
while (!m_pSet.IsEOF ())
{
m_cTransferListCtrl.InsertItem(i,m_pSet.m_tName ,0);
m_cTransferListCtrl.SetItemText (i,1,m_pSet.m_tType );
m_cTransferListCtrl.SetItemText (i,2,m_pSet.m_tBuyerName);
s.Format (L"%d",m_pSet.m_tQuantity );
m_cTransferListCtrl.SetItemText (i,3,s);
s.Format (L"%f",m_pSet.m_tPrice );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cTransferListCtrl.SetItemText (i,4,s );
m_cTransferListCtrl.SetItemText (i,5,FormatDate(m_pSet.m_tDate ));
s.Format (L"%f",m_pSet.m_tSum );
Length=s.GetLength ();
s.Delete (Length-4,4);
m_cTransferListCtrl.SetItemText (i,6,s );
m_cTransferListCtrl.SetItemText (i,7,m_pSet.m_tRemark );
s.Format (L"%d",m_pSet.m_tId );
m_cTransferListCtrl.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_iTransferAmount=i;
s.Format (L"%d",m_iTransferAmount);
SetDlgItemText(IDC_TRANSFER_AMOUNT_STATIC,s);//显示
MessageBox(L"\n不存在这样的记录!\n",L"提示",MB_ICONEXCLAMATION);
m_pSet.Close ();
EndWaitCursor();
return ;
}
m_pSet.MoveFirst ();
while (!m_pSet.IsEOF ())
{
//在这里来判断可以轻松地跳过CTime与CString的差别
Date=DateToString(m_pSet.m_tDate );
if(Date==SearchTime)
{
m_cTransferListCtrl.InsertItem(i,m_pSet.m_tName ,0);
m_cTransferListCtrl.SetItemText (i,1,m_pSet.m_tType );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -