📄 transfer.cpp
字号:
// Transfer.cpp : implementation file
//
#include "stdafx.h"
#include "BankSystem.h"
#include "Transfer.h"
#include "BankSystemDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTransfer dialog
CTransfer::CTransfer(CWnd* pParent /*=NULL*/)
: CDialog(CTransfer::IDD, pParent)
{
//{{AFX_DATA_INIT(CTransfer)
m_strPassW = _T("");
m_strToUser = _T("");
m_strFromUser = _T("");
m_Money = 0.0f;
//}}AFX_DATA_INIT
}
void CTransfer::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CTransfer)
DDX_Text(pDX, IDC_EDIT2, m_strPassW);
DDX_Text(pDX, IDC_EDIT3, m_strToUser);
DDX_Text(pDX, IDC_EDIT1, m_strFromUser);
DDX_Text(pDX, IDC_EDIT4, m_Money);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CTransfer, CDialog)
//{{AFX_MSG_MAP(CTransfer)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTransfer message handlers
void CTransfer::OnOK()
{
// TODO: Add extra validation here
CBankSystemApp *App = (CBankSystemApp*)AfxGetApp();
CBankSystemDlg *m_pMain = (CBankSystemDlg*)App->m_pMainWnd;
UpdateData(true);
if(m_strFromUser.IsEmpty()||m_strToUser.IsEmpty()||m_strPassW.IsEmpty())
{
AfxMessageBox("请填写详细信息!");
return;
}
CString strSQL,m_strMoney,m_strID,m_strKind,m_strRealPassW;
_variant_t varMoney;
float money;
// m_pCon->BeginTrans;
m_pRec.CreateInstance(__uuidof(Recordset));
strSQL="SELECT * FROM Acount where 账号=";
strSQL+=m_strFromUser;
m_pRec->Open(_variant_t(strSQL),m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if(m_pRec->adoEOF)
{
AfxMessageBox("源账户不存在!");
m_pRec->Close();
return;
}
else
{
m_strKind=(LPCSTR)_bstr_t(m_pRec->GetCollect("定活"));
m_strRealPassW=(LPCSTR)_bstr_t(m_pRec->GetCollect("密码"));
if(m_strRealPassW!=m_strPassW)
{
AfxMessageBox("密码错误!");
m_pRec->Close();
return;
}
if(m_strKind=="定期")
{
AfxMessageBox("不能对定期账户进行转帐操作!");
m_pRec->Close();
return;
}
}
m_pRec.CreateInstance(__uuidof(Recordset));
strSQL="SELECT * FROM Acount where 账号=";
strSQL+=m_strToUser;
m_pRec->Open(_variant_t(strSQL),m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if(m_pRec->adoEOF)
{
AfxMessageBox("目的账户不存在!");
m_pRec->Close();
return;
}
else
{
m_strKind=(LPCSTR)_bstr_t(m_pRec->GetCollect("定活"));
if(m_strKind=="定期")
{
AfxMessageBox("不能对定期账户进行转帐操作!");
m_pRec->Close();
return;
}
}
m_pRec.CreateInstance(__uuidof(Recordset));
strSQL="SELECT * FROM Acount where 账号=";
strSQL+=m_strFromUser;
m_pRec->Open(_variant_t(strSQL),m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pMain->Check(m_strFromUser);
varMoney=m_pRec->GetCollect("金额");
money=varMoney.dblVal;
money-=m_Money;
if(money<10)
{
AfxMessageBox("余额不够!");
m_pRec->Close();
return;
}
varMoney.dblVal=money;
m_pRec->PutCollect("金额",varMoney);
m_pRec->Update();
m_pRec->Close();
m_pRec.CreateInstance(__uuidof(Recordset));
strSQL="SELECT * FROM Acount where 账号=";
strSQL+=m_strToUser;
m_pRec->Open(_variant_t(strSQL),m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pMain->Check(m_strToUser);
varMoney=m_pRec->GetCollect("金额");
money=varMoney.dblVal;
money+=m_Money;
varMoney.dblVal=money;
m_pRec->PutCollect("金额",varMoney);
m_pRec->Update();
m_pRec->Close();
CTime m_cNowTime = CTime::GetCurrentTime();
log.AcountA = m_strFromUser;
log.AcountB = m_strToUser;
log.OprMoney.Format("%f",m_Money);
log.Operator = m_pMain->m_strOpr;
log.OprKind = "转账";
log.OprTime = m_cNowTime.Format("%y-%m-%d %H:%M:%S");
WriteLog();
AfxMessageBox("转账成功!");
CDialog::OnOK();
}
void CTransfer::WriteLog()
{
CBankSystemApp *App = (CBankSystemApp*)(AfxGetApp());
CBankSystemDlg *m_pMain = (CBankSystemDlg*)App->m_pMainWnd;
_ConnectionPtr m_pCon;
_RecordsetPtr m_pRec;
m_pCon = m_pMain->m_pConnection;
m_pRec.CreateInstance(__uuidof(Recordset));
m_pRec->Open("SELECT * FROM Log",m_pCon.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
m_pRec->AddNew();
m_pRec->PutCollect("操作类型",_variant_t(log.OprKind));
m_pRec->PutCollect("操作账户1",_variant_t(log.AcountA));
m_pRec->PutCollect("操作账户2",_variant_t(log.AcountB));
m_pRec->PutCollect("操作员",_variant_t(log.Operator));
m_pRec->PutCollect("操作时间",_variant_t(log.OprTime));
m_pRec->PutCollect("操作金额",_variant_t(log.OprMoney));
m_pRec->Update();
m_pRec->Close();
}
BOOL CTransfer::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CBankSystemApp *App = (CBankSystemApp*)AfxGetApp();
CBankSystemDlg *m_pMain = (CBankSystemDlg*)App->m_pMainWnd;
m_pCon=m_pMain->m_pConnection;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -