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

📄 financebankdlg.cpp

📁 这是一个学生信息管理系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// 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 + -