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

📄 adduserdlg.cpp

📁 手机话费程序
💻 CPP
字号:
// AddUserDlg.cpp : implementation file
//

#include "stdafx.h"
#include "mphonequery.h"
#include "AddUserDlg.h"
#include "MPhoneQueryView.h"
#include "MainFrm.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAddUserDlg dialog


CAddUserDlg::CAddUserDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CAddUserDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAddUserDlg)
	m_strFeeType = _T("");
	m_strPhoneBalance = _T("");
	m_strPhoneNo = _T("");
	m_strPhonePswd = _T("");
	m_strUserAddr = _T("");
	m_strUserNo = _T("");
	m_strUserName = _T("");
	m_strUserSex = _T("");
	//}}AFX_DATA_INIT
}


void CAddUserDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAddUserDlg)
	DDX_Text(pDX, IDC_ADD_FEETYPE, m_strFeeType);
	DDX_Text(pDX, IDC_ADD_PHONEBALANCE, m_strPhoneBalance);
	DDX_Text(pDX, IDC_ADD_PHONENO, m_strPhoneNo);
	DDX_Text(pDX, IDC_ADD_PHONEPSWD, m_strPhonePswd);
	DDX_Text(pDX, IDC_ADD_USERADDR, m_strUserAddr);
	DDX_Text(pDX, IDC_ADD_USERIDNO, m_strUserNo);
	DDX_Text(pDX, IDC_ADD_USERNAME, m_strUserName);
	DDX_Text(pDX, IDC_ADD_USERSEX, m_strUserSex);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CAddUserDlg, CDialog)
	//{{AFX_MSG_MAP(CAddUserDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAddUserDlg message handlers

void CAddUserDlg::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData(true);
	
	m_strPhoneNo.TrimRight(" ");
    m_strPhonePswd.TrimRight(" ");
	m_strFeeType.TrimRight(" ");
	m_strPhoneBalance.TrimRight(" ");
	m_strUserName.TrimRight(" ");
	m_strUserSex.TrimRight(" ");
	m_strUserNo.TrimRight(" ");
	m_strUserAddr.TrimRight(" ");
	
	
	// 确定所有输入有效
	CString strWarning="";
	if ( m_strPhoneNo == "" )	
	{
		strWarning=_T("手机号");
	}
    else if ( m_strPhoneBalance == "" )
	{
		strWarning=_T("手机余额");
	}
	else if ( m_strUserName != "" || m_strUserNo != "" || m_strUserSex != "" || m_strUserAddr != "" )
	{
		if ( m_strUserName == "" )
		{
			strWarning = _T("用户姓名");
		}
		else if ( m_strUserNo == "" )
		{
			strWarning = _T("用户身份证号");
		}
		else if ( m_strUserSex == "" )
		{
			strWarning = _T("用户性别");
		}
	}	
	    
	if ( ""!=strWarning ) 
	{
	   strWarning += _T("不能为空");
	   AfxMessageBox(strWarning, MB_ICONEXCLAMATION);
	   return;
	}

	_variant_t strQuery, Holder;
	
	// 添加记录前判断;
	if (m_bAppend)
	{
		// 判断手机号唯一性
	    strQuery = "select * from phone where \
			phone_no = '"+m_strPhoneNo+"'";
	    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	    int iCount = theApp.m_pADOSet->GetRecordCount();
	    if ( iCount != 0 )
		{
	       AfxMessageBox(_T("已经存在此手机的记录!"), MB_ICONEXCLAMATION);
	       return;
		}

	}

	// 添加记录;			
	if (m_bAppend)
	{
		strQuery = "select Max(phone_id) as maxphoneid from phone";
		theApp.ADOExecute(theApp.m_pADOSet, strQuery);
		theApp.m_pADOSet ->MoveFirst();
		Holder	= theApp.m_pADOSet ->GetCollect("maxphoneid");
		
		int		iPhoneId = Holder.vt == VT_NULL ? 1 : Holder.intVal + 1;
		char    cPhoneId[20];
		_itoa( iPhoneId, cPhoneId, 10);
		CString strPhoneId = (const char*) cPhoneId;

		if ( strPhoneId != "")
		{
			strQuery = "insert into phone(phone_id, phone_no, password, fee_type, balance) \
	         	values ('"+strPhoneId+"', '"+m_strPhoneNo+"','"+m_strPhonePswd+"', \
				'"+m_strFeeType+"', CAST('"+m_strPhoneBalance+"' AS money))";
						
			if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) 
			{
				// 清空输入数据
				m_strPhonePswd = m_strFeeType = m_strPhoneBalance = "";
								
				// 检查是否有手机用户纪录
				if ( m_strUserNo != "" )
				{
					CString strSex;
					if ( m_strUserSex == "男")
					{
						strSex = '1';
					}
					else if ( m_strUserSex == "女")
					{
						strSex = '0';
					}


					// 判断用户的唯一性
					strQuery = "select * from customer where ID_no = '"+m_strUserNo+"'";
					theApp.ADOExecute(theApp.m_pADOSet, strQuery);
					int iCount = theApp.m_pADOSet ->GetRecordCount();
					if ( iCount == 0 )
					{
						strQuery = "select Max(cus_id) as maxuserid from customer";
						theApp.ADOExecute(theApp.m_pADOSet, strQuery);
						theApp.m_pADOSet ->MoveFirst();
						Holder	= theApp.m_pADOSet ->GetCollect("maxuserid");
						
						int iUserId = Holder.vt == VT_NULL ? 1 : Holder.intVal + 1;
						char cUserId[20];
						_itoa( iUserId, cUserId, 10);
						CString strUserId = (const char*) cUserId;
						
						strQuery = "insert customer (cus_id, cus_name, ID_no, sex, cus_addr) \
	         					values ('"+strUserId+"', '"+m_strUserName+"','"+m_strUserNo+"',\
								'"+strSex+"','"+m_strUserAddr+"')";

						if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) 
						{
							strQuery = "Update phone set cus_id = '"+strUserId+"' where phone_no = '"+m_strPhoneNo+"'";
							
							if (theApp.ADOExecute( theApp.m_pADOSet, strQuery ))
							{
								AfxMessageBox(_T("添加所有记录成功!"), MB_ICONINFORMATION);
								m_bIsAppend = TRUE;
										
								// 清空输入数据
								m_strPhoneNo = m_strUserNo = m_strUserName = m_strUserSex = m_strUserAddr = "";
								UpdateData(false);
							}
							else
							{
								AfxMessageBox(_T("添加用户记录失败!请检查并修改该条纪录"), MB_ICONEXCLAMATION);
							}

						}
						else 
						{
							AfxMessageBox(_T("添加用户记录失败!请检查并修改该条纪录"), MB_ICONEXCLAMATION);
						}
					   
					}
					else
					{	
						theApp.m_pADOSet ->MoveFirst();
						Holder = theApp.m_pADOSet ->GetCollect("cus_id");
						CString strUserId = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
						
						_variant_t    strSubQuery;
						_RecordsetPtr pADOSubSet;
						pADOSubSet.CreateInstance(__uuidof(Recordset));
						
						Holder = theApp.m_pADOSet ->GetCollect("ID_no");
						CString strTest = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
						if ( m_strUserNo != "" && ( strTest != m_strUserNo || strTest == "" ) )
						{
							strSubQuery = "Update customer set ID_no = '"+m_strUserNo+"' where cus_id = '"+strUserId+"'";
							theApp.ADOExecute( pADOSubSet, strSubQuery );
						}

						Holder = theApp.m_pADOSet ->GetCollect("cus_name");
						strTest = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
						if ( m_strUserName != "" && ( strTest != m_strUserName || strTest == "" ) )
						{
							strSubQuery = "Update customer set cus_name = '"+m_strUserName+"' where cus_id = '"+strUserId+"'";
							theApp.ADOExecute( pADOSubSet, strSubQuery );
						}
								
						Holder = theApp.m_pADOSet ->GetCollect("sex");
						strTest = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
						if ( strSex != "" && ( strTest != strSex || strTest == "" ) )
						{
							strSubQuery = "Update customer set sex = '"+strSex+"' where cus_id = '"+strUserId+"'";
							theApp.ADOExecute( pADOSubSet, strSubQuery );
						}

						Holder = theApp.m_pADOSet ->GetCollect("cus_addr");
						strTest = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
						if ( m_strUserAddr != "" && ( strTest != m_strUserAddr || strTest == "" ) )
						{
							strSubQuery = "Update customer set cus_addr = '"+m_strUserAddr+"' where cus_id = '"+strUserId+"'";
							theApp.ADOExecute( pADOSubSet, strSubQuery );
						}

						strQuery = "Update phone set cus_id = '"+strUserId+"' where phone_no = '"+m_strPhoneNo+"'";
						theApp.ADOExecute( theApp.m_pADOSet, strQuery );

						AfxMessageBox(_T("添加所有记录成功!"), MB_ICONINFORMATION);
						m_strPhoneNo = m_strUserNo = m_strUserName = m_strUserSex = m_strUserAddr = "";
						UpdateData(false);
					}
					
				}
			}
			else 
			{
				AfxMessageBox(_T("添加手机记录失败!"), MB_ICONEXCLAMATION);
			}
		}
		else
		{
			AfxMessageBox(_T("添加手机记录失败!"), MB_ICONEXCLAMATION);
		}

	}
	else    //修改记录
	{
		// 获得手机记录的编号
		strQuery = "select phone_id, cus_id from phone where phone_no = '"+m_strPrePhoneNo+"'";
		theApp.ADOExecute(theApp.m_pADOSet, strQuery);
		theApp.m_pADOSet ->MoveFirst();
		Holder	= theApp.m_pADOSet ->GetCollect("phone_id");
		CString strPhoneId = (char*)(_bstr_t)Holder;
		
		// 获得可能的用户信息编号
		Holder	= theApp.m_pADOSet ->GetCollect("cus_id");
		CString strUserId = Holder.vt == NULL ? "" : (char*)(_bstr_t)Holder;

		// 更改手机信息
		strQuery = "Update phone set phone_no = '"+m_strPhoneNo+"', password ='"+m_strPhonePswd+"', \
				fee_type = '"+m_strFeeType+"', balance = CAST('"+m_strPhoneBalance+"' AS money) \
				where phone_id = '"+strPhoneId+"'";
		theApp.ADOExecute(theApp.m_pADOSet, strQuery);
			
		//更改用户信息
		if ( m_strUserNo != "" )
		{			
			CString strSex;
			if ( m_strUserSex == "男")
			{
				strSex = '1';
			}
			else if ( m_strUserSex == "女")
			{
				strSex = '0';
			}
								
			// 添加新的用户记录
			if ( strUserId == "" )
			{	
				strQuery = "select Max(cus_id) as maxuserid from customer";
				theApp.ADOExecute(theApp.m_pADOSet, strQuery);
				theApp.m_pADOSet ->MoveFirst();
				Holder	= theApp.m_pADOSet ->GetCollect("maxuserid");
							
				int  iUserId = Holder.vt == VT_NULL ? 1 : Holder.intVal + 1;
				char cUserId[20];
				_itoa( iUserId, cUserId, 10);
				CString strUserId = (const char*) cUserId;
			
				strQuery = "Insert customer (cus_id, cus_name, ID_no, sex, cus_addr) \
	       			values ('"+strUserId+"', '"+m_strUserName+"','"+m_strUserNo+"',\
					'"+strSex+"','"+m_strUserAddr+"')";

				if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) )
				{

					strQuery = "Update phone set cus_id = '"+strUserId+"' \
						where phone_id = '"+strPhoneId+"'";
					theApp.ADOExecute(theApp.m_pADOSet, strQuery);
					AfxMessageBox(_T("修改记录成功!"), MB_ICONINFORMATION);

					m_bIsAppend = TRUE;
				}
				else
				{
					AfxMessageBox(_T("修改记录失败!请检查并修改该条纪录"), MB_ICONEXCLAMATION);
				}
			}
			else  // 修改用户记录
			{
				strQuery = "select * from customer where cus_id = '"+strUserId+"'";
				theApp.ADOExecute(theApp.m_pADOSet, strQuery);
				theApp.m_pADOSet ->MoveFirst();
				Holder = theApp.m_pADOSet ->GetCollect("cus_id");
				CString strUserId = (char*)(_bstr_t)Holder;
				
				_variant_t    strSubQuery;
				_RecordsetPtr pADOSubSet;
				pADOSubSet.CreateInstance(__uuidof(Recordset));
				
				Holder = theApp.m_pADOSet ->GetCollect("ID_no");
				CString strTest = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
				if ( m_strUserNo != "" && ( strTest != m_strUserNo || strTest == "" ) )
				{
					strSubQuery = "Update customer set ID_no = '"+m_strUserNo+"' where cus_id = '"+strUserId+"'";
					theApp.ADOExecute( pADOSubSet, strSubQuery );
				}

				Holder = theApp.m_pADOSet ->GetCollect("cus_name");
				strTest = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
				if ( m_strUserName != "" && ( strTest != m_strUserName || strTest == "" ) )
				{
					strSubQuery = "Update customer set cus_name = '"+m_strUserName+"' where cus_id = '"+strUserId+"'";
					theApp.ADOExecute( pADOSubSet, strSubQuery );
				}
						
				Holder = theApp.m_pADOSet ->GetCollect("sex");
				strTest = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
				if ( strSex != "" && ( strTest != strSex || strTest == "" ) )
				{
					strSubQuery = "Update customer set sex = '"+strSex+"' where cus_id = '"+strUserId+"'";
					theApp.ADOExecute( pADOSubSet, strSubQuery );
				}

				Holder = theApp.m_pADOSet ->GetCollect("cus_addr");
				strTest = Holder.vt == VT_NULL ? "" : (char*)(_bstr_t)Holder;
				if ( m_strUserAddr != "" && ( strTest != m_strUserAddr || strTest == "" ) )
				{
					strSubQuery = "Update customer set cus_addr = '"+m_strUserAddr+"' where cus_id = '"+strUserId+"'";
					theApp.ADOExecute( pADOSubSet, strSubQuery );
				}

				strQuery = "Update phone set cus_id = '"+strUserId+"' where phone_no = '"+m_strPhoneNo+"'";
				theApp.ADOExecute( theApp.m_pADOSet, strQuery );

				AfxMessageBox(_T("修改记录成功!"), MB_ICONINFORMATION);
				
				m_bIsAppend = TRUE;

			}
		}
	}
	
	// Refresh RoomType List
	CMPhoneQueryView* p = (CMPhoneQueryView*)(((CMainFrame*)AfxGetMainWnd())->GetActiveView());
	p->RefreshUser();
	
	if (!m_bAppend && m_bIsAppend) 
	{
		CDialog::OnOK();	
	}
}

BOOL CAddUserDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	//((CEdit*)GetDlgItem(IDC_ADD_PHONENO))->SetLimitText(50);
	((CEdit*)GetDlgItem(IDC_ADD_PHONEPSWD))->SetLimitText(50);
	((CEdit*)GetDlgItem(IDC_ADD_FEETYPE))->SetLimitText(50);
	((CEdit*)GetDlgItem(IDC_ADD_PHONEBALANCE))->SetLimitText(50);
	((CEdit*)GetDlgItem(IDC_ADD_USERNAME))->SetLimitText(50);
	((CEdit*)GetDlgItem(IDC_ADD_USERIDNO))->SetLimitText(50);
	((CEdit*)GetDlgItem(IDC_ADD_USERADDR))->SetLimitText(50);
	
	if (m_bAppend)
	{
		//更新对话框属性
		SetWindowText(_T("添加手机用户信息"));

		((CComboBox*)GetDlgItem(IDC_ADD_USERSEX))->SetCurSel(0);

	}
	else
	{
	    // 更新对话框属性
		SetWindowText(_T("修改手机用户信息"));

		_variant_t strQuery, Holder;

		// 获得手机记录的编号
		strQuery = "select cus_id from phone where phone_no = '"+m_strPrePhoneNo+"'";
		theApp.ADOExecute(theApp.m_pADOSet, strQuery);
		int iCount = theApp.m_pADOSet->GetRecordCount();
		if ( iCount != 0 )
		{
			theApp.m_pADOSet ->MoveFirst();	
			// 获得可能的用户信息编号
			Holder	= theApp.m_pADOSet ->GetCollect("cus_id");
			CString strUserId = (char*)(_bstr_t)Holder;
			
			// 读取用户信息
			strQuery = "select sex from customer where cus_id = '"+strUserId+"'";
			theApp.ADOExecute(theApp.m_pADOSet, strQuery);

			theApp.m_pADOSet ->MoveFirst();	
			Holder = theApp.m_pADOSet ->GetCollect("sex");
			CString strSexCount = (char*)(_bstr_t)Holder;
			int iSexCount = atoi(strSexCount);
			if (iSexCount == 0)
			{
				((CComboBox*)GetDlgItem(IDC_ADD_USERSEX)) ->SetCurSel( 2);
			}
			else if (iSexCount == 1)
			{
				((CComboBox*)GetDlgItem(IDC_ADD_USERSEX)) ->SetCurSel( 1);
			}
			else
			{
				((CComboBox*)GetDlgItem(IDC_ADD_USERSEX)) ->SetCurSel( 0);

			}
		}	

	}	
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

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