📄 customermanager.cpp
字号:
// CustomerManager.cpp : implementation file
//
#include "stdafx.h"
#include "OIL.h"
#include "CustomerManager.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCustomerManager dialog
CCustomerManager::CCustomerManager(CWnd* pParent /*=NULL*/)
: CDialog(CCustomerManager::IDD, pParent)
{
//{{AFX_DATA_INIT(CCustomerManager)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CCustomerManager::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCustomerManager)
DDX_Control(pDX, IDC_LIST_CUSTOMER, m_listCustomer);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCustomerManager, CDialog)
//{{AFX_MSG_MAP(CCustomerManager)
ON_BN_CLICKED(IDC_CUSTOMER_ADD, OnCustomerAdd)
ON_BN_CLICKED(IDC_CUSTOMER_EDIT, OnCustomerEdit)
ON_BN_CLICKED(IDC_CUSTOMER_DEL, OnCustomerDel)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_CUSTOMER, OnDblclkListCustomer)
ON_WM_SHOWWINDOW()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCustomerManager message handlers
void CCustomerManager::OnCustomerAdd()
{
// TODO: Add your control notification handler code here
CCustomerAdd m_dlgCustomerAdd ;
m_dlgCustomerAdd.m_nDoWhat=ADD; //新增客户资料
m_dlgCustomerAdd.m_pParent=this;
//显示对话框
if(m_dlgCustomerAdd.DoModal()==IDOK)
{
//显示用户数据
CString sql="SELECT * FROM customer";
ReadtoListCtrl(&m_listCustomer,sql);
}
//选中修改行
DispListCtrlRow(&m_listCustomer,0);
}
void CCustomerManager::OnOK()
{
// TODO: Add extra validation here
CDialog::OnOK();
}
void CCustomerManager::OnCancel()
{
// TODO: Add extra validation here
CDialog::OnCancel();
}
//修改客户
void CCustomerManager::OnCustomerEdit()
{
// TODO: Add your control notification handler code here
// TODO: Add your control notification handler code here
POSITION pos = m_listCustomer.GetFirstSelectedItemPosition();
//如果选中一行
if(pos)
{
int nItem = m_listCustomer.GetNextSelectedItem(pos);
CCustomerAdd m_dlgCustomerAdd;
//传送参数
m_hWnd=m_listCustomer.GetSafeHwnd();
m_dlgCustomerAdd.m_nDoWhat=2; //修改客户资料
m_dlgCustomerAdd.m_pParent =this;
m_dlgCustomerAdd.m_strCustomerID =m_listCustomer.GetItemText(nItem,0);
m_dlgCustomerAdd.m_strCustomerName =m_listCustomer.GetItemText(nItem,1);
m_dlgCustomerAdd.m_strCustomerShort =m_listCustomer.GetItemText(nItem,2);
m_dlgCustomerAdd.m_strCustomerShortEnglish =m_listCustomer.GetItemText(nItem,3);
m_dlgCustomerAdd.m_strAddress =m_listCustomer.GetItemText(nItem,4);
m_dlgCustomerAdd.m_strTelephone =m_listCustomer.GetItemText(nItem,5);
m_dlgCustomerAdd.m_strNotes =m_listCustomer.GetItemText(nItem,6);
m_dlgCustomerAdd.m_strHandler =m_listCustomer.GetItemText(nItem,7);
//显示对话框
if(m_dlgCustomerAdd.DoModal()==IDOK)
{
//显示用户数据
CString sql="SELECT * FROM customer";
ReadtoListCtrl(&m_listCustomer,sql);
}
//选中修改行
DispListCtrlRow(&m_listCustomer,nItem);
}
else
AfxMessageBox("请选择一行数据!");
}
//删除客户内容
void CCustomerManager::OnCustomerDel()
{
// TODO: Add your control notification handler code here
CString sql;
POSITION pos = m_listCustomer.GetFirstSelectedItemPosition();
//如果选中一行,则生成动态的sql语句
if(pos)
{
int nItem = m_listCustomer.GetNextSelectedItem(pos);
if(!(AfxMessageBox("你真的要删除此计录?",MB_YESNO)==IDYES))
{
DispListCtrlRow(&m_listCustomer,nItem);
return;
}
//生成SQL语句
sql="delete customer where customerID='"+m_listCustomer.GetItemText(nItem,0)+"'";
//执行此sql语句
_variant_t RecordsAffected;
theApp.m_pConnection->Execute((_bstr_t)sql,&RecordsAffected,adCmdText);
//删除此行数据
m_listCustomer.DeleteItem(nItem);
//选中前一行数据
if(nItem==0)
{
nItem=0;
}
else
{
nItem--;
}
DispListCtrlRow(&m_listCustomer,nItem);
}
else
AfxMessageBox("请选择一行数据!");
}
//修改客户内容
void CCustomerManager::OnDblclkListCustomer(NMHDR* pNMHDR, LRESULT* pResult)
{
OnCustomerEdit();
}
//初始化客户管理框
BOOL CCustomerManager::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//设置List Control背景色及字体颜色
m_listCustomer.SetBkColor(RGB(240,247,233));;
m_listCustomer.SetTextColor(RGB(250,0,0));
//清空List控件的数据
for(int delcolumn=100;delcolumn>=0;delcolumn--)
m_listCustomer.DeleteColumn(delcolumn);
//设置List控件的列
DWORD dwStyle;
RECT rect;
LV_COLUMN lvc;
dwStyle = m_listCustomer.GetStyle();
dwStyle |= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS ;
m_listCustomer.SetExtendedStyle(dwStyle);
m_listCustomer.GetClientRect(&rect);
lvc.mask = LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH |LVCF_FMT;
lvc.fmt=LVCFMT_LEFT;
lvc.iSubItem = 0;
lvc.pszText = _T("代号");
lvc.cx = 120;
m_listCustomer.InsertColumn(1,&lvc);
lvc.iSubItem = 1;
lvc.pszText = _T("名称");
lvc.cx = 120;
m_listCustomer.InsertColumn(2,&lvc);
lvc.iSubItem = 2;
lvc.pszText = _T("简写");
lvc.cx = 80;
m_listCustomer.InsertColumn(3,&lvc);
lvc.iSubItem = 3;
lvc.pszText = _T("英文简写");
lvc.cx = 80;
m_listCustomer.InsertColumn(4,&lvc);
lvc.iSubItem = 4;
lvc.pszText = _T("地址");
lvc.cx = 120;
m_listCustomer.InsertColumn(5,&lvc);
lvc.iSubItem = 5;
lvc.pszText = _T("电话");
lvc.cx = 60;
m_listCustomer.InsertColumn(6,&lvc);
lvc.iSubItem = 6;
lvc.pszText = _T("注释");
lvc.cx = 80;
m_listCustomer.InsertColumn(7,&lvc);
lvc.iSubItem = 7;
lvc.pszText = _T("经办人");
lvc.cx = 60;
m_listCustomer.InsertColumn(8,&lvc);
//显示数据
CString m_strSQL="select CustomerID,CustomerName,CustomerShort,CustomerShortEnglish, Address,Telephone,Handler,Notes \
from Customer";
ReadtoListCtrl(&m_listCustomer,m_strSQL);
//设置选取行
int nItem=0;
DispListCtrlRow(&m_listCustomer,nItem);
//初始化指针
//m_pdlgCustomerAdd=NULL;
return false;
//return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CCustomerManager::DestroyWindow()
{
// TODO: Add your specialized code here and/or call the base class
return CDialog::DestroyWindow();
}
void CCustomerManager::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
// TODO: Add your message handler code here
//设置选取行
//int nItem=0;
//DispListCtrlRow(&m_listCustomer,nItem);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -