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

📄 edit.cpp

📁 各个银行
💻 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 + -