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

📄 dlgcustomerinfo.cpp

📁 用VC编写的立体仓库的管理软件源程序和设计说明书。
💻 CPP
字号:
// DlgCustomerInfo.cpp : implementation file
//

#include "stdafx.h"
#include "Manage_WH.h"
#include "DlgCustomerInfo.h"

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

/////////////////////////////////////////////////////////////////////////////
// CDlgCustomerInfo dialog


CDlgCustomerInfo::CDlgCustomerInfo(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgCustomerInfo::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgCustomerInfo)
	m_code = _T("");
	m_companyName = _T("");
	m_contactName = _T("");
	m_address = _T("");
	m_city = _T("");
	m_email = _T("");
	m_fax = _T("");
	m_homePage = _T("");
	m_phone = _T("");
	m_postalCode = _T("");
	m_remark = _T("");
	//}}AFX_DATA_INIT
	m_iAddOrChange = 0;
	m_hIcon = AfxGetApp()->LoadIcon(IDI_MYICON);
}


void CDlgCustomerInfo::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgCustomerInfo)
	DDX_Control(pDX, IDCANCEL, m_ButExit);
	DDX_Control(pDX, IDC_UNDO, m_ButUndo);
	DDX_Control(pDX, IDC_SAVE, m_ButSave);
	DDX_Control(pDX, IDC_LIST, m_list);
	DDX_Control(pDX, IDC_DEL, m_ButDel);
	DDX_Control(pDX, IDC_CHANGE, m_ButEdit);
	DDX_Control(pDX, IDC_ADD, m_ButAdd);
	DDX_Text(pDX, IDC_CODE, m_code);
	DDV_MaxChars(pDX, m_code, 20);
	DDX_Text(pDX, IDC_COMPANY_NAME, m_companyName);
	DDV_MaxChars(pDX, m_companyName, 100);
	DDX_Text(pDX, IDC_CONTACT_NAME, m_contactName);
	DDV_MaxChars(pDX, m_contactName, 30);
	DDX_Text(pDX, IDC_ADDRESS, m_address);
	DDV_MaxChars(pDX, m_address, 100);
	DDX_Text(pDX, IDC_CITY, m_city);
	DDV_MaxChars(pDX, m_city, 15);
	DDX_Text(pDX, IDC_EMAIL, m_email);
	DDV_MaxChars(pDX, m_email, 50);
	DDX_Text(pDX, IDC_FAX, m_fax);
	DDV_MaxChars(pDX, m_fax, 24);
	DDX_Text(pDX, IDC_HOME_PAGE, m_homePage);
	DDV_MaxChars(pDX, m_homePage, 50);
	DDX_Text(pDX, IDC_PHONE, m_phone);
	DDV_MaxChars(pDX, m_phone, 15);
	DDX_Text(pDX, IDC_POSTAL_CODE, m_postalCode);
	DDV_MaxChars(pDX, m_postalCode, 6);
	DDX_Text(pDX, IDC_REMARK, m_remark);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgCustomerInfo, CDialog)
	//{{AFX_MSG_MAP(CDlgCustomerInfo)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST, OnDblclkList)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_CHANGE, OnChange)
	ON_BN_CLICKED(IDC_DEL, OnDel)
	ON_BN_CLICKED(IDC_SAVE, OnSave)
	ON_BN_CLICKED(IDC_UNDO, OnUndo)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgCustomerInfo message handlers

BOOL CDlgCustomerInfo::PreTranslateMessage(MSG* pMsg) 
{
	if (pMsg->message==WM_KEYDOWN && (pMsg->wParam==13 || pMsg->wParam==27))
		return TRUE;
	return CDialog::PreTranslateMessage(pMsg);
}

BOOL CDlgCustomerInfo::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	SetIcon(m_hIcon,TRUE);

	switch(m_iTitle)
	{
	case 1:
		SetWindowText("承运商信息维护");
		m_list.InsertColumn(0,"承运商编号",LVCFMT_LEFT,90,-1);
		break;
	case 2:
		SetWindowText("客户信息维护");
		m_list.InsertColumn(0,"客户编号",LVCFMT_LEFT,90,-1);
		break;
	case 3:
		SetWindowText("供货商信息维护");
		m_list.InsertColumn(0,"供货商编号",LVCFMT_LEFT,90,-1);
		break;
	}

	m_list.InsertColumn(1,"公司名称",LVCFMT_LEFT,90,-1);
	m_list.InsertColumn(2,"联系人",LVCFMT_LEFT,90,-1);
	m_list.InsertColumn(3,"公司地址",LVCFMT_LEFT,90,-1);
	m_list.InsertColumn(4,"所在城市",LVCFMT_LEFT,90,-1);
	m_list.InsertColumn(5,"邮政编码",LVCFMT_LEFT,90,-1);
	m_list.InsertColumn(6,"联系电话",LVCFMT_LEFT,90,-1);
	m_list.InsertColumn(7,"传真号码",LVCFMT_LEFT,90,-1);
	m_list.InsertColumn(8,"公司主页",LVCFMT_LEFT,180,-1);
	m_list.InsertColumn(9,"E-mail",LVCFMT_LEFT,180,-1);
	m_list.InsertColumn(10,"录入时间",LVCFMT_LEFT,90,-1);
	m_list.InsertColumn(11,"更新时间",LVCFMT_LEFT,90,-1);
	m_list.InsertColumn(12,"操作员",LVCFMT_LEFT,90,-1);
	m_list.InsertColumn(13,"备注信息",LVCFMT_LEFT,200,-1);
	m_list.SetExtendedStyle( LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT );
	Refresh();
	
	return TRUE;
}

void CDlgCustomerInfo::Refresh()
{
	CString sVal,sSQL;	
	switch (m_iTitle)
	{
	case 1:
		sSQL = "select F_Index,F_CompanyName,F_ContactName,F_Address,F_City,F_PostalCode,F_Phone,F_Fax,F_HomePage,F_Email,F_ReadInTime,F_UpdateTime,F_Operator,F_Memo from T_Carriers";
		break;
	case 2:
		sSQL = "select F_Index,F_CompanyName,F_ContactName,F_Address,F_City,F_PostalCode,F_Phone,F_Fax,F_HomePage,F_Email,F_ReadInTime,F_UpdateTime,F_Operator,F_Memo from T_Customers";
		break;
	case 3:
		sSQL = "select F_Index,F_CompanyName,F_ContactName,F_Address,F_City,F_PostalCode,F_Phone,F_Fax,F_HomePage,F_Email,F_ReadInTime,F_UpdateTime,F_Operator,F_Memo from T_Suppliers";
		break;
	}

	CAdoConnection cn;
	if (cn.OpenUDLFile(gstrConSQLSer))
	{
		CAdoRecordSet rs;
		rs.SetAdoConnection(&cn);
		rs.Open(sSQL,adCmdText);
		if (rs.GetRecordCount() != 0)
		{
			int row = 0;
			m_list.DeleteAllItems();
			rs.MoveFirst();
			while (!rs.IsEOF())
			{
				row = m_list.InsertItem(row,"");
				
				for (int i = 0; i < 14; i++)
				{
					rs.GetCollect(i,sVal);
					m_list.SetItemText(row,i,sVal);
				}
				
				rs.MoveNext();
				row++;
			}
		}
		rs.Close();
		cn.Close();
	}
	else
	{
		MessageBox("数据库连接失败!\n","系统提示",MB_ICONSTOP|MB_OK);
		return;
	}
}

void CDlgCustomerInfo::Enabled(BOOL bEnabled)
{
	m_list.EnableWindow(!bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_CODE))->EnableWindow(bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_COMPANY_NAME))->EnableWindow(bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_CITY))->EnableWindow(bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_ADDRESS))->EnableWindow(bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_POSTAL_CODE))->EnableWindow(bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_CONTACT_NAME))->EnableWindow(bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_PHONE))->EnableWindow(bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_FAX))->EnableWindow(bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_HOME_PAGE))->EnableWindow(bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_EMAIL))->EnableWindow(bEnabled);
	static_cast<CEdit *>(GetDlgItem(IDC_REMARK))->EnableWindow(bEnabled);
	m_ButUndo.EnableWindow(bEnabled);
	m_ButSave.EnableWindow(bEnabled);
	m_ButExit.EnableWindow(!bEnabled);
	m_ButDel.EnableWindow(!bEnabled);
	m_ButEdit.EnableWindow(!bEnabled);
	m_ButAdd.EnableWindow(!bEnabled);
}

void CDlgCustomerInfo::ClearFrom()
{
	static_cast<CEdit *>(GetDlgItem(IDC_CODE))->SetWindowText("");
	static_cast<CEdit *>(GetDlgItem(IDC_COMPANY_NAME))->SetWindowText("");
	static_cast<CEdit *>(GetDlgItem(IDC_CITY))->SetWindowText("");
	static_cast<CEdit *>(GetDlgItem(IDC_ADDRESS))->SetWindowText("");
	static_cast<CEdit *>(GetDlgItem(IDC_POSTAL_CODE))->SetWindowText("");
	static_cast<CEdit *>(GetDlgItem(IDC_CONTACT_NAME))->SetWindowText("");
	static_cast<CEdit *>(GetDlgItem(IDC_PHONE))->SetWindowText("");
	static_cast<CEdit *>(GetDlgItem(IDC_FAX))->SetWindowText("");
	static_cast<CEdit *>(GetDlgItem(IDC_HOME_PAGE))->SetWindowText("");
	static_cast<CEdit *>(GetDlgItem(IDC_EMAIL))->SetWindowText("");
	static_cast<CEdit *>(GetDlgItem(IDC_REMARK))->SetWindowText("");
}

void CDlgCustomerInfo::OnDblclkList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	for (int i=0; i<m_list.GetItemCount(); i++)
	{
		if (m_list.GetItemState(i,LVIS_SELECTED) == LVIS_SELECTED)
		{
			static_cast<CEdit *>(GetDlgItem(IDC_CODE))->SetWindowText(m_list.GetItemText(i,0));
			static_cast<CEdit *>(GetDlgItem(IDC_COMPANY_NAME))->SetWindowText(m_list.GetItemText(i,1));
			static_cast<CEdit *>(GetDlgItem(IDC_CITY))->SetWindowText(m_list.GetItemText(i,4));
			static_cast<CEdit *>(GetDlgItem(IDC_ADDRESS))->SetWindowText(m_list.GetItemText(i,3));
			static_cast<CEdit *>(GetDlgItem(IDC_POSTAL_CODE))->SetWindowText(m_list.GetItemText(i,5));
			static_cast<CEdit *>(GetDlgItem(IDC_CONTACT_NAME))->SetWindowText(m_list.GetItemText(i,2));
			static_cast<CEdit *>(GetDlgItem(IDC_PHONE))->SetWindowText(m_list.GetItemText(i,6));
			static_cast<CEdit *>(GetDlgItem(IDC_FAX))->SetWindowText(m_list.GetItemText(i,7));
			static_cast<CEdit *>(GetDlgItem(IDC_HOME_PAGE))->SetWindowText(m_list.GetItemText(i,8));
			static_cast<CEdit *>(GetDlgItem(IDC_EMAIL))->SetWindowText(m_list.GetItemText(i,9));
			static_cast<CEdit *>(GetDlgItem(IDC_REMARK))->SetWindowText(m_list.GetItemText(i,13));
			break;
		}
	}	
	*pResult = 0;
}

void CDlgCustomerInfo::OnAdd() 
{
	ClearFrom();
	Enabled(true);
	static_cast<CEdit *>(GetDlgItem(IDC_CODE))->SetFocus();
	m_iAddOrChange = 1;	
}

void CDlgCustomerInfo::OnChange() 
{
	UpdateData(TRUE);
	if (m_companyName.IsEmpty())
	{
		MessageBox("请选择要修改的用户!\n","系统提示",MB_ICONSTOP|MB_OK);
		return;
	}
	Enabled(true);
	static_cast<CEdit *>(GetDlgItem(IDC_CODE))->EnableWindow(false);
	static_cast<CEdit *>(GetDlgItem(IDC_COMPANY_NAME))->EnableWindow(false);
	static_cast<CEdit *>(GetDlgItem(IDC_CITY))->SetFocus();
	m_iAddOrChange = 2;	
}

void CDlgCustomerInfo::OnDel() 
{
	UpdateData(TRUE);
	if (m_companyName.IsEmpty())
	{
		MessageBox("请选择要删除的记录!\n","系统提示",MB_ICONSTOP|MB_OK);
		return;
	}
	if (gstrPopedom == "普通用户")
	{
		MessageBox("对不起,您没有执行删除操作的权限!","系统提示",MB_ICONQUESTION|MB_OK);
		return;
	}

	CString sSQL,sMessage1,sMessage2;
	switch (m_iTitle)
	{
	case 1:
		sSQL = "delete from T_Carriers where F_CompanyName = '"+m_companyName+"'";
		sMessage1 = "确定要删除["+m_companyName+"]的信息吗?";
		sMessage2 = "删除["+m_companyName+"]的信息!";
		break;
	case 2:
		sSQL = "delete from T_Customers where F_CompanyName = '"+m_companyName+"'";
		sMessage1 = "确定要删除["+m_companyName+"]的信息吗?";
		sMessage2 = "删除["+m_companyName+"]的信息!";
		break;
	case 3:
		sSQL = "delete from T_Suppliers where F_CompanyName = '"+m_companyName+"'";
		sMessage1 = "确定要删除["+m_companyName+"]的信息吗?";
		sMessage2 = "删除["+m_companyName+"]的信息!";
		break;
	}

	if (MessageBox(sMessage1,"系统提示",MB_OKCANCEL|MB_ICONQUESTION) == 1)
	{
		CAdoConnection cn;
		cn.OpenUDLFile(gstrConSQLSer);
		cn.Execute(sSQL);
		cn.Close();
		::AddLog(sMessage2);
		Enabled(false);
		ClearFrom();
		Refresh();
	}	
}

void CDlgCustomerInfo::OnSave() 
{
	if (MessageBox("请确定是否保存记录?","系统提示",MB_ICONQUESTION|MB_OKCANCEL) == 0)	
		return;
	UpdateData(TRUE);
	CString sSQL,sWarning,sMessage;

	if (m_companyName.IsEmpty())						sWarning = "公司名称不能为空,请输入!";
	else if (m_code.IsEmpty())							sWarning = "编号不能为空,请输入!";
	else if (m_iAddOrChange == 1 && IsHave(m_companyName,m_code,m_iTitle))	sWarning = "客户信息已存在,请重新输入或返回!";

	if (!sWarning.IsEmpty())
	{
		MessageBox(sWarning,"系统提示",MB_ICONSTOP|MB_OK);
		return;
	}

	CAdoConnection cn;
	cn.OpenUDLFile(gstrConSQLSer);

	switch (m_iAddOrChange)
	{
	case 1:
		switch (m_iTitle)
		{
		case 1:
			sMessage = "添加承运商信息。编号:"+m_code+";名称:"+m_companyName+"";
			sSQL = "INSERT INTO T_Carriers VALUES('"+m_code+"','"+m_companyName+"','"+m_contactName+"','"+m_address+"','"+m_city+"','"+m_postalCode+"','"+m_phone+"','"+m_fax+"','"+m_homePage+"','"+m_email+"','"+GetDate(1)+"','"+GetDate(1)+"','"+gstrOperator+"','"+m_remark+"')";
			break;
		case 2:
			sMessage = "添加客户信息。编号:"+m_code+";名称:"+m_companyName+"";
			sSQL = "INSERT INTO T_Customers VALUES('"+m_code+"','"+m_companyName+"','"+m_contactName+"','"+m_address+"','"+m_city+"','"+m_postalCode+"','"+m_phone+"','"+m_fax+"','"+m_homePage+"','"+m_email+"','"+GetDate(1)+"','"+GetDate(1)+"','"+gstrOperator+"','"+m_remark+"')";
			break;
		case 3:
			sMessage = "添加供货商信息。编号:"+m_code+";名称:"+m_companyName+"";
			sSQL = "INSERT INTO T_Suppliers VALUES('"+m_code+"','"+m_companyName+"','"+m_contactName+"','"+m_address+"','"+m_city+"','"+m_postalCode+"','"+m_phone+"','"+m_fax+"','"+m_homePage+"','"+m_email+"','"+GetDate(1)+"','"+GetDate(1)+"','"+gstrOperator+"','"+m_remark+"')";
			break;
		}
		cn.Execute(sSQL,adCmdText);
		cn.Close();
		AddLog(sMessage);
		break;
	case 2:
		switch (m_iTitle)
		{
		case 1:
			sSQL = "UPDATE T_Carriers SET F_ContactName='"+m_contactName+"',F_Address='"+m_address+"',F_City='"+m_city+"',F_PostalCode='"+m_postalCode+"',F_Phone='"+m_phone+"',F_Fax='"+m_fax+"',F_HomePage='"+m_homePage+"',F_Email='"+m_email+"',F_UpdateTime='"+GetDate(1)+"',F_Operator='"+gstrOperator+"',F_Memo='"+m_remark+"' WHERE F_CompanyName='"+m_companyName+"'";
			break;
		case 2:
			sSQL = "UPDATE T_Customers SET F_ContactName='"+m_contactName+"',F_Address='"+m_address+"',F_City='"+m_city+"',F_PostalCode='"+m_postalCode+"',F_Phone='"+m_phone+"',F_Fax='"+m_fax+"',F_HomePage='"+m_homePage+"',F_Email='"+m_email+"',F_UpdateTime='"+GetDate(1)+"',F_Operator='"+gstrOperator+"',F_Memo='"+m_remark+"' WHERE F_CompanyName='"+m_companyName+"'";
			break;
		case 3:
			sSQL = "UPDATE T_Suppliers SET F_ContactName='"+m_contactName+"',F_Address='"+m_address+"',F_City='"+m_city+"',F_PostalCode='"+m_postalCode+"',F_Phone='"+m_phone+"',F_Fax='"+m_fax+"',F_HomePage='"+m_homePage+"',F_Email='"+m_email+"',F_UpdateTime='"+GetDate(1)+"',F_Operator='"+gstrOperator+"',F_Memo='"+m_remark+"' WHERE F_CompanyName='"+m_companyName+"'";
			break;
		}
		cn.Execute(sSQL,adCmdText);
		cn.Close();
		AddLog("修改["+m_companyName+"]的信息!");
		break;
	}
	Enabled(false);
	ClearFrom();
	Refresh();
}

BOOL CDlgCustomerInfo::IsHave(const CString &sName, const CString &sNum, const int &iType)
{
	BOOL bHave;
	CString sSQL;
	switch (iType)
	{
	case 1:
		sSQL = "select * from T_Carriers where F_Index = '"+sNum+"' or F_CompanyName = '"+sName+"'";
		break;
	case 2:
		sSQL = "select * from T_Customers where F_Index = '"+sNum+"' or F_CompanyName = '"+sName+"'";
		break;
	case 3:
		sSQL = "select * from T_Suppliers where F_Index = '"+sNum+"' or F_CompanyName = '"+sName+"'";
		break;
	}
	CAdoConnection cn;
	CAdoRecordSet  rs;
	cn.OpenUDLFile(gstrConSQLSer);
	rs.SetAdoConnection(&cn);
	rs.Open(sSQL,adCmdText);
	if (rs.GetRecordCount() != 0)
		bHave = TRUE;
	else
		bHave = FALSE;
	rs.Close();
	cn.Close();
	return bHave;
}

void CDlgCustomerInfo::OnUndo() 
{
	ClearFrom();
	Enabled(false);
	Refresh();	
}

⌨️ 快捷键说明

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