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

📄 listdlg.cpp

📁 Family Financial Management System是一个特别方便的理财系统。功能方便实用。
💻 CPP
📖 第 1 页 / 共 2 页
字号:

void CListDlg::OnBtnMod() 
{
	// TODO: Add your control notification handler code here
	CString strDate;
	CString strMoney;
	CString strTemp;
	int i = 0;

	if(g_iType == TYPE_BankBook)
	{
		CBankBookDlg dlg;
		i = 0;
		dlg.m_strFID          = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strBankName     = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strAccounts     = m_ListCtrl.GetItemText(m_iSel,i++); 
		dlg.m_strCardNum      = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strUserName     = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strBankBookNum  = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strMoneyType    = m_ListCtrl.GetItemText(m_iSel,i++); 
		strDate               = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strStartBankName= m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strStartBankTel = m_ListCtrl.GetItemText(m_iSel,i++);
		strMoney              = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strDescribe     = m_ListCtrl.GetItemText(m_iSel,i++);
		
		if(strDate.GetLength() == 14)
		{
			dlg.m_oleDate.SetDate(atoi(strDate.Left(4)),atoi(strDate.Mid(6,2)),atoi(strDate.Mid(10,2)));
		}	
		dlg.m_fMoney  = (float)atof(strMoney);
		
		
		m_ListCtrl.SetHotItem(m_iSel);
		if(dlg.DoModal() == IDOK)
		{
			AddDataIntoCtrl();
		}	
		m_ListCtrl.SetHotItem(-1);
		return;
			
	}

	CAddDlg dlg;
	switch(g_iType)
	{
	case TYPE_Out:
		i = 0;
		dlg.m_strFID     = m_ListCtrl.GetItemText(m_iSel,i++);
		strDate		     = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strCmbType = m_ListCtrl.GetItemText(m_iSel,i++);
		strMoney         = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strDescribe= m_ListCtrl.GetItemText(m_iSel,i++);
		break;
	case TYPE_Event:
		i = 0;
		dlg.m_strFID     = m_ListCtrl.GetItemText(m_iSel,i++);
		strDate		     = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strCmbType = m_ListCtrl.GetItemText(m_iSel,i++);
		strMoney         = "";
		dlg.m_strDescribe= m_ListCtrl.GetItemText(m_iSel,i++);		
		break;
	case TYPE_In:
		dlg.m_strFID     = m_ListCtrl.GetItemText(m_iSel,i++);
		strDate		     = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strCmbType = m_ListCtrl.GetItemText(m_iSel,i++);
		strMoney         = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strDescribe= m_ListCtrl.GetItemText(m_iSel,i++);	
		break;
		
	case TYPE_BankBook:
		
		break;
	case TYPE_Save:
	
		break;
	case TYPE_Dac:
		i = 0;
		strTemp          = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strFID     = m_ListCtrl.GetItemText(m_iSel,i++);
		strDate		     = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strCmbType = m_ListCtrl.GetItemText(m_iSel,i++);
		strMoney         = m_ListCtrl.GetItemText(m_iSel,i++);
		dlg.m_strDescribe= m_ListCtrl.GetItemText(m_iSel,i++);			
		if(strTemp == "借")
		{
			dlg.m_iRadSel = 0;
		}
		else if(strTemp == "贷")
		{
			dlg.m_iRadSel = 1;
		}
		else if(strTemp == "清")
		{
			dlg.m_iRadSel = 2;
		}
		break;
	default:
		break;
	}	

	if(strDate.GetLength() == 14)
	{
		dlg.m_oleDate.SetDate(atoi(strDate.Left(4)),atoi(strDate.Mid(6,2)),atoi(strDate.Mid(10,2)));
	}	
	dlg.m_fMoney  = (float)atof(strMoney);


	m_ListCtrl.SetHotItem(m_iSel);
	if(dlg.DoModal() == IDOK)
	{
		AddDataIntoCtrl();
	}	
	m_ListCtrl.SetHotItem(-1);
}

//LVN_ITEMCHANGED 事件可捕获列表控件中的值改变的各种情况(用鼠标点击或键盘的上下键操作),
void CListDlg::OnItemchangedList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here

	POSITION pos = m_ListCtrl.GetFirstSelectedItemPosition();
	if (pos == NULL)
	{	
		m_iSel = -1; 
		GetDlgItem(IDC_BTN_MOD )->EnableWindow(FALSE);
		GetDlgItem(IDC_BTN_Del )->EnableWindow(FALSE);
		GetDlgItem(IDC_BTN_List )->EnableWindow(FALSE);
	}
	else
	{
		m_iSel = m_ListCtrl.GetNextSelectedItem(pos);
		GetDlgItem(IDC_BTN_MOD )->EnableWindow(TRUE);
		GetDlgItem(IDC_BTN_Del )->EnableWindow(TRUE);
		GetDlgItem(IDC_BTN_List )->EnableWindow(TRUE);
	}

	*pResult = 0;
}

void CListDlg::OnBTNDel() 
{
	// TODO: Add your control notification handler code here
	m_ListCtrl.SetHotItem(m_iSel);
	if (IDYES == MessageBox("您是否确认要删除此记录?", "提示", MB_YESNO | MB_ICONINFORMATION|MB_DEFBUTTON2))
	{
		CString strFID;
		strFID = m_ListCtrl.GetItemText(m_iSel,0);
		switch(g_iType)
		{
		case TYPE_Out:
			break;
		case TYPE_Event:			
			break;
		case TYPE_In:			
			break;
		case TYPE_Save:			
			break;
		case TYPE_Dac:	
			strFID = m_ListCtrl.GetItemText(m_iSel,1);
			break;
		default:
			break;
		}
		CString strSQL;
		strSQL.Format("Delete From %s Where FID = %s",m_strTableName,strFID);
		g_Database.ExecuteSQL(strSQL);
		AddDataIntoCtrl();
		m_iSel = -1;
		GetDlgItem(IDC_BTN_MOD )->EnableWindow(false);
		GetDlgItem(IDC_BTN_Del )->EnableWindow(false);
	}
	m_ListCtrl.SetHotItem(-1);
}

void CListDlg::InitSQL()
{
	if(!m_strSQL.IsEmpty())
		return;

	if(g_iType == TYPE_BankBook)
	{
		m_strSQL = "Select * from TBankBook Order By FBankName";
		return;
	}
	if(g_iType == TYPE_Save)
	{
		m_strSQL.Format("Select * from TSave Where FBankBookID = %s Order By FDate,FID",m_strBankBookID);
		return;
	}

	CString strTemp;	
	if(m_strDate1.IsEmpty()&&m_strDate2.IsEmpty())
	{
		m_strDateInfo = "时间范围:所有时间";
		m_strDate1    = "0001年01月01日";
		m_strDate2    = "9999年12月31日";
		goto SQLFormat;
	}

	if(m_strDate1.IsEmpty())
	{
		if(m_strDate2.GetLength() != 14)
		{
			strTemp.Format("错误! “m_strDate2 = %s”,格式应为“xxxx年xx月xx日”!",m_strDate2);
			AfxMessageBox(strTemp);
			return;
		}
		m_strDateInfo.Format("时间范围:位于 %s 之前", m_strDate2);
		m_strDate1    = "0001年01月01日";
		goto SQLFormat;
	}

	if(m_strDate2.IsEmpty())
	{
		if(m_strDate1.GetLength() != 14)
		{
			strTemp.Format("错误! “m_strDate1 = %s”,格式应为“xxxx年xx月xx日”!",m_strDate1);
			AfxMessageBox(strTemp);
			return;
		}
		if(m_strDate1.Mid(10,2) == "00")
		{
			if(m_strDate1.Mid(6,2) == "00")
			{
				m_strDateInfo.Format("时间范围:%s 年", m_strDate1.Left(4));
				m_strDate2.Format("%s年12月31日",m_strDate1.Left(4));
			}
			else
			{
				m_strDateInfo.Format("时间范围:%s 年 %s 月", m_strDate1.Left(4),m_strDate1.Mid(6,2));
				m_strDate2.Format("%s99日",m_strDate1.Left(10));
			}
		}
		else
		{
			m_strDateInfo.Format("时间范围:位于 %s 之后", m_strDate1);
			m_strDate2    = "9999年12月31日";
		}
		goto SQLFormat;
	}	

	m_strDateInfo.Format("时间范围:介于 %s 与 %s 之间", m_strDate1,m_strDate2);

	
SQLFormat:
	m_strSQL.Format("Select * from %s Where FDate between '%s' And '%s'",m_strTableName, m_strDate1, m_strDate2);
	if(!m_strTypeValue.IsEmpty())
	{
		m_strSQL += " And FTypeValue like '";
		if (m_bBlueType)
		{			
			m_strSQL += "%";
			m_strSQL += m_strTypeValue;
			m_strSQL += "%";
		} 
		else
		{
			m_strSQL += m_strTypeValue;		
		}
		m_strSQL += "'";
	}
	if((g_iType == TYPE_Dac)&&(!m_strDAC.IsEmpty()))
	{
		m_strSQL += " And FDac like '";
		m_strSQL += m_strDAC + "'";
	}
	m_strSQL += " Order By FDate";	
}

void CListDlg::OnBTNAdd() 
{
	// TODO: Add your control notification handler code here
	if(g_iType == TYPE_BankBook)
	{
		CBankBookDlg dlg;
		if(dlg.DoModal() == IDOK)
		{
			AddDataIntoCtrl();
		}		
	}
	else
	{
		CAddDlg dlg;
		dlg.m_strFID = m_strBankBookID;
		dlg.m_strDateLimit = m_strDateLimit;
		if(dlg.DoModal() == IDOK)
		{
			AddDataIntoCtrl();
		}		
	}
}

void CListDlg::OnBTNList() 
{
	if(m_iSel < 0)return;
	
	CListDlg dlg;
	CString strTemp   = m_ListCtrl.GetItemText(m_iSel, 0);
	dlg.m_strBankBookID = strTemp;
	dlg.m_strSQL.Format("Select * from TSave Where FBankBookID = %s Order By FDate,FID",strTemp);

	strTemp           = m_ListCtrl.GetItemText(m_iSel, 1);   //银行名称
	strTemp			 += "   余额(元):";		
	strTemp          += m_ListCtrl.GetItemText(m_iSel, 10);   //余额	
	dlg.m_strDateInfo = strTemp;

	strTemp           = m_ListCtrl.GetItemText(m_iSel, 2);
	if(!strTemp.IsEmpty())dlg.m_strAllMoney = "帐号:" + strTemp + "    "; 
	strTemp           = m_ListCtrl.GetItemText(m_iSel, 3);
	if(!strTemp.IsEmpty())dlg.m_strAllMoney+= "卡号:" + strTemp; 
		

	
	int iTemp = g_iType;
	g_iType = TYPE_Save;
	dlg.DoModal();	
	g_iType = iTemp;
	AddDataIntoCtrl();	
}

void CListDlg::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
	if(g_iType == TYPE_BankBook)
	{
		OnBTNList();
	}
	else
	{
		OnBtnMod();
	}
	
	*pResult = 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -