📄 clientdlg.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 + -