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

📄 dlgvip.cpp

📁 小商店管理助手软件
💻 CPP
字号:
// DlgVIP.cpp : implementation file
//

#include "stdafx.h"
#include "Project.h"
#include "DlgVIP.h"
#include "DlgLogin.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CDlgVIP dialog


CDlgVIP::CDlgVIP(CWnd* pParent /*=NULL*/)
	: CDialog(CDlgVIP::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDlgVIP)
	m_VIPNo = _T("");
	m_VIPID = _T("");
	m_VIPAge  = 0;
	m_VIPName = _T("");
	m_VIPTel  = _T("");
	m_VIPSex  = -1;
	//}}AFX_DATA_INIT
}


void CDlgVIP::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDlgVIP)
	DDX_Control(pDX, IDC_VIPAdd, m_BtnAdd);
	DDX_Control(pDX, IDC_REGVIPLIST, m_RegVIPList);
	DDX_Text(pDX,    IDC_VIPID,  m_VIPID);
	DDX_Text(pDX,    IDC_VIPAGE, m_VIPAge);
	DDX_Text(pDX,    IDC_VIPNAME,  m_VIPName);
	DDX_Text(pDX,    IDC_VIPTEL ,  m_VIPTel);
	DDX_Text(pDX,    IDC_VIPREGID, m_VIPNo);
	DDX_CBIndex(pDX, IDC_VIPSex,   m_VIPSex);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgVIP, CDialog)
	//{{AFX_MSG_MAP(CDlgVIP)
	ON_NOTIFY(NM_RCLICK, IDC_REGVIPLIST, OnRclickRegviplist)
	ON_BN_CLICKED(IDC_VIPAdd, OnAddVIP)
	ON_BN_CLICKED(ID_VIPDelete, OnVIPDelete)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgVIP message handlers

BOOL CDlgVIP::OnInitDialog() 
{
	CDialog::OnInitDialog();

	try
	{   //连接数据源
		CDlgLogin dlgLogin;
		_bstr_t Conn = "DSN="+_bstr_t(dlgLogin.m_LoginDSN)+";";   
		pConn.CreateInstance(__uuidof(Connection));
		HRESULT hr=pConn->Open(Conn,_bstr_t(""),_bstr_t(""),adModeUnknown);  //
	}
	catch(_com_error& ex)
	{
		AfxMessageBox(ex.Description());
	}

	//初始化列表项
	m_RegVIPList.SetTextColor(RGB (0, 0, 0));
	m_RegVIPList.SetBkColor(RGB(255,255,255));
	m_RegVIPList.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);	

	m_RegVIPList.InsertColumn(0,_T("会员代号"),LVCFMT_CENTER,80);
	m_RegVIPList.InsertColumn(1,_T("姓名"),LVCFMT_CENTER,80);
	m_RegVIPList.InsertColumn(2,_T("性别"),LVCFMT_CENTER,60);
	m_RegVIPList.InsertColumn(3,_T("年龄"),LVCFMT_CENTER,60);
	m_RegVIPList.InsertColumn(4,_T("身份证"),LVCFMT_CENTER,100);
	m_RegVIPList.InsertColumn(6,_T("电话"),LVCFMT_CENTER,100);

	OnRefreshData(); //刷新列表项

	return TRUE;
}

//======添加VIP==========================
void CDlgVIP::OnAddVIP() 
{   
    UpdateData(TRUE);

	if(m_VIPSex=0) sVIPSex = "M";
	if(m_VIPSex=1) sVIPSex = "W";

	if(m_VIPNo=="")	                   AfxMessageBox("会员代号必填!");
	else if(m_VIPName=="")             AfxMessageBox("姓名必填!");
	else if(m_VIPAge<1||m_VIPAge>100)  AfxMessageBox("年龄出错!");
	else if(m_VIPID=="") 	           AfxMessageBox("身份证号码必填!");
	{
		CString sql;
		sql.Format("insert into TableVIP values(\'%s\',\'%s\',\'%s\',\'%i\',\'%s\',\'%s\')",
					 m_VIPNo,m_VIPName,sVIPSex,m_VIPAge,m_VIPID,m_VIPTel);
		try
		{
			pConn->Execute(_bstr_t(sql),NULL,adCmdText);
		} 
		catch(_com_error& e)
		{
			AfxMessageBox(e.Description());
			return;
		}  
	}
		
	m_VIPNo =m_VIPName =m_VIPID=m_VIPTel="";    //控件复位
	m_VIPSex=m_VIPAge=0;
	UpdateData(FALSE);
	OnRefreshData();                       //刷新列表数据
}

//===刷新列表数据========================================
void CDlgVIP::OnRefreshData()          
{
	m_RegVIPList.DeleteAllItems();
	_variant_t vt;
	try
	{
		_RecordsetPtr pRst = pConn->Execute("select * from TableVIP",&vt,adCmdText);
		while(!pRst->End)
		{
			_variant_t vVIPNO  = pRst->Fields->GetItem("VIPNo")->Value;
			_variant_t vVIPName= pRst->Fields->GetItem(long(1))->Value; 
			_variant_t vVIPSex = pRst->Fields->GetItem(long(2))->Value;
			_variant_t vVIPAge = pRst->Fields->GetItem(long(3))->Value;
			_variant_t vVIPID  = pRst->Fields->GetItem(long(4))->Value;
			_variant_t vVIPTel = pRst->Fields->GetItem(long(5))->Value;
			
			m_VIPNo   = vVIPNO.bstrVal;              //取记录各字段值
			m_VIPName = vVIPName.bstrVal;
			m_VIPSex  = vVIPSex.iVal;
			m_VIPAge  = vVIPAge.iVal;
			m_VIPID   = vVIPID.bstrVal;
			m_VIPTel  = vVIPTel.bstrVal;
			
			CString strSex,strAge;
			if(m_VIPSex==0)  strSex = "男";
			else  strSex = "女";
			strAge.Format("%d",m_VIPAge);

			m_RegVIPList.InsertItem(0,m_VIPNo);      //填入列表项
			m_RegVIPList.SetItemText(0,1,m_VIPName);
			m_RegVIPList.SetItemText(0,2,strSex);
			m_RegVIPList.SetItemText(0,3,strAge);
			m_RegVIPList.SetItemText(0,4,m_VIPID);
			m_RegVIPList.SetItemText(0,5,m_VIPTel);		
			pRst->MoveNext();
		}
		pRst->Close();
		pRst.Release();
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.Description());
	}
}



void CDlgVIP::OnRclickRegviplist(NMHDR* pNMHDR, LRESULT* pResult) 
{
	*pResult = 0;
}

//===删除VIP==========================================
void CDlgVIP::OnVIPDelete() 
{
	int sel = m_RegVIPList.GetSelectionMark();
	CString str;
	str = m_RegVIPList.GetItemText(sel,0);            //获取选中的列表行的值
	CString sql;
	sql.Format("DELETE FROM TableVIP WHERE VIPNo = \'%s\'",str);  //拼写SQL字串
	try
	{
		pConn->Execute(_bstr_t(sql),NULL,adCmdText);  //执行删除
		m_RegVIPList.DeleteItem(sel);
	}
	catch(_com_error& e)
	{
		AfxMessageBox(e.Description());
	}
	OnRefreshData();
	
}

void CDlgVIP::OnCancel() 
{
	pConn.Release();
	CDialog::OnCancel();
}

⌨️ 快捷键说明

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