AgentManager/ListDlg.cpp
2025-01-22 15:45:17 +08:00

372 lines
9.5 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ListDlg.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "ListDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CListDlg dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_SmsLogSee.h"
CListDlg::CListDlg(CWnd* pParent /*=NULL*/)
: CDialog(CListDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CListDlg)
m_lCorp = -1;
m_tBegin = COleDateTime::GetCurrentTime();
m_tEnd = COleDateTime::GetCurrentTime();
m_lMobileType = -1;
m_bOld = FALSE;
m_lMsgType = -1;
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_bProcess = false;
}
void CListDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CListDlg)
DDX_Control(pDX, IDC_LIST_CORPID, m_E_CorpID);
DDX_Control(pDX, IDC_LIST_S1, m_S_S1);
DDX_Control(pDX, IDC_LIST_CORP, m_L_Corp);
DDX_Control(pDX, IDC_LIST_LIST, m_wndList);
DDX_CBIndex(pDX, IDC_LIST_CORP, m_lCorp);
DDX_DateTimeCtrl(pDX, IDC_LIST_TBEGIN, m_tBegin);
DDX_DateTimeCtrl(pDX, IDC_LIST_TEND, m_tEnd);
DDX_CBIndex(pDX, IDC_LIST_MOBILETYPE, m_lMobileType);
DDX_Check(pDX, IDC_LIST_OLD, m_bOld);
DDX_CBIndex(pDX, IDC_LIST_MSGYTYPE, m_lMsgType);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CListDlg, CDialog)
//{{AFX_MSG_MAP(CListDlg)
ON_WM_SIZE()
ON_BN_CLICKED(IDC_LIST_QUERY, OnListQuery)
ON_NOTIFY(NM_DBLCLK, IDC_LIST_LIST, OnDblclkListList)
ON_BN_CLICKED(IDC_LIST_QUERY2, OnListQuery2)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CListDlg message handlers
BOOL CListDlg::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CListDlg::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CListDlg::RefreshInfo()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return false;
}
m_pMainFrame->SendFrame(SMSFUNC_CORP_NAME,NULL,0);
return true;
}
BOOL CListDlg::ProcessSocket(Socket_Head *pHead)
{
CString strTemp;
//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
if (pHead->lFuncType == SMSFUNC_CORP_NAME)
{
m_bRefresh = true; //<2F>Ѿ<EFBFBD>ˢ<EFBFBD>¹<EFBFBD>
ANS_Corp_Name * pCorp = (ANS_Corp_Name *)pHead->pFrame;
ANS_Corp_NameData * pData = (ANS_Corp_NameData *)(pHead->pFrame+sizeof(ANS_Corp_Name));
m_L_Corp.ResetContent(); //ɾ<><C9BE>ԭ<EFBFBD><D4AD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>ҵ
//m_L_Corp.AddString( _T("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ") );
this->Close(); //<2F>ر<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>
for ( int i=0;i<pCorp->lCount;i++ )
{
//if ( pData->lAgentID == m_pMainFrame->m_lUserID &&
// pData->bAgentModify ) //<2F><><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>ҵ
if ( pData->lAgentID == m_pMainFrame->m_lUserID )
{
ANS_Corp_NameData * pNewData = new ANS_Corp_NameData;
*pNewData = *pData;
POSITION pos = m_Corp.AddTail(pNewData);
strTemp.Format( _T("%d-%s"),pData->lCorpID,pData->szCorpName);
long lItem = m_L_Corp.AddString( strTemp );
m_L_Corp.SetItemData( lItem , (DWORD)pos);
}
pData ++;
}
if ( m_L_Corp.GetCount() )
m_L_Corp.SetCurSel(0);
return true;
}
//ȡ<>
if (pHead->lFuncType == SMSFUNC_LIST)
{
ANS_List * pList = (ANS_List *)pHead->pFrame;
ANS_ListData * pData = (ANS_ListData *)(pHead->pFrame+sizeof(ANS_List));
//<2F><><EFBFBD>ӵ<EFBFBD>List
long lCount = m_wndList.GetItemCount();
TCHAR szBuf[32];
for ( int i = 0 ; i< pList->lCount;i++)
{
//_T("List<73><74><EFBFBD><EFBFBD>,50; <20><><EFBFBD><EFBFBD>,60,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,100; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80; <20><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,100; <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,100; <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,100; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,200;"));
m_wndList.InsertItem( lCount+i,_itot(lCount+i+1,szBuf,10),0);
_tcscpy( szBuf , _T("δ֪") );
switch( pData->lSmsType )
{
case SMSTYPE_SEND:
_tcscpy(szBuf , _T("<EFBFBD><EFBFBD> <20><>") );
break;
case SMSTYPE_ZF:
_tcscpy(szBuf , _T("ת <20><>") );
break;
case SMSTYPE_ALARM:
_tcscpy(szBuf , _T("<EFBFBD>ճ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") );
break;
case SMSTYPE_EMAIL:
_tcscpy(szBuf , _T("<EFBFBD>ʼ<EFBFBD>֪ͨ") );
break;
case SMSTYPE_RECV:
_tcscpy(szBuf , _T("<EFBFBD><EFBFBD> <20><>") );
break;
case SMSTYPE_SP:
_tcscpy(szBuf , _T("<EFBFBD><EFBFBD>ֵҵ<EFBFBD><EFBFBD>") );
break;
}
m_wndList.SetItemText(lCount+i,1,szBuf);
m_wndList.SetItemText(lCount+i,2,pData->szSender);
m_wndList.SetItemText(lCount+i,3,pData->szSendNum);
m_wndList.SetItemText(lCount+i,4,pData->szRecver);
m_wndList.SetItemText(lCount+i,5,pData->szRecvNum);
_stprintf( szBuf , _T("%02d.%02d %02d:%02d:%02d") , pData->tSendTime.wMonth,pData->tSendTime.wDay,pData->tSendTime.wHour,pData->tSendTime.wMinute,pData->tSendTime.wSecond );
m_wndList.SetItemText(lCount+i,6,szBuf);
_stprintf( szBuf , _T("%02d.%02d %02d:%02d:%02d") , pData->tRecvTime.wMonth,pData->tRecvTime.wDay,pData->tRecvTime.wHour,pData->tRecvTime.wMinute,pData->tRecvTime.wSecond );
m_wndList.SetItemText(lCount+i,7,szBuf);
m_wndList.SetItemText(lCount+i,8,pData->szMsg);
pData++;
}
if ( m_bProcess ) //<2F>ǵ<EFBFBD><C7B5><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
{
m_Process.SetProcess( pList->lPageAll , pList->lPageCount );
}
return true;
}
return false;
}
BOOL CListDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//ȡ<>ù<EFBFBD><C3B9>ò<EFBFBD><C3B2><EFBFBD>
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
this->GetParent()->GetParentFrame();
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
m_pSocket = &m_pMainFrame->m_Socket;
//<2F><>ʼ<EFBFBD><CABC>List
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LIST) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,40; <20><> <20><>,60;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,70; <20><><EFBFBD>ͺ<EFBFBD><CDBA><EFBFBD>,100; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,70; <20><><EFBFBD>պ<EFBFBD><D5BA><EFBFBD>,100; <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,120; <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>,120; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,200;"));
m_wndList.SetGridLines(true);
// m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
m_bInit = true;
/*
//Ĭ<><C4AC>ȡ<EFBFBD><C8A1><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
SYSTEMTIME t; ::GetLocalTime(&t);
t.wDay = 1;//<2F><>1<EFBFBD><31><EFBFBD><EFBFBD>
t.wMonth = t.wMonth-1;
if ( t.wMonth <=0 )
{
t.wMonth = 12;
t.wYear = t.wYear-1;
}
m_tBegin.SetDate( t.wYear,t.wMonth,t.wDay ); //<2F><>ʼ
if ( t.wMonth == 1 ||
t.wMonth == 3 ||
t.wMonth == 5 ||
t.wMonth == 7 ||
t.wMonth == 8 ||
t.wMonth == 10 ||
t.wMonth == 12 )
{
t.wDay = 31;
}
else
if (t.wMonth == 2 )
t.wDay = 28;
else
t.wDay = 30;
m_tEnd.SetDate( t.wYear,t.wMonth,t.wDay );//<2F><><EFBFBD><EFBFBD>
*/
SYSTEMTIME t; ::GetLocalTime(&t);
m_tBegin.SetDate( t.wYear,t.wMonth,t.wDay ); //<2F><>ʼ
m_tEnd.SetDate( t.wYear,t.wMonth,t.wDay );//<2F><><EFBFBD><EFBFBD>
m_lMobileType = 0; //Ĭ<>ϲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD>к<EFBFBD><D0BA><EFBFBD>
m_lMsgType=0; //Ĭ<>ϲ<EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵Ķ<CDB5><C4B6><EFBFBD>
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CListDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
if ( m_bInit )
{
CRect rect;
m_S_S1.GetWindowRect(&rect);
m_wndList.MoveWindow( 0 , 0+rect.Height()+5 , cx,cy-rect.Height()-5);
}
}
void CListDlg::Close()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
while (!m_Corp.IsEmpty())
{
ANS_Corp_NameData * pData = m_Corp.GetHead();
m_Corp.RemoveHead();
delete pData;
}
}
void CListDlg::OnListQuery()
{
UpdateData(true);
if ( m_tEnd < m_tBegin )
{
MessageBox( _T("<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
return ;
}
if ( m_lCorp < 0 )
{
MessageBox( _T("û<EFBFBD>пɹ<EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
return ;
}
REQ_List * pList = new REQ_List;memset(pList,0,sizeof(REQ_List));
POSITION pos = (POSITION)m_L_Corp.GetItemData(m_lCorp);
POSITION pos2 = pos;
ANS_Corp_NameData * pData = m_Corp.GetNext( pos );
if (pData)
{
pList->lCorpID = pData->lCorpID;
}
else
{
return;
}
m_tBegin.GetAsSystemTime( pList->tBegin );
m_tEnd.GetAsSystemTime( pList->tEnd );
pList->lMobileType = m_lMobileType-1; //<2F>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
pList->lMsgType = m_lMsgType-1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pList->bOld = m_bOld; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_wndList.ShowWindow( SW_HIDE ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
m_wndList.DeleteAllItems(); //<2F><>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD>¼
m_pMainFrame->SendFrame(SMSFUNC_LIST,(BYTE*)pList,sizeof(REQ_List));
m_bProcess = true;
m_Process.DoModal();
m_bProcess = false;
m_wndList.ShowWindow( SW_SHOW ); //Ϊ<>˼ӿ<CBBC><D3BF><EFBFBD>ʾ<EFBFBD>ٶ<EFBFBD>
return ;
}
void CListDlg::OnDblclkListList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
long lItem = m_wndList.GetFirstSelectedItem();
if ( lItem < 0 )
return ;
CString strTemp;
CString strTemp1;
SMS_See sms={0};
m_wndList.GetItemText(lItem,1,sms.szStatus,sizeof(sms.szStatus));
strTemp = m_wndList.GetItemText(lItem,2);
strTemp1 = m_wndList.GetItemText(lItem,3);
if ( strTemp.GetLength()>0)
_stprintf( sms.szSender , _T("%s-%s") , strTemp,strTemp1 );
else
_stprintf( sms.szSender , _T("%s") , strTemp1 );
strTemp = m_wndList.GetItemText(lItem,4);
strTemp1 = m_wndList.GetItemText(lItem,5);
if ( strTemp.GetLength()>0)
_stprintf( sms.szRecver , _T("%s-%s") , strTemp,strTemp1 );
else
_stprintf( sms.szRecver , _T("%s") , strTemp1 );
m_wndList.GetItemText(lItem,6, sms.szSendTime ,sizeof( sms.szSendTime));
m_wndList.GetItemText(lItem,7, sms.szRecvTime ,sizeof( sms.szRecvTime));
m_wndList.GetItemText(lItem,8, sms.szMsg ,sizeof( sms.szMsg));
DLG_SmsLogSee dlg(this);
dlg.SetParam(sms);
dlg.DoModal();
}
void CListDlg::OnListQuery2()
{
CString strTemp;
CString strFind;
m_E_CorpID.GetWindowText(strFind);
if ( strFind.GetLength()<=0 )
return ;
long lSel = m_L_Corp.GetCurSel();
long lCount = m_L_Corp.GetCount();
for ( int i=lSel+1 ; i<lCount ; i++ )
{
m_L_Corp.GetLBText(i,strTemp);
if ( strTemp.Find(strFind)>=0 )
{
m_L_Corp.SetCurSel(i);
return ;
}
}
for ( i=0 ; i<lSel ; i++ )
{
m_L_Corp.GetLBText(i,strTemp);
if ( strTemp.Find(strFind)>=0 )
{
m_L_Corp.SetCurSel(i);
return ;
}
}
}