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

📄 financetransferdlg.cpp

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