📄 logmanager.cpp
字号:
// LogManager.cpp : implementation file
//
#include "stdafx.h"
#include "sms.h"
#include "LogManager.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLogManager dialog
CLogManager::CLogManager(CWnd* pParent /*=NULL*/)
: CDialog(CLogManager::IDD, pParent)
{
//{{AFX_DATA_INIT(CLogManager)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CLogManager::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLogManager)
DDX_Control(pDX, IDC_LOG_TAB, m_LogTab);
DDX_Control(pDX, IDC_LOG_LIST, m_LogList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLogManager, CDialog)
//{{AFX_MSG_MAP(CLogManager)
ON_NOTIFY(TCN_SELCHANGE, IDC_LOG_TAB, OnSelchangeLogTab)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLogManager message handlers
BOOL CLogManager::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
// //////////////////////////////////////////////////////////////////////////
// //对日志对话框中的List控件添加列
// //////////////////////////////////////////////////////////////////////////
// m_LogList.InsertColumn(0,"ID",LVCFMT_LEFT,60);
// m_LogList.InsertColumn(1,"订单ID",LVCFMT_LEFT,90);
// m_LogList.InsertColumn(2,"对方号码",LVCFMT_LEFT,90);
// m_LogList.InsertColumn(3,"状态",LVCFMT_LEFT,90);
// m_LogList.SetExtendedStyle(LVS_REPORT);//为表格添加附加属性 让表格有方格线
//
//////////////////////////////////////////////////////////////////////////
//对日志对话框中的Tab控件添加表项
//////////////////////////////////////////////////////////////////////////
m_LogTab.InsertItem(0,"发送日志查询");
m_LogTab.InsertItem(1,"接收日志查询");
//////////////////////////////////////////////////////////////////////////
//将窗口类对象跟指定窗口关连起来
//////////////////////////////////////////////////////////////////////////
m_SendLogQuery.Create(IDD_SEND_LOG_QUERY,&m_LogTab);
m_InceptLogQuery.Create(IDD_INCEPT_LOG_QUERY,&m_LogTab);
DoTab(0);//通过调用这个函数将Tab控件里的第一个该选项关连的对话框显示出来
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CLogManager::DoTab(int nTab)
{
if (nTab>2) nTab = 2; // 确定nTab值不能超过范围
if (nTab<0) nTab = 0;
BOOL bTab[3];
bTab[0] = bTab[1] = bTab[2] = FALSE;
bTab[nTab] = TRUE;
// 切换对话框的显示和隐藏
SetDlgState(&m_SendLogQuery, bTab[0]);
SetDlgState(&m_InceptLogQuery, bTab[1]);
//SetDlgState(m_pTab3Dlg, bTab[2]);
//////////////////////////////////////////////////////////////////////////
///数据库操作
CSMSApp * pCSMSApp=(CSMSApp *)AfxGetApp();//取得App类对象的指针
CSMSADO &Ado=pCSMSApp->m_SMSAdo;
//这里判断数据连接是否连接成功
if(!Ado.IsConnection())
{
MessageBox("连接数据库出错\n请重新设置Oracle相关信息");
return;
}
if(0==nTab)
{
CString sql="SELECT * FROM sendlog";
SQLRECORDSET rs=Ado.ExecuteWithRecordset(sql);
ShowSendLogSearchList(rs);
}
else
{
CString sql="SELECT * FROM receivedlog";
SQLRECORDSET rs=Ado.ExecuteWithRecordset(sql);
ShowRecvLogSearchList(rs);
}
}
void CLogManager::SetDlgState(CWnd *pWnd, BOOL bShow)
{
pWnd->EnableWindow(bShow);
if (bShow)
{
pWnd->ShowWindow(SW_SHOW);
pWnd->CenterWindow(); // 居中显示
}
else
pWnd->ShowWindow(SW_HIDE);
}
void CLogManager::OnSelchangeLogTab(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int nSelect = m_LogTab.GetCurSel();
if (nSelect >= 0)
DoTab(nSelect);
*pResult = 0;
}
void CLogManager::ShowSendLogSearchList(SQLRECORDSET & rs)
{
//删除list中的所有数据item
m_LogList.DeleteAllItems();
//取得list中的列数
int nColumnCount =m_LogList.GetHeaderCtrl()->GetItemCount();
int i=0;
for (i=0;i < nColumnCount;i++)
{
//删除列数
m_LogList.DeleteColumn(0);
}
//////////////////////////////////////////////////////////////////////////
//对日志对话框中的List控件添加列
//////////////////////////////////////////////////////////////////////////
m_LogList.InsertColumn(0,"ID",LVCFMT_LEFT,60);
m_LogList.InsertColumn(1,"订单ID",LVCFMT_LEFT,90);
m_LogList.InsertColumn(2,"对方号码",LVCFMT_LEFT,90);
m_LogList.InsertColumn(3,"发送时间",LVCFMT_LEFT,90);
m_LogList.InsertColumn(4,"状态",LVCFMT_LEFT,90);
m_LogList.SetExtendedStyle(LVS_REPORT);//为表格添加附加属性 让表格有方格线
if(NULL==rs)
{
return;
}
//////////////////////////////////////////////////////////////////////////
///数据库操作
CSMSApp * pCSMSApp=(CSMSApp *)AfxGetApp();//取得App类对象的指针
CSMSADO &Ado=pCSMSApp->m_SMSAdo;
i=0;
CString id;
CString orderFormID;
CString phoneNumber;
CString sendDataTime;
CString state;
int nState;
while(!rs->rsEOF)
{
id.Format("%d",Ado.GetIntegerFieldVal(rs,"id"));
orderFormID.Format("%d",Ado.GetIntegerFieldVal(rs,"orderid"));
phoneNumber=Ado.GetTextFieldVal(rs,"pnumber");
sendDataTime=Ado.GetDateTimeFeildTextValue(rs,"sendtime");
nState=Ado.GetIntegerFieldVal(rs,"state");
if(1==nState)
{
state="成功";
}
else
{
state="失败";
}
m_LogList.InsertItem(i,id);
m_LogList.SetItemText(i,1,orderFormID);
m_LogList.SetItemText(i,2,phoneNumber);
m_LogList.SetItemText(i,3,sendDataTime);
m_LogList.SetItemText(i,4,state);
i++;
rs->MoveNext();
}
}
void CLogManager::ShowRecvLogSearchList(SQLRECORDSET & rs)
{
//删除list中的所有数据item
m_LogList.DeleteAllItems();
//取得list中的列数
int nColumnCount =m_LogList.GetHeaderCtrl()->GetItemCount();
for (int i=0;i < nColumnCount;i++)
{
//删除列数
m_LogList.DeleteColumn(0);
}
m_LogList.InsertColumn(0,"ID",LVCFMT_LEFT,50);
m_LogList.InsertColumn(1,"对方号码",LVCFMT_LEFT,100);
m_LogList.InsertColumn(2,"接收时间",LVCFMT_LEFT,100);
m_LogList.InsertColumn(3,"内容",LVCFMT_LEFT,60);
m_LogList.SetExtendedStyle(LVS_REPORT);//为表格添加附加属性 让表格有方格线
if(NULL==rs)
{
return;
}
//////////////////////////////////////////////////////////////////////////
///数据库操作
CSMSApp * pCSMSApp=(CSMSApp *)AfxGetApp();//取得App类对象的指针
CSMSADO &Ado=pCSMSApp->m_SMSAdo;
i=0;
CString id;
CString recvContent;
CString phoneNumber;
CString recvDataTime;
CString state;
while(!rs->rsEOF)
{
id.Format("%d",Ado.GetIntegerFieldVal(rs,"id"));
phoneNumber=Ado.GetTextFieldVal(rs,"peernumber");
recvContent=Ado.GetTextFieldVal(rs,"replycontent");
recvDataTime=Ado.GetDateTimeFeildTextValue(rs,"replytime");
m_LogList.InsertItem(i,id);
m_LogList.SetItemText(i,1,phoneNumber);
m_LogList.SetItemText(i,2,recvDataTime);
m_LogList.SetItemText(i,3,recvContent);
i++;
rs->MoveNext();
}
}
BOOL CLogManager::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_RETURN) return TRUE;
if (pMsg->wParam == VK_ESCAPE) return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -