📄 listdlg.cpp
字号:
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 + -