📄 edit.cpp
字号:
// EDIT.cpp : implementation file
//
#include "stdafx.h"
#include "BankSystem.h"
#include "EDIT.h"
#include "BankSystemDlg.h"
#include "ADOConn.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEDIT dialog
CEDIT::CEDIT(CWnd* pParent /*=NULL*/)
: CDialog(CEDIT::IDD, pParent)
{
//{{AFX_DATA_INIT(CEDIT)
m_addr = _T("");
m_name = _T("");
m_num = 0;
m_postcode = _T("");
m_tel = _T("");
//}}AFX_DATA_INIT
}
void CEDIT::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEDIT)
DDX_Control(pDX, IDC_LIST1, m_oplist);
DDX_Control(pDX, IDC_DELETE, m_delete);
DDX_Control(pDX, IDC_ADD, m_add);
DDX_Text(pDX, IDC_ADDR, m_addr);
DDX_Text(pDX, IDC_NAME, m_name);
DDX_Text(pDX, IDC_NUM, m_num);
DDX_Text(pDX, IDC_POSTCODE, m_postcode);
DDX_Text(pDX, IDC_TEL, m_tel);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CEDIT, CDialog)
//{{AFX_MSG_MAP(CEDIT)
ON_BN_CLICKED(IDC_ADD, OnAdd)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_BN_CLICKED(IDC_DELETE, OnDelete)
ON_EN_CHANGE(IDC_NUM, OnChangeNum)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CEDIT message handlers
BOOL CEDIT::OnInitDialog()
{
CDialog::OnInitDialog();
//GetDlgItem(IDC_NUM)->EnableWindow(false);
m_delete.EnableWindow(false);
m_add.EnableWindow(false);
CBankSystemApp* pApp=(CBankSystemApp*)AfxGetApp();
CBankSystemDlg* pDlg=(CBankSystemDlg*)pApp->m_pMainWnd;
bankId=pDlg->bankId;
m_name=pDlg->Name;
m_addr=pDlg->Addr;
m_tel=pDlg->Tel;
m_postcode=pDlg->PostCode;
UpdateData(false);
m_oplist.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
m_oplist.InsertColumn(0,_T("员工号"),LVCFMT_CENTER ,100);
m_oplist.InsertColumn(1,_T("密码"),LVCFMT_CENTER ,100);
refresh();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CEDIT::refresh()
{ CBankSystemApp* pApp=(CBankSystemApp*)AfxGetApp();
CBankSystemDlg* pDlg=(CBankSystemDlg*)pApp->m_pMainWnd;
m_oplist.DeleteAllItems();
ADOConn Conn;
Conn.OnInitADOConn();
_RecordsetPtr pRst;
CString sql;
_variant_t v;
sql.Format("select *from Operator where bankId=\'%s\'",pDlg->bankId);
pRst=Conn.Execute((_bstr_t)sql);
while(!pRst->adoEOF)
{
v=pRst->GetCollect("opId");
opId=v.bstrVal;
v=pRst->GetCollect("opPwd");
opPwd=v.bstrVal;
m_oplist.InsertItem(0,opId);
m_oplist.SetItemText(0,1,opPwd);
pRst->MoveNext();
}
}
void CEDIT::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
Count=m_oplist.GetItemCount();
sel=m_oplist.GetSelectionMark();
if(sel<=Count&&sel!=-1)
{ m_oplist.SetHotItem(sel);
m_delete.EnableWindow(true);
m_add.EnableWindow(false);
}
*pResult = 0;
}
void CEDIT::OnDelete()
{ m_delete.EnableWindow(false);
m_add.EnableWindow(false);
opId=m_oplist.GetItemText(sel,0);
ADOConn Conn;
Conn.OnInitADOConn();
_RecordsetPtr pRst;
CString sql;
int lastNum;
_variant_t v;
sql.Format("delete from Operator where opId=\'%s\'",opId);
Conn.GetRecordset((_bstr_t)sql);
m_oplist.DeleteItem(sel);
str="删除员工"+opId;
GetDlgItem(IDC_OPINFO)->SetWindowText(str);
sql.Format("select* from bankInfo where bankId=\'%s\'",bankId);
pRst=Conn.GetRecordset((_bstr_t)sql);
if(pRst->adoEOF)
MessageBox("error");
else
{
v=pRst->GetCollect("bOpNum");
lastNum=v.iVal;
}
sql.Format("Update bankInfo set bOpNum=\'%d\' where bankId=\'%s\'",lastNum-1,bankId);
Conn.Execute((_bstr_t)sql);
refresh();
CBankSystemApp* pApp=(CBankSystemApp*)AfxGetApp();
CBankSystemDlg* pDlg=(CBankSystemDlg*)pApp->m_pMainWnd;
pDlg->RefreshData();
}
int CEDIT::have(CString opId)
{
ADOConn Conn;
Conn.OnInitADOConn();
CString sql;
_RecordsetPtr pRst;
sql.Format("select * from Operator where opId=\'%s\'",opId);
pRst=Conn.GetRecordset((_bstr_t)sql);
if(pRst->adoEOF)
return 0;
else
return 1;
}
void CEDIT::OnAdd()
{
this->UpdateData(true);
ADOConn Conn;
Conn.OnInitADOConn();
_RecordsetPtr pRst;
CString sql,str;
int lastNum;
_variant_t v;
str="增加员工:";
if(m_num>0)
{
srand((unsigned)time(NULL));//时钟种子
for(int j=0;j!=m_num;++j)
{
CString opId,opPwd;//随即生成工作人员的代号与密码
opId="";
opPwd="";
int SIZE_ID=4;//代码为数
int SIZE_PWD=6;//密码为数
char CH_ID[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char CH_PWD[]="0123456789abcdefghijklmnopqrstuvwxyz";
while(1)
{
for(int i = 0;i!=SIZE_ID;++i)
{
int x=rand()%(sizeof(CH_ID)-1);
opId+=CH_ID[x];//生成代号
}
if(have(opId))
continue;
else break;
}
str+=opId+" ";
for( int i = 0;i!=SIZE_PWD;++i)
{
int x=rand()%(sizeof(CH_PWD)-1);
opPwd+=CH_PWD[x];//生成密码
}
sql.Format("insert into operator(opId,opPwd,BankId) values(\'%s\',\'%s\',\'%s\')",opId,opPwd,bankId);
Conn.Execute((_bstr_t)sql);
}
sql.Format("select* from bankInfo where bankId=\'%s\'",bankId);
pRst=Conn.GetRecordset((_bstr_t)sql);
if(pRst->adoEOF)
MessageBox("error");
else
{
v=pRst->GetCollect("bOpNum");
lastNum=v.iVal;
}
sql.Format("Update bankInfo set bOpNum=\'%d\' where bankId=\'%s\'",lastNum+m_num,bankId);
Conn.Execute((_bstr_t)sql);
refresh();
CBankSystemApp* pApp=(CBankSystemApp*)AfxGetApp();
CBankSystemDlg* pDlg=(CBankSystemDlg*)pApp->m_pMainWnd;
pDlg->RefreshData();
GetDlgItem(IDC_OPINFO)->SetWindowText(str);
m_num=0;
UpdateData(false);
}
}
void CEDIT::OnChangeNum()
{
m_add.EnableWindow(true);
m_delete.EnableWindow(false);
}
void CEDIT::OnOK()
{
this->UpdateData(true);
ADOConn Conn;
Conn.OnInitADOConn();
_RecordsetPtr pRst;
CString sql;
sql.Format("Update bankInfo set bankAddr=\'%s\',bTel=\'%s\',bpostCode=\'%s\' where bankId=\'%s\'",m_addr,m_tel,m_postcode,bankId);
Conn.Execute((_bstr_t)sql);
CBankSystemApp* pApp=(CBankSystemApp*)AfxGetApp();
CBankSystemDlg* pDlg=(CBankSystemDlg*)pApp->m_pMainWnd;
pDlg->RefreshData();
CDialog::OnOK();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -