📄 phonedlg.cpp
字号:
// PhoneDlg.cpp : implementation file
//
#include "stdafx.h"
#include "tel2006.h"
#include "PhoneDlg.h"
#include "Phone2Dlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#define VIEW_COLCOUNT 3
static char s_view_colname[VIEW_COLCOUNT][10] = {"分机号码", "房间号码","分机描述"};
static int s_view_colwidth[VIEW_COLCOUNT] = {120,120,180};
const int T_NUMBER = 0;
const int T_ROOMCODE =1;
const int T_DESCRIBE = 2;
/////////////////////////////////////////////////////////////////////////////
// CPhoneDlg dialog
CPhoneDlg::CPhoneDlg(CWnd* pParent /*=NULL*/)
: CDialog(CPhoneDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CPhoneDlg)
//}}AFX_DATA_INIT
//m_manager = new CDataManager();
}
void CPhoneDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPhoneDlg)
DDX_Control(pDX, IDC_LIST, m_list);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPhoneDlg, CDialog)
//{{AFX_MSG_MAP(CPhoneDlg)
ON_BN_CLICKED(IDC_ADD_BUTTON, OnAddButton)
ON_BN_CLICKED(IDC_DEL_BUTTON, OnDelButton)
ON_BN_CLICKED(IDC_MODIFY_BUTTON, OnModifyButton)
ON_BN_CLICKED(IDC_EXIT_BUTTON, OnExitButton)
ON_NOTIFY(NM_CLICK, IDC_LIST, OnClickList)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPhoneDlg message handlers
BOOL CPhoneDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
InitList();
m_AdoConn.OnInitADOConn(".");
ShowList();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CPhoneDlg::OnAddButton()
{
// TODO: Add your control notification handler code here
CPhone2Dlg dlg;
if ( IDCANCEL == dlg.DoModal() ) return;
if(!JudgeNumber(dlg.GetNumber()))
{
AfxMessageBox("号码错误!");
return;
}
/*if(JudgeRoomCode(dlg.GetRoomCode()))
{
AfxMessageBox("房间编号错误!");
return;
}*/
InsertData(dlg.GetNumber(),dlg.GetRoomCode(),dlg.GetDescribe());
AddList(dlg.GetNumber(),dlg.GetRoomCode(),dlg.GetDescribe());
}
void CPhoneDlg::OnDelButton()
{
// TODO: Add your control notification handler code here
int n = m_list.GetSelectionMark();
DeleteData(m_list.GetItemText(n,T_NUMBER));
m_list.DeleteItem(n);
//GetDlgItem(IDC_NUMBER)->SetWindowText("");
//GetDlgItem(IDC_ROOMCODE)->SetWindowText("");
//GetDlgItem(IDC_DESCRIBE)->SetWindowText("");
UpdateData(false);
}
void CPhoneDlg::OnModifyButton()
{
// TODO: Add your control notification handler code here
CPhone2Dlg dlg;
int n= m_list.GetSelectionMark();
dlg.SetNumber(m_list.GetItemText(n,T_NUMBER));
dlg.SetRoomCode(m_list.GetItemText(n,T_ROOMCODE));
dlg.SetDescribe(m_list.GetItemText(n,T_DESCRIBE));
if ( IDCANCEL == dlg.DoModal() ) return;
if(atoi(m_list.GetItemText(n,T_NUMBER))<8000 || atoi(m_list.GetItemText(n,T_NUMBER))>8999)
{
AfxMessageBox("号码错误");
return;
}
ModifyData(m_list.GetItemText(n,T_NUMBER),dlg.GetNumber(),dlg.GetRoomCode(),dlg.GetDescribe());
ModifyList(dlg.GetNumber(),dlg.GetRoomCode(),dlg.GetDescribe());
/*if(JudgeRoomCode(dlg.GetRoomCode()))
{
AfxMessageBox("房间编号错误!");
return;
}
ModifyData(m_list.GetItemText(n,T_NUMBER),dlg.GetNumber(),dlg.GetRoomCode(),dlg.GetDescribe());
ModifyList(dlg.GetNumber(),dlg.GetRoomCode(),dlg.GetDescribe());*/
}
void CPhoneDlg::OnExitButton()
{
// TODO: Add your control notification handler code here
m_AdoConn.ExitConnect();
//delete(m_manager);
CDialog::OnCancel();
}
/*******************************
* InitList
*
* Remark: 初始化List控件
******************************/
void CPhoneDlg::InitList()
{
LV_COLUMN lvC;
int i;
ListView_SetImageList(m_list.m_hWnd, ImageList_Create(1, 16, ILC_COLOR, 1, 1), LVSIL_SMALL);
ListView_SetExtendedListViewStyle(m_list.m_hWnd, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
lvC.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
lvC.fmt = LVCFMT_LEFT;
for (i = 0; i < VIEW_COLCOUNT; i++)
{
lvC.pszText = s_view_colname[i];
lvC.cx = s_view_colwidth[i];
lvC.iSubItem = i;
if (ListView_InsertColumn(m_list.m_hWnd, i, &lvC) == -1) return;
}
ListView_SetItemCount(m_list.m_hWnd, VIEW_COLCOUNT);
//m_list.SetSelectionMark(1);
}
/***********************************************
* 函数名: CPhoneDlg::ShowList
*
* 功 能: 显示
*
* 返回值: void
***********************************************/
void CPhoneDlg::ShowList()
{
_variant_t var;
CString strCount("");
//ADOConn m_AdoConn;
//m_AdoConn.OnInitADOConn(m_strDataBase);
//设置SELECT语句
CString strSQL;
strSQL.Format("select T_Number,T_RoomCode,T_Describe from R_TelPhone");
_bstr_t vSQL =strSQL;
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
// Get RecordCout
long lCount = 0;
lCount = m_pRecordset->GetRecordCount();
if (lCount == -1)
{
if (m_pRecordset->adoEOF != VARIANT_TRUE)
m_pRecordset->MoveFirst();
while (m_pRecordset->adoEOF != VARIANT_TRUE)
{
lCount++;
m_pRecordset->MoveNext();
}
if (lCount >=0)
m_pRecordset->MoveFirst();
}
int n = 0;
m_list.DeleteAllItems();
m_list.Invalidate(TRUE);
while(!m_pRecordset->adoEOF)
{
m_list.InsertItem(n,"");
var = m_pRecordset->GetCollect("T_Number");
if(var.vt != VT_NULL)
m_list.SetItemText(n,T_NUMBER,(LPCSTR)_bstr_t(var));
var = m_pRecordset->GetCollect("T_RoomCode");
if(var.vt != VT_NULL)
m_list.SetItemText(n,T_ROOMCODE,(LPCSTR)_bstr_t(var));
var = m_pRecordset->GetCollect("T_Describe");
if(var.vt != VT_NULL)
m_list.SetItemText(n,T_DESCRIBE,(LPCSTR)_bstr_t(var));
n++;
m_pRecordset->MoveNext();
}
//m_AdoConn.ExitConnect();
}
void CPhoneDlg::OnClickList(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
//int n = m_list.GetSelectionMark();
//GetDlgItem(IDC_NUMBER)->SetWindowText(m_list.GetItemText(n,T_NUMBER));
//GetDlgItem(IDC_ROOMCODE)->SetWindowText(m_list.GetItemText(n,T_ROOMCODE));
//GetDlgItem(IDC_DESCRIBE)->SetWindowText(m_list.GetItemText(n,T_DESCRIBE));
//UpdateData(false);
*pResult = 0;
}
void CPhoneDlg::DeleteData(CString strNumber)
{
CString strSQL("");
try
{
//ADOConn m_AdoConn;
//m_AdoConn.OnInitADOConn(m_strDataBase);
strSQL.Format("Delete from R_TelPhone where T_Number = '%s'",strNumber);
//strSQL.Format("INSERT INTO F_(PSerial) VALUES('%s')","123");
_bstr_t vSQL =strSQL;
m_AdoConn.ExecuteSQL(vSQL);
}
catch (_com_error e)
{
CString errormessage;
errormessage.Format("自定义错误信息2:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
void CPhoneDlg::InsertData(CString strNumber,CString strRoomCode,CString strDescribe)
{
CString strSQL("");
try
{
strSQL.Format ("INSERT INTO R_TelPhone(T_Number,T_RoomCode,T_Describe,T_DeptID)\
VALUES('%s','%s','%s','%s')",\
strNumber,strRoomCode,strDescribe,"00");
_bstr_t vSQL =strSQL;
m_AdoConn.ExecuteSQL(vSQL);
}
catch (_com_error e)
{
CString errormessage;
errormessage.Format("自定义错误信息3:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
void CPhoneDlg::ModifyData(CString strOldNumber,CString strNumber,CString strRoomCode,CString strDescribe)
{
CString strSQL("");
try
{
//ADOConn m_AdoConn;
//m_AdoConn.OnInitADOConn(m_strDataBase);
//strSQL.Format("Delete from R_TelPhone where T_Number = '%s'",strNumber);
strSQL.Format("update R_TelPhone SET T_Number = '%s',T_RoomCode= '%s',T_Describe = '%s' WHERE T_Number ='%s'",\
strNumber,strRoomCode,strDescribe,strOldNumber);
_bstr_t vSQL =strSQL;
m_AdoConn.ExecuteSQL(vSQL);
}
catch (_com_error e)
{
CString errormessage;
errormessage.Format("自定义错误信息3:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
}
BOOL CPhoneDlg::JudgeNumber(CString strNumber)
{
if(atoi(strNumber)<8000 || atoi(strNumber)>8999)
return false;
_variant_t var;
//设置SELECT语句
CString strSQL;
strSQL.Format( "SELECT T_Number FROM R_TelPhone WHERE T_Number = '%s'",strNumber);
_bstr_t vSQL =strSQL;
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
// Get RecordCout
long lCount = 0;
lCount = m_pRecordset->GetRecordCount();
if (lCount == -1)
{
if (m_pRecordset->adoEOF != VARIANT_TRUE)
m_pRecordset->MoveFirst();
while (m_pRecordset->adoEOF != VARIANT_TRUE)
{
lCount++;
m_pRecordset->MoveNext();
}
if (lCount >=0)
m_pRecordset->MoveFirst();
else
return true;
}
return false;
}
BOOL CPhoneDlg::JudgeRoomCode(CString strRoomCode)
{
_variant_t var;
//设置SELECT语句
CString strSQL;
strSQL.Format( "SELECT * FROM F_Tables , s_parlor \
WHERE (f_tables.ParlorCode = s_parlor.parlorCode)\
and s_parlor.parlortype = '05'and f_tables.TableCode = '%s'",strRoomCode);
_bstr_t vSQL =strSQL;
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
// Get RecordCout
long lCount = 0;
lCount = m_pRecordset->GetRecordCount();
if (lCount == -1)
{
if (m_pRecordset->adoEOF != VARIANT_TRUE)
m_pRecordset->MoveFirst();
while (m_pRecordset->adoEOF != VARIANT_TRUE)
{
lCount++;
m_pRecordset->MoveNext();
}
if (lCount >=0)
m_pRecordset->MoveFirst();
else
return false;
}
return true;
}
/*************************************
* AddList
*
* Parameters: structData // 结构体
*
* Remark: 添加入ListView中,显示
************************************/
void CPhoneDlg::AddList(CString strNumber,CString strRoomCode,CString strDescribe)
{
int Count = m_list.GetItemCount();
m_list.InsertItem(Count,"");
m_list.SetItemText(Count,T_NUMBER,strNumber);
m_list.SetItemText(Count,T_ROOMCODE,strRoomCode);
m_list.SetItemText(Count,T_DESCRIBE,strDescribe);
}
void CPhoneDlg::ModifyList(CString strNumber,CString strRoomCode,CString strDescribe)
{
//int Count = m_list.GetItemCount();
//m_list.InsertItem(Count,"");
int n = m_list.GetSelectionMark();
m_list.SetItemText(n,T_NUMBER,strNumber);
m_list.SetItemText(n,T_ROOMCODE,strRoomCode);
m_list.SetItemText(n,T_DESCRIBE,strDescribe);
UpdateData(false);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -