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

📄 clientdlg.cpp

📁 一个简单的客户关系管理系统 用VisualC++写的 感pudn 对我的帮助 
💻 CPP
字号:
// ClientDlg.cpp : implementation file
//

#include "stdafx.h"
#include "CRM.h"
#include "ClientDlg.h"
#include "ClientSet.h"
#include "ClientInfoDlg.h"
#include "SearchClientDlg.h"
#include "DeleteDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CClientDlg dialog


CClientDlg::CClientDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CClientDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CClientDlg)
		m_nIndex=-1;
	//}}AFX_DATA_INIT
}


void CClientDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CClientDlg)
	DDX_Control(pDX, IDC_SEARCH, m_searchButton);
	DDX_Control(pDX, IDC_LIST1, m_clientList);
	DDX_Control(pDX, IDC_EDIT, m_editButton);
	DDX_Control(pDX, IDC_DISPLAY, m_displayButton);
	DDX_Control(pDX, IDC_DELETE, m_deleteButton);
	DDX_Control(pDX, IDC_ADD, m_addButton);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CClientDlg, CDialog)
	//{{AFX_MSG_MAP(CClientDlg)
	ON_BN_CLICKED(IDC_DISPLAY, OnDisplay)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_EDIT, OnEdit)
	ON_BN_CLICKED(IDC_DELETE, OnDelete2)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
	ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnRclickList1)
	ON_COMMAND(IDM_DELETE, OnDelete)
	ON_COMMAND(IDM_EDIT, OnEdit)
	ON_COMMAND(IDM_ADD, OnAdd)
	ON_BN_CLICKED(IDC_SEARCH, OnSearch)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CClientDlg message handlers
BOOL CClientDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	

	m_clientList.SetTextColor(RGB(0,0,255));
	m_clientList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	
	m_clientList.InsertColumn(0,"客户ID",LVCFMT_LEFT,60);
	m_clientList.InsertColumn(1,"姓名",LVCFMT_LEFT,120);
	m_clientList.InsertColumn(2,"地址",LVCFMT_LEFT,120);
	m_clientList.InsertColumn(3,"电话",LVCFMT_LEFT,110);
	m_clientList.InsertColumn(4,"手机",LVCFMT_LEFT,110);
	m_clientList.InsertColumn(5,"传真",LVCFMT_LEFT,110);
	m_clientList.InsertColumn(6,"备注",LVCFMT_LEFT,110);
	
	m_clientSet.Open();
    m_clientSet.Requery();

	return TRUE;
}

void CClientDlg::OnDisplay() 
{
	m_clientSet.m_strFilter=_T("");
	m_clientSet.Requery();
	DataBaseToCtrl();
}

void CClientDlg::OnAdd() 
{
	

	CClientInfoDlg dlg;
	dlg.m_isAdd=true;
	
	if(dlg.DoModal()==IDOK)
	{
		m_clientSet.m_strFilter="clientID='"+dlg.m_clientID+"'";
		m_clientSet.Requery();
		if(!m_clientSet.IsEOF())
		{
			MessageBox("该用户ID已经存在,请选删除后再增加!","提示",MB_ICONINFORMATION);
			return;
		}
		
		m_clientSet.AddNew();
		m_clientSet.m_clientID=dlg.m_clientID;
		m_clientSet.m_name=dlg.m_name;
		m_clientSet.m_address=dlg.m_address;
		m_clientSet.m_tel=dlg.m_tel;
		m_clientSet.m_cellphone=dlg.m_cellphone;
		m_clientSet.m_fax=dlg.m_fax;
		m_clientSet.m_appendix=dlg.m_appendix;
		m_clientSet.Update();

		OnDisplay();
	}	
	
}

void CClientDlg::OnEdit() 
{
	if(m_nIndex==-1)
	{
		MessageBox("请先选择一项再进行修改!","提示",MB_ICONINFORMATION);
		return;
	}

	CClientInfoDlg dlg;
	dlg.m_isAdd=false;
	dlg.m_clientID=m_clientList.GetItemText(m_nIndex,0);
	dlg.m_name=m_clientList.GetItemText(m_nIndex,1);
	dlg.m_address=m_clientList.GetItemText(m_nIndex,2);
	dlg.m_tel=m_clientList.GetItemText(m_nIndex,3);
	dlg.m_cellphone=m_clientList.GetItemText(m_nIndex,4);
	dlg.m_fax=m_clientList.GetItemText(m_nIndex,5);
	dlg.m_appendix=m_clientList.GetItemText(m_nIndex,6);
	
	if(dlg.DoModal()==IDOK)
	{
		m_clientSet.m_strFilter="clientID='"+dlg.m_clientID+"'";
		m_clientSet.Requery();
		m_clientSet.Edit();
		m_clientSet.m_name=dlg.m_name;
		m_clientSet.m_address=dlg.m_address;
		m_clientSet.m_tel=dlg.m_tel;
		m_clientSet.m_cellphone=dlg.m_cellphone;
		m_clientSet.m_fax=dlg.m_fax;
		m_clientSet.m_appendix=dlg.m_appendix;
		m_clientSet.Update();
		m_clientSet.m_strFilter="";
		OnDisplay();
	}
	
}

void CClientDlg::OnDelete() 
{
	POSITION pos = m_clientList.GetFirstSelectedItemPosition();
	m_nIndex = m_clientList.GetNextSelectedItem(pos);  // 得到项目索引
	
	
	if(m_nIndex==-1)
	{
		MessageBox("请选择一项再删除!","提示",MB_ICONINFORMATION);
		return;
	}

	CString s=m_clientList.GetItemText(m_nIndex,0);
	if(AfxMessageBox("您真的要删除用户"+s+"吗?",MB_YESNO)==IDYES)
	{
	m_clientSet.m_strFilter="clientID='"+s+"'";
	m_clientSet.Requery();
	m_clientSet.Delete();
	m_clientSet.m_strFilter="";
	m_clientList.DeleteItem(m_nIndex);
	OnDisplay();
	}
	else
	{
		return;
	}

	
}

void CClientDlg::OnDelete2() 
{
	UINT flag;
	
	if(m_clientList.GetItemCount() == 0)
		flag = 2;
	else
	if(m_clientList.GetSelectionMark() == -1)
		flag = 1;
	else
		flag = 0;
	CDeleteDlg dlg(flag);
	if(dlg.DoModal() == IDOK)
	{
//		int w;
		int s = dlg.GetSelectInfo();
		switch(s)
		{
		case 0:                      //Delete selection data.
			OnDelete();
			break;
		case 1:                      //Delete all datas in list.
			if(AfxMessageBox("将删除本次查询中(列表中)所有的数据,您确认吗?",MB_OKCANCEL|MB_ICONINFORMATION) == IDOK)
			{
				m_clientSet.Requery();
				while(m_clientSet.GetRecordCount() != 0)
				{
					m_clientSet.MoveFirst();
					m_clientSet.Delete();
					m_clientSet.Requery();
				}
				m_clientList.DeleteAllItems();
			}
			break;
		case 2:                      //Delete all datas in database.
			if(AfxMessageBox("将删除数据库中所有的数据,操作完成后数据库中将没有任何数据。您确认吗?",MB_OKCANCEL|MB_ICONINFORMATION) == IDOK)
			{
				m_clientSet.m_strFilter = _T("");
				m_clientSet.Requery();
				while(m_clientSet.GetRecordCount() != 0)
				{
					m_clientSet.MoveFirst();
					m_clientSet.Delete();
					m_clientSet.Requery();
				}
				m_clientList.DeleteAllItems();
			}
			break;
		default:
			AfxMessageBox("选择错误。请重新操作。",MB_OK|MB_ICONSTOP);
			break;
		}
	}


	

	
}

void CClientDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	POSITION pos = m_clientList.GetFirstSelectedItemPosition();
	m_nIndex = m_clientList.GetNextSelectedItem(pos);  // 得到项目索引
	
	*pResult = 0;
}


void CClientDlg::OnDblclkList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	POSITION pos = m_clientList.GetFirstSelectedItemPosition();
	m_nIndex = m_clientList.GetNextSelectedItem(pos);  // 得到项目索引
	
	*pResult = 0;

	if(m_nIndex==-1)
	{
		MessageBox("请先选择一项!","提示",MB_ICONINFORMATION);
		return;
	}

	CClientInfoDlg dlg;
	dlg.m_isAdd=false;
	dlg.m_clientID=m_clientList.GetItemText(m_nIndex,0);
	dlg.m_name=m_clientList.GetItemText(m_nIndex,1);
	dlg.m_address=m_clientList.GetItemText(m_nIndex,2);
	dlg.m_tel=m_clientList.GetItemText(m_nIndex,3);
	dlg.m_cellphone=m_clientList.GetItemText(m_nIndex,4);
	dlg.m_fax=m_clientList.GetItemText(m_nIndex,5);
	dlg.m_appendix=m_clientList.GetItemText(m_nIndex,6);
	
	if(dlg.DoModal()==IDOK)
	{
		m_clientSet.Open();
		m_clientSet.m_strFilter="clientID='"+dlg.m_clientID+"'";
		m_clientSet.Requery();
		m_clientSet.Edit();
		m_clientSet.m_name=dlg.m_name;
		m_clientSet.m_address=dlg.m_address;
		m_clientSet.m_tel=dlg.m_tel;
		m_clientSet.m_cellphone=dlg.m_cellphone;
		m_clientSet.m_fax=dlg.m_fax;
		m_clientSet.m_appendix=dlg.m_appendix;
		m_clientSet.Update();
		m_clientSet.m_strFilter="";
		m_clientSet.Close();

		OnDisplay();
	}
}

void CClientDlg::OnRclickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	POSITION pos = m_clientList.GetFirstSelectedItemPosition();
	m_nIndex = m_clientList.GetNextSelectedItem(pos);  // 得到项目索引
	CPoint pt;
	::GetCursorPos(&pt);

	CMenu menu;
	menu.LoadMenu(IDR_MENU1);
	CMenu* pMenu=menu.GetSubMenu(0);
	pMenu->TrackPopupMenu(TPM_RIGHTBUTTON,pt.x,pt.y,this,NULL);

	
	*pResult = 0;
}


void CClientDlg::OnSearch() 
{
 	CSearchClientDlg dlg;
	if(dlg.DoModal() == IDCANCEL) return;
	m_clientList.DeleteAllItems();

	if(dlg.m_SELCB)
	{
		m_clientSet.Close();
		m_clientSet.Open(AFX_DB_USE_DEFAULT_TYPE,dlg.m_sql);
	}
	else
	{
	m_clientSet.m_strFilter=dlg.m_strFilter;

	m_clientSet.Requery();
	}
	int i=0;
	while(!m_clientSet.IsEOF())
	{
		m_clientList.InsertItem(i,m_clientSet.m_clientID,0);
		m_clientList.SetItemText(i,1,m_clientSet.m_name);
		m_clientList.SetItemText(i,2,m_clientSet.m_address);
		m_clientList.SetItemText(i,3,m_clientSet.m_tel);
		m_clientList.SetItemText(i,4,m_clientSet.m_cellphone);
		m_clientList.SetItemText(i,5,m_clientSet.m_fax);
		m_clientList.SetItemText(i,6,m_clientSet.m_appendix);
		i++;
		m_clientSet.MoveNext();
		
	}

	CString s;
	s.Format("一共有%d条记录",i);
	GetDlgItem(IDC_COUNT)->SetWindowText(s);

	
}

BOOL CClientDlg::DestroyWindow() 
{
	m_clientSet.Close();	
	return CDialog::DestroyWindow();
}

void CClientDlg::DataBaseToCtrl()
{
	if(m_clientSet.GetRecordCount() == 0)
		return;
	m_clientList.DeleteAllItems();
	m_clientSet.MoveFirst();
	int i=0;
	while(!m_clientSet.IsEOF())
	{
		m_clientList.InsertItem(i,m_clientSet.m_clientID,0);
		m_clientList.SetItemText(i,1,m_clientSet.m_name);
		m_clientList.SetItemText(i,2,m_clientSet.m_address);
		m_clientList.SetItemText(i,3,m_clientSet.m_tel);
		m_clientList.SetItemText(i,4,m_clientSet.m_cellphone);
		m_clientList.SetItemText(i,5,m_clientSet.m_fax);
		m_clientList.SetItemText(i,6,m_clientSet.m_appendix);
		i++;
		m_clientSet.MoveNext();
		
	}

	CString s;
	s.Format("一共有%d条记录",i);
	GetDlgItem(IDC_COUNT)->SetWindowText(s);
}

⌨️ 快捷键说明

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