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

📄 ldlg.cpp

📁 订单管理系统
💻 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 + -