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

📄 providerdlg.cpp

📁 < Visual C+++SQL Server数据库开发与实例>>一书中的实例核心源程序提供了几个案例的编程源代码。
💻 CPP
字号:
// ProviderDLG.cpp : implementation file
//

#include "stdafx.h"
#include "trade_mis.h"
#include "ProviderDLG.h"
#include "Trade_MISView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CProviderDLG dialog


CProviderDLG::CProviderDLG(CWnd* pParent /*=NULL*/)
	: CDialog(CProviderDLG::IDD, pParent)
{
	//{{AFX_DATA_INIT(CProviderDLG)
	m_sAddress = _T("");
	m_sArea = _T("");
	m_sCity = _T("");
	m_sCompany = _T("");
	m_sFax = _T("");
	m_sHomePage = _T("");
	m_sMemo = _T("");
	m_sPerson = _T("");
	m_sPhone = _T("");
	m_sPostCode = _T("");
	//}}AFX_DATA_INIT
}


void CProviderDLG::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CProviderDLG)
	DDX_Text(pDX, IDD_PROVIDER_ADDRESS, m_sAddress);
	DDX_Text(pDX, IDD_PROVIDER_AREA, m_sArea);
	DDX_Text(pDX, IDD_PROVIDER_CITY, m_sCity);
	DDX_Text(pDX, IDD_PROVIDER_COMPANY, m_sCompany);
	DDX_Text(pDX, IDD_PROVIDER_FAX, m_sFax);
	DDX_Text(pDX, IDD_PROVIDER_HOMEPAGE, m_sHomePage);
	DDX_Text(pDX, IDD_PROVIDER_MEMO, m_sMemo);
	DDX_Text(pDX, IDD_PROVIDER_PERSON, m_sPerson);
	DDX_Text(pDX, IDD_PROVIDER_PHONE, m_sPhone);
	DDX_Text(pDX, IDD_PROVIDER_POSTCODE, m_sPostCode);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CProviderDLG, CDialog)
	//{{AFX_MSG_MAP(CProviderDLG)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CProviderDLG message handlers

void CProviderDLG::OnOK() 
{
	// TODO: Add extra validation here
	
	UpdateData(true);
	
	m_sCompany.TrimRight(" ");
    m_sPerson.TrimRight(" ");
	m_sAddress.TrimRight(" ");
	m_sCity.TrimRight(" ");
	m_sArea.TrimRight(" ");
	m_sPostCode.TrimRight(" ");
	m_sPhone.TrimRight(" ");
	m_sFax.TrimRight(" ");
	m_sHomePage.TrimRight(" ");
	
	// Make sure all needed info is available
	CString sWarning="";
	if ( ""==m_sCompany ) sWarning=_T("公司名称");
    else if ( ""==m_sPerson ) sWarning=_T("联系人姓名");
	else if ( ""==m_sAddress ) sWarning=_T("联系地址");
	else if ( ""==m_sCity ) sWarning=_T("城市名称");
	else if ( ""==m_sArea ) sWarning=_T("地区名称");
	else if ( ""==m_sPostCode ) sWarning=_T("邮政编码");
	else if ( ""==m_sPhone ) sWarning=_T("联系电话");
	else if ( ""==m_sFax ) sWarning=_T("传真号码");
	else if ( ""==m_sHomePage ) sWarning=_T("公司主页");
	    
	if ( ""!=sWarning ) 
	{
	   sWarning += _T("不能为空");
	   AfxMessageBox(sWarning, MB_ICONEXCLAMATION);
	   return;
	}
	
	_variant_t strQuery;	
	if ( m_bAppend || m_sCompany!=m_sOldCompany )
	{
		// Judge Provider is unique
	    strQuery = "select * from suppliers where CompanyName='"+m_sCompany+"'";
	    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	    int iCount = theApp.m_pADOSet->GetRecordCount();
	    if ( 0!=iCount )
		{
	       AfxMessageBox(_T("已经存在此公司记录!"), MB_ICONEXCLAMATION);
	       return;
		}
	}
		
	if ( !m_bAppend ) // Not Append, delete old record first
	{
		strQuery = "delete from suppliers where CompanyName='"+m_sOldCompany+"'";
	    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	}
	
	// Insert Record
	strQuery = "insert suppliers (CompanyName, ContactName, Address, City, Region, PostalCode, Phone,Fax, HomePage, SupplierMemo) \
		        values ('"+m_sCompany+"', '"+m_sPerson+"', '"+m_sAddress+"', '"+m_sCity+"', '"+m_sArea+"', '"+m_sPostCode+"', '"+m_sPhone+"', '"+m_sFax+"', '"+m_sHomePage+"', '"+m_sMemo+"')";
	if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) 
	{
	    if (m_bAppend) 
		{
			AfxMessageBox(_T("添加供应商信息成功!"), MB_ICONINFORMATION);
	        // Clear all input
            m_sCompany=m_sPerson=m_sAddress=m_sCity=m_sArea=m_sPostCode=m_sPhone=m_sFax=m_sHomePage=m_sMemo="";
            UpdateData(false);
		}
		else AfxMessageBox(_T("修改供应商信息成功!"), MB_ICONINFORMATION);
	}
	else 
	{
		if (m_bAppend) AfxMessageBox(_T("添加供应商信息失败!"), MB_ICONEXCLAMATION);
		else AfxMessageBox(_T("修改供应商信息失败!"), MB_ICONEXCLAMATION);
	}
	
	strQuery = "select * from suppliers";
	CTrade_MISView* p = (CTrade_MISView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
	p->RefreshProvider(strQuery);
	
	if (!m_bAppend) CDialog::OnOK();
}

BOOL CProviderDLG::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	
	// Set Windows Text
	if (m_bAppend) SetWindowText(_T("添加供应商信息"));
	else  SetWindowText(_T("修改供应商信息"));

	m_sOldCompany = m_sCompany;

	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 + -