📄 family_financ_systemdlg.cpp
字号:
}
void CFamily_financ_systemDlg::OnFMenber()
{
// TODO: Add your control notification handler code here
// 编辑家庭成员
CFAMILY f_dlg;
f_dlg.Title1=Title1;
f_dlg.DoModal();
if(f_dlg.is_ok=="OK")
{
is_ok="OK";
}
}
void CFamily_financ_systemDlg::OnTongji()
{
// TODO: Add your control notification handler code here
// 统计查询
CCHAXUN tongji_dlg;
tongji_dlg.Title1=Title1;
tongji_dlg.DoModal();
}
void CFamily_financ_systemDlg::OnPlain()
{
// TODO: Add your control notification handler code here
// 每月计划
CPLAIN plain_dlg;
plain_dlg.Title1=Title1;
plain_dlg.nYear=this_year;
plain_dlg.nMonth=this_month;
plain_dlg.DoModal();
CoInitialize(NULL); //初始化COM组件
_ConnectionPtr pConn(__uuidof(Connection)); //实例化一个connection对象pConn
_RecordsetPtr pRst(__uuidof(Recordset)); //实例化一个Recordset对象pRst
_CommandPtr pCmd(__uuidof(Command)); //实例化一个Command对象pCmd
pConn->ConnectionString=(_bstr_t)Title1;
//通过pConn对象连接字符串,连接到ACCESS数据库
HRESULT hr = pConn->Open("","","",adConnectUnspecified);
// 以同步的方式进行连接 open("连接字串","用户名","密码","连接方式")
// 连接方式有"adConnectUnspecified"(同步) 和 "adAsyncConnect" (异步)
pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
CString sqlstr="SELECT * FROM 月统计表 where (年=";
CString string_temp;
string_temp.Format("%d",this_year);
sqlstr=sqlstr+string_temp;
sqlstr=sqlstr+") and (月=";
string_temp.Format("%d",this_month);
sqlstr=sqlstr+string_temp;
sqlstr=sqlstr+")";
pCmd->CommandText=_bstr_t(sqlstr); //通过pCmd对象访问数据库
pRst=pCmd->Execute(NULL,NULL,adCmdText);
_bstr_t temp=pRst->GetCollect("月支出");
char *char_temp=temp;
sscanf(char_temp,"%f",&m_this_money_out);
temp=pRst->GetCollect("总计划支出");
char_temp=temp;
sscanf(char_temp,"%f",&m_this_total_plain);
temp=pRst->GetCollect("生活计划支出");
char_temp=temp;
sscanf(char_temp,"%f",&m_this_l_plain);
temp=pRst->GetCollect("休闲计划支出");
char_temp=temp;
sscanf(char_temp,"%f",&m_this_p_plain);
//////////////////////////////////////////////////////////////////////
pRst->Close(); //关闭对象
pConn->Close();
pCmd.Release(); //释放对象
pRst.Release();
pConn.Release();
CoUninitialize(); //卸载COM组件
/////////////////////////////////////////////////////////////////////
UpdateData(FALSE);
}
void CFamily_financ_systemDlg::OnDelert()
{
// TODO: Add your control notification handler code here
// 删除记录
m_delert.EnableWindow(FALSE);
int nYear,nMonth,nDay;
float total_in,total_out,l_t_out,p_t_out,money;
CString f_day,f_typ,f_money,f_man,leibie;
int i=0,j;
j=m_list.GetItemCount();
while((m_list.GetItemState(i, LVIS_SELECTED) != LVIS_SELECTED)&&(i<j))
{
i++;
}
if(i<j)
{
if(MessageBox("是否真的删除选中数据???","信息提示",MB_OKCANCEL)==IDOK)
{
f_day=m_list.GetItemText(i, 0);
f_typ=m_list.GetItemText(i, 1);
f_money=m_list.GetItemText(i, 2);
f_man=m_list.GetItemText(i, 3);
sscanf(f_money,"%f",&money);
sscanf(f_day,"%d-%d-%d",&nYear,&nMonth,&nDay);
if((f_typ=="工资(奖金)")|(f_typ=="其他收入"))
{
leibie="收入";
}
else
{
leibie="支出";
}
///////////////////////////////////////////////////////////////////////////////
CoInitialize(NULL); //初始化COM组件
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
CString sqlstr="SELECT * FROM 家庭财务表 where (时间='";
sqlstr=sqlstr+f_day;sqlstr=sqlstr+"') and (种类='";
sqlstr=sqlstr+f_typ;sqlstr=sqlstr+"') and (金额=";
sqlstr=sqlstr+f_money;sqlstr=sqlstr+") and (经手人='";
sqlstr=sqlstr+f_man+"')";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
if(!m_pRecordset->EndEOF)
{
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();///保存到库中
}
m_pRecordset->Close();
m_pConnection->Close();
///////////////////////////////////////////////////////////////////////////////////
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
sqlstr="SELECT * FROM 月统计表 where (年=";
CString string_temp;
string_temp.Format("%d",nYear);
sqlstr=sqlstr+string_temp;
sqlstr=sqlstr+") and (月=";
string_temp.Format("%d",nMonth);
sqlstr=sqlstr+string_temp;
sqlstr=sqlstr+")";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
char *char_temp;
_bstr_t temp=m_pRecordset->GetCollect("月支出");
char_temp=temp;
sscanf(char_temp,"%f",&total_out);
temp=m_pRecordset->GetCollect("月收入");
char_temp=temp;
sscanf(char_temp,"%f",&total_in);
temp=m_pRecordset->GetCollect("实际生活支出");
char_temp=temp;
sscanf(char_temp,"%f",&l_t_out);
temp=m_pRecordset->GetCollect("实际休闲支出");
char_temp=temp;
sscanf(char_temp,"%f",&p_t_out);
if(leibie=="收入")
{
total_in=total_in-money;
m_money_sum_in=m_money_sum_in-money;
}
else
{
total_out=total_out-money;
m_money_sum_out=m_money_sum_out-money;
if((m_io_t=="饮食消费")|(m_io_t=="生活用品消费"))
{
l_t_out=l_t_out-money;
}
else
{
if(m_io_t=="文娱消费")
{
p_t_out=p_t_out-money;
}
}
}
m_pRecordset->PutCollect("总收入",m_money_sum_in);
m_pRecordset->PutCollect("总支出",m_money_sum_out);
m_pRecordset->PutCollect("实际生活支出",l_t_out);
m_pRecordset->PutCollect("实际休闲支出",p_t_out);
m_pRecordset->PutCollect("月收入",total_in);
m_pRecordset->PutCollect("月支出",total_out);
m_pRecordset->Update();
m_money_sum_end=m_money_sum_in-m_money_sum_out;
////////////////////////////////////////////////////////////////////////////////////
m_pRecordset->Close();
m_pConnection->Close();
CoUninitialize(); //卸载COM组件
m_list.DeleteItem(i);
}
}
else
{
AfxMessageBox("请选择要删除的记录!");
}
UpdateData(FALSE);
m_delert.EnableWindow(TRUE);
}
void CFamily_financ_systemDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CoInitialize(NULL); //初始化COM组件
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
CString sqlstr="SELECT * FROM 帮助表";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
if(!m_pRecordset->EndEOF)
{
m_pRecordset->PutCollect("目前总收入",m_money_sum_in);;
m_pRecordset->PutCollect("目前总消费",m_money_sum_out);
m_pRecordset->PutCollect("目前总结余",m_money_sum_end);
m_pRecordset->Update();
}
else
{
m_pRecordset->AddNew();
m_pRecordset->PutCollect("目前总收入",m_money_sum_in);;
m_pRecordset->PutCollect("目前总消费",m_money_sum_out);
m_pRecordset->PutCollect("目前总结余",m_money_sum_end);
m_pRecordset->Update();
}
m_pRecordset->Close();
m_pConnection->Close();
CoUninitialize(); //卸载COM组件
CDialog::OnClose();
}
void CFamily_financ_systemDlg::OnDelert2()
{
// TODO: Add your control notification handler code here
this->EnableWindow(FALSE);
if(MessageBox("是否真的删除所有数据???","信息提示",MB_OKCANCEL)==IDOK)
{
////////////////////////////////////////////////////////////////////////////
//
// 删除家庭财务表
//
///////////////////////////////////////////////////////////////////////////
CoInitialize(NULL); //初始化COM组件
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
CString sqlstr="SELECT * FROM 家庭财务表";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
while(!m_pRecordset->EndEOF)
{
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();///保存到库中
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
m_pConnection->Close();
/////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
//
// 删除月统计表
//
///////////////////////////////////////////////////////////////////////////
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
sqlstr="SELECT * FROM 月统计表";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
while(!m_pRecordset->EndEOF)
{
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();///保存到库中
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
m_pConnection->Close();
////////////////////////////////////////////////////////////////////////////
//
// 删除帮助表
//
///////////////////////////////////////////////////////////////////////////
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
sqlstr="SELECT * FROM 帮助表";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
while(!m_pRecordset->EndEOF)
{
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();///保存到库中
m_pRecordset->MoveNext();
}
m_pRecordset->Close();
m_pConnection->Close();
////////////////////////////////////////////////////////////////////////////
//
// 删除家庭成员表
//
///////////////////////////////////////////////////////////////////////////
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pConnection->Open(_bstr_t(Title1),"","",adModeUnknown);
sqlstr="SELECT * FROM 家庭成员表";
m_pRecordset->Open(_variant_t(sqlstr), // 查询Demo表中所有字段
(IDispatch*)m_pConnection.GetInterfacePtr(), // 获取数据库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
if(!m_pRecordset->EndEOF)
{
if(MessageBox("是否真的删除家庭成员???如果删除需要重新录入家庭成员","信息提示",MB_OKCANCEL)==IDOK)
{
while(!m_pRecordset->EndEOF)
{
m_pRecordset->Delete(adAffectCurrent);
m_pRecordset->Update();///保存到库中
m_pRecordset->MoveNext();
}
CDialog::OnOK();
}
}
m_pRecordset->Close();
m_pConnection->Close();
CoUninitialize(); //卸载COM组件
m_list.DeleteAllItems();
m_this_total_plain=0;
m_this_total_out=0;
m_this_l_plain=0;
m_this_l_true_out=0;
m_this_p_plain=0;
m_this_p_true_out=0;
m_last_total_plain=0;
m_last_true_total_out=0;
m_last_l_plain=0;
m_last_l_true_out=0;
m_last_p_plain=0;
m_last_p_out=0;
m_money_sum_in=0;
m_money_sum_out=0;
m_money_sum_end=0;
UpdateData(FALSE);
}
this->EnableWindow(TRUE);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -