📄 ldlg.cpp
字号:
// lDlg.cpp : implementation file
//
#include "stdafx.h"
#include "ordermanagement.h"
#include "lDlg.h"
#include "ADOConn.h"
#include "customer.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
ADOConn conn;
_bstr_t sSQL;
/////////////////////////////////////////////////////////////////////////////
// ClDlg dialog
ADOConn cconn;
_RecordsetPtr m_pCRecordset;
ClDlg::ClDlg(CWnd* pParent /*=NULL*/)
: CDialog(ClDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(ClDlg)
m_cStr = _T("");
m_seStr = -1;
m_soStr = -1;
//}}AFX_DATA_INIT
}
void ClDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(ClDlg)
DDX_Control(pDX, IDC_LIST_CLIENT, m_listCtr);
DDX_Control(pDX, IDC_KSORT_COMB, m_soCtr);
DDX_Control(pDX, IDC_KSEARCH_COMB, m_seCtr);
DDX_Text(pDX, IDC_KEY_EDIT, m_cStr);
DDX_CBIndex(pDX, IDC_KSEARCH_COMB, m_seStr);
DDX_CBIndex(pDX, IDC_KSORT_COMB, m_soStr);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(ClDlg, CDialog)
//{{AFX_MSG_MAP(ClDlg)
ON_BN_CLICKED(IDC_SEARCH_BTN, OnSearchBtn)
ON_BN_CLICKED(IDC_SORT_BTN, OnSortBtn)
ON_BN_CLICKED(IDC_REFRESH_BNT, OnRefreshBnt)
ON_BN_CLICKED(IDC_DEL_BNT, OnDelBnt)
ON_NOTIFY(NM_CLICK, IDC_LIST_CLIENT, OnClickListClient)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_CLIENT, OnDblclkListClient)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// ClDlg message handlers
BOOL ClDlg::OnInitDialog()
{
CDialog::OnInitDialog();
m_ncurrSel = -1;
//初始化图标
m_imagelist.Create(16, 16,ILC_MASK,1,4);
HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON7);
m_imagelist.Add(hIcon);
//初始化列表框表头
m_listCtr.SetImageList(&m_imagelist,LVSIL_SMALL);
m_listCtr.InsertColumn(0,"客 户 ID",LVCFMT_LEFT,100);
m_listCtr.InsertColumn(1,"客户密码",LVCFMT_LEFT,80);
m_listCtr.InsertColumn(2,"客户名称",LVCFMT_LEFT,150);
m_listCtr.InsertColumn(3,"客户联系人",LVCFMT_LEFT,100);
m_listCtr.InsertColumn(4,"客户地址",LVCFMT_LEFT,160);
m_listCtr.InsertColumn(5,"客户邮编",LVCFMT_LEFT,100);
m_listCtr.InsertColumn(6,"客户电话",LVCFMT_LEFT,100);
m_listCtr.InsertColumn(7,"客户网址",LVCFMT_LEFT,100);
m_listCtr.InsertColumn(8,"E-mail",LVCFMT_LEFT,100);
m_listCtr.InsertColumn(9,"注册日期",LVCFMT_LEFT,100);
m_listCtr.InsertColumn(10,"客户备注",LVCFMT_LEFT,200);
/**/
/* -- 设置单列全选,显示网格 -- */
m_listCtr.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
this->cBindList();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void ClDlg::cBindList()
{
_bstr_t vCSQL;
int nItem;
CString csort;
m_listCtr.DeleteAllItems();//清除表内容
try{//
//如果Concection对象为空,则重新连接
if(cconn.m_pConn == NULL)
cconn.OnInitADOConn();
if(m_soCtr.GetCurSel() == 0)
csort = "ASC";
else
csort = "DESC";
switch(m_cSortType)
{
case 0:
vCSQL = "select * from ClientMessage order by clientID "+csort;
m_pCRecordset = cconn.GetRecordSet(vCSQL);
break;
case 1:
vCSQL="select * from ClientMessage where clientID='" +m_cStr+ "' order by clientID "+csort;
m_pCRecordset = cconn.GetRecordSet(vCSQL);
break;
case 2:
vCSQL= "select * from ClientMessage where company='" +m_cStr+ "' order by clientID "+csort;
m_pCRecordset = cconn.GetRecordSet(vCSQL);
break;
case 3:
vCSQL= "select * from ClientMessage where contactPerson='" +m_cStr+ "' order by clientID "+csort;
m_pCRecordset = cconn.GetRecordSet(vCSQL);
break;
case 4:
vCSQL= "select * from ClientMessage where shenqing='" +m_cStr+ "' order by clientID "+csort;
m_pCRecordset = cconn.GetRecordSet(vCSQL);
break;
default:
vCSQL = "select * from ClientMessage order by clientID "+csort;
m_pCRecordset = cconn.GetRecordSet(vCSQL);
break;
}
while(!m_pCRecordset->adoEOF)
{
cconn.vCID = m_pCRecordset->GetCollect("clientID");
cconn.vCPwd = m_pCRecordset->GetCollect("userpwd");
cconn.vCN = m_pCRecordset->GetCollect("company");
cconn.vClP = m_pCRecordset->GetCollect("contactPerson");
cconn.vCAdd = m_pCRecordset->GetCollect("address");
cconn.vCPo = m_pCRecordset->GetCollect("postCode");
cconn.vCTel = m_pCRecordset->GetCollect("telephone");
cconn.vVWeb = m_pCRecordset->GetCollect("website");
cconn.vEmail = m_pCRecordset->GetCollect("email");
cconn.vCBDate = m_pCRecordset->GetCollect("bookingDate");
cconn.vRemark = m_pCRecordset->GetCollect("remark");
cconn.vOID = m_pCRecordset->GetCollect("shenqing");
// -- 添加数据到列表控件中 -- //
nItem = m_listCtr.InsertItem(0xffff,(_bstr_t)cconn.vCID,0);//;
m_listCtr.SetItemText(nItem,1,(_bstr_t)cconn.vCPwd);
m_listCtr.SetItemText(nItem,2,(_bstr_t)cconn.vCN);
m_listCtr.SetItemText(nItem,3,(_bstr_t)cconn.vClP);
m_listCtr.SetItemText(nItem,4,(_bstr_t)cconn.vCAdd);
m_listCtr.SetItemText(nItem,5,(_bstr_t)cconn.vCPo);
m_listCtr.SetItemText(nItem,6,(_bstr_t)cconn.vCTel);
m_listCtr.SetItemText(nItem,7,(_bstr_t)cconn.vVWeb);
m_listCtr.SetItemText(nItem,8,(_bstr_t)cconn.vEmail);
m_listCtr.SetItemText(nItem,9,(_bstr_t)cconn.vCBDate);
m_listCtr.SetItemText(nItem,10,(_bstr_t)cconn.vRemark);
m_listCtr.SetItemText(nItem,10,(_bstr_t)cconn.vOID);
m_pCRecordset->MoveNext();
}
}
catch(_com_error e)
{
AfxMessageBox(e.ErrorMessage());
}
}
void ClDlg::OnSearchBtn()
{
UpdateData(true);
CComboBox* pSort = (CComboBox*)GetDlgItem(IDC_KSEARCH_COMB);
switch(m_seCtr.GetCurSel())
{
case 0:
m_cSortType = 1;
break;
case 1:
m_cSortType = 3;
break;
case 2:
m_cSortType = 2;
break;
case 3:
m_cSortType = 4;
break;
default:m_cSortType = 0;
break;
}
this->cBindList();
}
void ClDlg::OnSortBtn()
{
OnSearchBtn();
}
void ClDlg::OnRefreshBnt()
{
m_seStr = -1;
m_soStr = -1;
m_cStr = "";
UpdateData(false);
m_ncurrSel=-1;
m_cSortType = 0;
this->cBindList();
}
void ClDlg::OnDelBnt()
{
if(m_ncurrSel < 0)
AfxMessageBox("请在列表中选中要删除的项!");
else
{
if(MessageBox("是否确定删除?","请确认",MB_YESNO) == IDYES)
{
try
{
if(conn.m_pConn == NULL)
conn.OnInitADOConn();
ClientFormDel(IID);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
}
}
}
void ClDlg::ClientFormDel(CString pID)
{
sSQL ="select * from OderFormMessage where clientID='"+pID+"'";
conn.m_pRs =conn.GetRecordSet(sSQL);
if(!conn.m_pRs->adoBOF)//若订单中存在相应的客户ID则删除订单
{
AfxMessageBox("该客户有订单存在,不能删除!");
}
else
{ //当订单中不存在相应客户的ID时删除该客户
sSQL = "DELETE FROM ClientMessage WHERE clientID ='"+pID+"'";
if(conn.ExecuteSQL(sSQL))
{
AfxMessageBox("客户信息删除!");
m_cSortType = 0;
this->cBindList();
}
}
}
void ClDlg::OnClickListClient(NMHDR* pNMHDR, LRESULT* pResult)
{
m_ncurrSel = -1;
/* -- 获取当前记录编号 -- */
NM_LISTVIEW *pNMListView = (NM_LISTVIEW *)pNMHDR;
m_ncurrSel = pNMListView->iItem;//获得当前行值m_ncurrSel
// m_ncurrSel = m_listCtr.GetSelectionMark();
if(m_ncurrSel >= 0)
{
IID = m_listCtr.GetItemText(m_ncurrSel,0);//取当前项的订单号,0表示列号
}
*pResult = 0;
}
HBRUSH ClDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
COLORREF backColor = RGB(231, 231, 231); //office 2003背景色
pDC->SetBkMode(TRANSPARENT); //设置控件背景透明
return CreateSolidBrush(backColor); //创建背景刷子
// TODO: Return a different brush if the default is not desired
//return hbr;
//HBRUSH hbr = CDialog::OnCtlColor(pDC,pWnd,nCtlColor);
//pDC->SetBkMode(TRANSPARENT);
//return (HBRUSH)GetStockObject(NULL_BRUSH);
}
void ClDlg::OnCancel()
{
//if(MessageBox("是否确定退出?","请确认",MB_YESNO) == IDYES)
//{
CDialog::OnCancel();
//}
}
void ClDlg::OnButton1()
{
AfxMessageBox("请双击要操作的项!");
}
void ClDlg::OnDblclkListClient(NMHDR* pNMHDR, LRESULT* pResult)
{
customer sMod;
m_ncurrSel = -1;
//// m_ncurrSel = m_listCtr.GetSelectionMark();
//获当前行值m_ncurrSel
NM_LISTVIEW *pNMListView = (NM_LISTVIEW *)pNMHDR;
m_ncurrSel = pNMListView->iItem;
/* CString str;
str.Format("m_ncurrSel%d",m_ncurrSel);
AfxMessageBox(str);
*/
if(m_ncurrSel >= 0)
{
for(int i=0;i<11;i++)
sMod.s[i] = m_listCtr.GetItemText(m_ncurrSel,i);
sMod.DoModal();
}
else
{
AfxMessageBox("请在列表中选中要操作的项!");
}
*pResult = 0;
m_ncurrSel = -1;
ClDlg::OnRefreshBnt();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -