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

📄 dclient_edit.cpp

📁 一个VC++写的商品库存管理系统
💻 CPP
字号:
// DClient_Edit.cpp : implementation file
//

#include "stdafx.h"
#include "商品库存管理系统.h"
#include "DClient_Edit.h"
#include "DClime.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern _ConnectionPtr cnn;
extern CMyApp theApp;
/////////////////////////////////////////////////////////////////////////////
// CDClient_Edit dialog


CDClient_Edit::CDClient_Edit(CWnd* pParent /*=NULL*/)
	: CDialog(CDClient_Edit::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDClient_Edit)
	//}}AFX_DATA_INIT
}


void CDClient_Edit::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDClient_Edit)
	DDX_Control(pDX, IDC_COMPorvince, m_ComProvince);
	DDX_Control(pDX, IDC_EDTTaxpayer, m_EdtTaxpayer);
	DDX_Control(pDX, IDC_EDTPhone, m_EdtPhone);
	DDX_Control(pDX, IDC_EDTName3, m_EdtName);
	DDX_Control(pDX, IDC_EDTLMPhone, m_EdtLMPhone);
	DDX_Control(pDX, IDC_EDTLinkman, m_EdtLinkman);
	DDX_Control(pDX, IDC_EDTLetterName, m_EdtLetterName);
	DDX_Control(pDX, IDC_EdtID, m_EdtID);
	DDX_Control(pDX, IDC_EDTEmail, m_EdtEmail);
	DDX_Control(pDX, IDC_EDTFax, m_EdtFax);
	DDX_Control(pDX, IDC_EDTAddr, m_EdtAddr);
	DDX_Control(pDX, IDC_EDTAccount, m_EdtAccount);
	DDX_Control(pDX, IDC_COMTown, m_ComTown);
	DDX_Control(pDX, IDC_COMCity, m_ComCity);
	DDX_Control(pDX, IDC_COMBank, m_ComBank);
	DDX_Control(pDX, IDC_BUTSave, m_ButSave);
	DDX_Control(pDX, IDC_BUTUndo, m_ButUndo);
	DDX_Control(pDX, IDC_BUTExit, m_ButExit);
	DDX_Control(pDX, IDC_BUTDele, m_ButDele);
	DDX_Control(pDX, IDC_BUTChange, m_ButChange);
	DDX_Control(pDX, IDC_BUTAdd, m_ButAdd);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDClient_Edit, CDialog)
	//{{AFX_MSG_MAP(CDClient_Edit)
	ON_BN_CLICKED(IDC_BUTAdd, OnBUTAdd)
	ON_BN_CLICKED(IDC_BUTChange, OnBUTChange)
	ON_BN_CLICKED(IDC_BUTDele, OnBUTDele)
	ON_BN_CLICKED(IDC_BUTSave, OnBUTSave)
	ON_BN_CLICKED(IDC_BUTUndo, OnBUTUndo)
	ON_BN_CLICKED(IDC_BUTExit, OnBUTExit)
	ON_EN_CHANGE(IDC_EDTName3, OnChangeEDTName3)
	ON_CBN_KILLFOCUS(IDC_COMPorvince, OnKillfocusCOMPorvince)
	ON_CBN_KILLFOCUS(IDC_COMCity, OnKillfocusCOMCity)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDClient_Edit message handlers

void CDClient_Edit::OnOK() 
{
	// TODO: Add extra validation here
	
	//CDialog::OnOK();
}

void CDClient_Edit::Enabled(bool bEnabled)
{
	m_EdtAccount.EnableWindow(bEnabled);
	m_EdtTaxpayer.EnableWindow(bEnabled);
	m_EdtPhone.EnableWindow(bEnabled);
	m_EdtName.EnableWindow(bEnabled);
	m_EdtLMPhone.EnableWindow(bEnabled);
	m_EdtLinkman.EnableWindow(bEnabled);
	m_EdtLetterName.EnableWindow(bEnabled);
	m_EdtFax.EnableWindow(bEnabled);
	m_EdtEmail.EnableWindow(bEnabled);
	m_EdtAddr.EnableWindow(bEnabled);
	m_ComTown.EnableWindow(bEnabled);
	m_ComProvince.EnableWindow(bEnabled);
	m_ComCity.EnableWindow(bEnabled);
	m_ComBank.EnableWindow(bEnabled);
	m_ButUndo.EnableWindow(bEnabled);
	m_ButSave.EnableWindow(bEnabled);
	m_ButExit.EnableWindow(!bEnabled);
	m_ButDele.EnableWindow(!bEnabled);
	m_ButChange.EnableWindow(!bEnabled);
	m_ButAdd.EnableWindow(!bEnabled);
}

int CDClient_Edit::Clime(int Number)
{
	_RecordsetPtr ClimeRst;
	ClimeRst.CreateInstance(__uuidof(Recordset));
	CString sSQL,Style,Name,ParentID;
	int ReturnNumber;
	sSQL.Format("Select * from 地域信息表 Where 编号=%d",Number);
	ClimeRst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
	if(theApp.GetRecordCount(ClimeRst)>0)
	{
		ClimeRst->MoveFirst();
		Style=(char*)(_bstr_t)ClimeRst->GetCollect("类型");
		Name=(char*)(_bstr_t)ClimeRst->GetCollect("名称");
		ParentID=(char*)(_bstr_t)ClimeRst->GetCollect("上级编号");
		if(Style=="3")
			this->m_ComTown.SetWindowText(Name);
		if(Style=="2")
			this->m_ComCity.SetWindowText(Name);
		if(Style=="1")
			this->m_ComProvince.SetWindowText(Name);
		if(ParentID!="0")
		{
			ReturnNumber=atoi(ParentID);
			this->Clime(ReturnNumber);
		}
		else
		{
			ReturnNumber=0;
		}
	}
	return ReturnNumber;
}

void CDClient_Edit::Display(CString ID)
{
	CString sEmail,sName,sLatterName,sAddr,sClime,sPhone,sFax,sLinkman,sLMPhone,sBank,sAccount,sTaxpayer;
	_variant_t  Phone,Fax,LMPhone,Bank,Account,Taxpayer,Email;
	CString sSQL;
	sSQL.Format("Select * from %s Where 编号='%s'",this->DateBaseName,ID);
	try{
	rst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
	}
	catch(...)
	{
		theApp.ADOError(rst);
		return;
	}
	if(theApp.GetRecordCount(rst)>0)
	{
		rst->MoveFirst();
		CTime OutfactoryTime,KeepTime;
		sName=(char*)(_bstr_t)rst->GetCollect("名称");
		sLatterName=(char*)(_bstr_t)rst->GetCollect("简称");
		sAddr=(char*)(_bstr_t)rst->GetCollect("地址");
		sClime=(char*)(_bstr_t)rst->GetCollect("地区编号");
		Phone=rst->GetCollect("电话");
		if(Phone.vt==VT_EMPTY)
			sPhone="";
		else
			sPhone=(char*)(_bstr_t)Phone;
		Fax=rst->GetCollect("传真");
		if(Fax.vt==VT_EMPTY)
			sFax="";
		else
			sFax=(char*)(_bstr_t)Fax;
		sLinkman=(char*)(_bstr_t)rst->GetCollect("联系人");
		LMPhone=rst->GetCollect("联系人电话");
		if(LMPhone.vt==VT_EMPTY)
				sLMPhone="";
		else
			sLMPhone=(char*)(_bstr_t)LMPhone;
		Bank=rst->GetCollect("银行");
		if(Bank.vt==VT_EMPTY)
			sBank="";
		else
			sBank=(char*)(_bstr_t)Bank;
		Account=rst->GetCollect("帐户");
		if(Account.vt==VT_EMPTY)
			sAccount="";
		else
			sAccount=(char*)(_bstr_t)Account;
		Taxpayer=rst->GetCollect("纳税人");
		if(Taxpayer.vt==VT_EMPTY)
			sTaxpayer="";
		else
			sTaxpayer=(char*)(_bstr_t)Taxpayer;
		Email=rst->GetCollect("Email");
		if(Email.vt==VT_EMPTY)
			sEmail="";
		else
			sEmail=(char*)(_bstr_t)Email;

		m_EdtAccount.SetWindowText(sAccount);
		m_EdtTaxpayer.SetWindowText(sTaxpayer);
		m_EdtPhone.SetWindowText(sPhone);
		m_EdtName.SetWindowText(sName);
		m_EdtLMPhone.SetWindowText(sLMPhone);
		m_EdtLinkman.SetWindowText(sLinkman);
		m_EdtLetterName.SetWindowText(sLatterName);
		m_EdtID.SetWindowText(ID);
		m_EdtFax.SetWindowText(sFax);
		m_EdtEmail.SetWindowText(sEmail);
		m_EdtAddr.SetWindowText(sAddr);
		m_ComBank.SetWindowText(sBank);
		int nClime=atoi(sClime);
		Clime(nClime);
	}
	rst->Close();
}

void CDClient_Edit::ClearFrom()
{
	m_EdtAccount.SetWindowText("");
	m_EdtTaxpayer.SetWindowText("");
	m_EdtPhone.SetWindowText("");
	m_EdtName.SetWindowText("");
	m_EdtLMPhone.SetWindowText("");
	m_EdtLinkman.SetWindowText("");
	m_EdtLetterName.SetWindowText("");
	m_EdtID.SetWindowText("");
	m_EdtFax.SetWindowText("");
	m_EdtEmail.SetWindowText("");
	m_EdtAddr.SetWindowText("");
	m_ComTown.SetWindowText("");
	m_ComProvince.SetWindowText("");
	m_ComCity.SetWindowText("");
	m_ComBank.SetWindowText("");
}

void CDClient_Edit::OnBUTAdd() 
{
	CString NewID;
	Enabled(true);
	ClearFrom();
	if(this->DateBaseName=="客户信息表")
		NewID=theApp.AutoNumber(this->DateBaseName,"KH",1);
	else
		NewID=theApp.AutoNumber(this->DateBaseName,"GY",1);
	this->m_EdtID.SetWindowText(NewID);
	m_EdtName.SetFocus();
	AddOrChange=true;
	
}

void CDClient_Edit::OnBUTChange() 
{
	Enabled(true);
	m_EdtName.SetFocus();
	AddOrChange=false;	
}

void CDClient_Edit::OnBUTDele() 
{
	CString ID,sSQL;
	this->m_EdtID.GetWindowText(ID);
	if(ID.IsEmpty()==false)
	{
		int a=MessageBox("确定要删除此条记录吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION);
		if (a==1)
		{
			CString sSQL;
			sSQL.Format("DELETE FROM %s WHERE 编号='%s'",this->DateBaseName,ID);
			cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
			this->Enabled(false);
			this->ClearFrom();
		}
	}
	else
	{
		MessageBox("请选择一条记录!","系统提示",MB_OK|MB_ICONSTOP);
	}
	
}

void CDClient_Edit::OnBUTSave() 
{
	int a=MessageBox("确定保存记录吗?","系统提示",MB_ICONQUESTION|MB_OKCANCEL);
	if(a==1)
	{
	CString sSQL,sID,sEmail,sName,sLetterName,sAddr,sClime,sPhone,sFax,sLinkman,sLMPhone,sBank,sAccount,sTaxpayer;
	int nClime;	
		m_EdtID.GetWindowText(sID);
		m_EdtName.GetWindowText(sName);
		if(sName.IsEmpty())
		{
			MessageBox("请添入名称!","系统提示",MB_OK|MB_ICONSTOP);
			m_EdtName.SetFocus();
			return;
		}
		m_EdtLetterName.GetWindowText(sLetterName);
		if(sLetterName.IsEmpty())
		{	
			MessageBox("请添入简称!","系统提示",MB_OK|MB_ICONSTOP);
			m_EdtLetterName.SetFocus();
			return;
		}
		m_EdtAddr.GetWindowText(sAddr);
		if(sAddr.IsEmpty())
		{
			MessageBox("请添入地址!","系统提示",MB_OK|MB_ICONSTOP);
			m_EdtAddr.SetFocus();
			return;
		}
		m_ComTown.GetWindowText(sClime);
		if(sClime.IsEmpty())
		{
			MessageBox("请添入所属区域!","系统提示",MB_OK|MB_ICONSTOP);
			m_EdtAddr.SetFocus();
			return;	
		}
		nClime=theApp.NumberTOName("地域信息表","名称",sClime);
		m_EdtPhone.GetWindowText(sPhone);
		m_EdtFax.GetWindowText(sFax);
		m_EdtLinkman.GetWindowText(sLinkman);
		if(sLinkman.IsEmpty())
		{
			MessageBox("请添入联系人!","系统提示",MB_OK|MB_ICONSTOP);
			m_EdtLinkman.SetFocus();
			return;		
		}
		m_EdtLMPhone.GetWindowText(sLMPhone);
		m_ComBank.GetWindowText(sBank);
		m_EdtAccount.GetWindowText(sAccount);
		m_EdtTaxpayer.GetWindowText(sTaxpayer);
		m_EdtEmail.GetWindowText(sEmail);
		if(this->AddOrChange==true)// 如果执行添加操作	
			sSQL.Format("Insert Into %s values ('%s','%s','%s','%s',%d,'%s','%s','%s','%s','%s','%s','%s','%s')",this->DateBaseName,sID,sName,sLetterName,sAddr,nClime,sPhone,sFax,sLinkman,sLMPhone,sBank,sAccount,sTaxpayer,sEmail);
		else
			sSQL.Format("UPDATE %s SET 名称='%s',简称='%s',地址='%s',地区编号=%d,电话='%s',传真='%s',联系人='%s',联系人电话='%s',银行='%s',帐户='%s',纳税人='%s',Email='%s' WHERE 编号='%s'",this->DateBaseName,sName,sLetterName,sAddr,nClime,sPhone,sFax,sLinkman,sLMPhone,sBank,sAccount,sTaxpayer,sEmail,sID);
		cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
		this->Enabled(false);
		this->m_ButAdd.SetFocus();
	}	
}

BOOL CDClient_Edit::OnInitDialog() 
{
	CDialog::OnInitDialog();
	CString sSQL;
		//设置图标
	m_hIcon=::LoadIcon(::AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON1));
	this->SetIcon(m_hIcon,true);
	rst.CreateInstance(__uuidof(Recordset));
	
	sSQL.Format("SELECT* From 地域信息表 WHERE 上级编号=0");
	rst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
	this->m_ComProvince.SetRecordset(rst,"名称");
	rst->Close();

	sSQL.Format("SELECT* From 地域信息表 WHERE 上级编号=1");
	rst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
	this->m_ComCity.SetRecordset(rst,"名称");
	rst->Close();

	sSQL.Format("SELECT* From 地域信息表 WHERE 上级编号=2");
	rst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
	this->m_ComTown.SetRecordset(rst,"名称");
	rst->Close();

	this->SetWindowText(this->WindowText);	
	Display(DisplayNumber);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CDClient_Edit::OnBUTUndo() 
{
	this->Display(this->DisplayNumber);
	this->Enabled(false);
	this->m_ButAdd.SetFocus();

}

void CDClient_Edit::OnBUTExit() 
{
	this->OnCancel();	
}

void CDClient_Edit::OnChangeEDTName3() 
{
	CString sName,sLaterName;
	m_EdtName.GetWindowText(sName);
	sLaterName=theApp.CharToLetterCode(sName);
	this->m_EdtLetterName.SetWindowText(sLaterName);	
}

void CDClient_Edit::OnKillfocusCOMPorvince() 
{
	int ID;
	CString sClime,sSQL;
	m_ComProvince.GetWindowText(sClime);
	ID=theApp.NumberTOName("地域信息表","名称",sClime);
	if(ID<=0)
	{
		int a=MessageBox("您输入的省份并没有登记!请先在地域管理模块中登记!进入地域管理模块吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION);
		if(a==1)
		{
			CDClime dlg;
			dlg.DoModal();
		}
		else
		{
			m_ComProvince.SetWindowText("");
			m_ComProvince.SetFocus();

		}
	}
	else
	{
		sSQL.Format("SELECT* From 地域信息表 WHERE 上级编号=%d",ID);
		rst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
		this->m_ComCity.ResetContent();
		this->m_ComCity.SetRecordset(rst,"名称");
		rst->Close();
	}	
}

void CDClient_Edit::OnKillfocusCOMCity() 
{
 		int ID;
	CString sClime,sSQL;
	m_ComCity.GetWindowText(sClime);
	ID=theApp.NumberTOName("地域信息表","名称",sClime);
	if(ID<=0)
	{
		int a=MessageBox("您输入的城市并没有登记!请先在地域管理模块中登记!进入地域管理模块吗?","系统提示",MB_OKCANCEL|MB_ICONQUESTION);
		if(a==1)
		{
			CDClime dlg;
			dlg.DoModal();
		}
		else
		{
			m_ComCity.SetWindowText("");
			m_ComCity.SetFocus();

		}
	}
	else
	{
		sSQL.Format("SELECT* From 地域信息表 WHERE 上级编号=%d",ID);
		rst=cnn->Execute((_bstr_t)sSQL,NULL,adCmdText);
		this->m_ComTown.ResetContent();
		this->m_ComTown.SetRecordset(rst,"名称");
		rst->Close();
	}	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -