SmsManager/HZBDlg.cpp

406 lines
9.7 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.

// HZBDlg.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "HZBDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CHZBDlg dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_HZB_Export.h"
CHZBDlg::CHZBDlg(CWnd* pParent /*=NULL*/)
: CDialog(CHZBDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CHZBDlg)
m_tBegin = COleDateTime::GetCurrentTime();
m_tEnd = COleDateTime::GetCurrentTime();
m_lMobileType = -1;
m_bOld = FALSE;
m_bOnlySend = FALSE;
m_lCorp = -1;
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
}
void CHZBDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CHZBDlg)
DDX_Control(pDX, IDC_HZB_CORPID, m_E_CorpID);
DDX_Control(pDX, IDC_HZB_CORP, m_L_Corp);
DDX_Control(pDX, IDC_HZB_ONLYSEND, m_B_OnlySend);
DDX_Control(pDX, IDC_HZB_S2, m_S_S2);
DDX_Control(pDX, IDC_HZB_OLD, m_B_Old);
DDX_Control(pDX, IDC_HZB_S1, m_S_S1);
DDX_Control(pDX, IDC_HZB_LIST, m_wndList);
DDX_DateTimeCtrl(pDX, IDC_HZB_TBEGIN, m_tBegin);
DDX_DateTimeCtrl(pDX, IDC_HZB_TEND, m_tEnd);
DDX_CBIndex(pDX, IDC_HZB_MOBILETYPE, m_lMobileType);
DDX_Check(pDX, IDC_HZB_OLD, m_bOld);
DDX_Check(pDX, IDC_HZB_ONLYSEND, m_bOnlySend);
DDX_CBIndex(pDX, IDC_HZB_CORP, m_lCorp);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CHZBDlg, CDialog)
//{{AFX_MSG_MAP(CHZBDlg)
ON_WM_SIZE()
ON_BN_CLICKED(IDC_HZB_QUERY, OnHzbQuery)
ON_BN_CLICKED(IDC_HZB_OLD, OnHzbOld)
ON_NOTIFY(NM_RCLICK, IDC_HZB_LIST, OnRclickHzbList)
ON_BN_CLICKED(IDC_HZB_QUERY2, OnHzbQuery2)
//}}AFX_MSG_MAP
ON_COMMAND( MENU_HZB_EXPORT , On_HZB_Export )
ON_COMMAND( MENU_HZB_REFRESH , On_HZB_Refresh )
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CHZBDlg message handlers
BOOL CHZBDlg::OnInitDialog()
{
CDialog::OnInitDialog();
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_FILT) );
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; <20><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>,200;<3B>ط<EFBFBD><D8B7><EFBFBD>,60;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80;<3B>Ʒ<EFBFBD><C6B7><EFBFBD>,80;<3B>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80; <20><> <20><>,80; ת <20><>,80; <20>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD><EFBFBD>,80; <20><><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD>,80; <20><> <20><>,80; <20><><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>,80; <20><><EFBFBD><EFBFBD>ͨ,80;"));
m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
m_bInit = true;
SYSTEMTIME t; ::GetLocalTime(&t);
m_tBegin.SetDate( t.wYear,t.wMonth,1 ); //<2F><>ʼ
m_tEnd.SetDate( t.wYear,t.wMonth,t.wDay );//<2F><><EFBFBD><EFBFBD>
m_lMobileType = 0; //Ĭ<>ϲ<CFB2><E9BFB4><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
UpdateData(false);
m_B_OnlySend.EnableWindow(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CHZBDlg::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);
}
}
BOOL CHZBDlg::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CHZBDlg::RefreshInfo()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return false;
}
if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE) )
{
return false;
}
m_pMainFrame->SendFrame(SMSFUNC_CORP_NAME,NULL,0);
return true;
}
BOOL CHZBDlg::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CHZBDlg::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("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ") );
this->Close(); //<2F>ر<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>
for ( int i=0;i<pCorp->lCount;i++ )
{
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_PTR)pos);
pData ++;
}
m_L_Corp.SetCurSel(0);
return true;
}
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; <20><>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>,200;<3B>ط<EFBFBD><D8B7><EFBFBD>,60;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80;<3B>Ʒ<EFBFBD><C6B7><EFBFBD>,80;<3B>ܷ<EFBFBD><DCB7><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD><EFBFBD>,80;ת<><D7AA>,80;<3B>ճ<EFBFBD><D5B3><EFBFBD><EFBFBD><EFBFBD>,80;<3B><><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD>,80;<3B><><EFBFBD><EFBFBD>,80;<3B><><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>,80;<3B><><EFBFBD><EFBFBD>ͨ,80;"));
if ( pHead->lFuncType == SMSFUNC_HZB )
{
CString str;
TCHAR Buf[32]={0};
ANS_HZB * pHZB = (ANS_HZB *)pHead->pFrame;
ANS_HZBData * pData = (ANS_HZBData *)(pHead->pFrame+sizeof(ANS_HZB));
str.Format( _T("<EFBFBD><EFBFBD>ѯ״̬:%d/%d"),pHZB->lIndex,pHZB->lAll );
m_S_S2.SetWindowText(str);
long lItem = m_wndList.GetItemCount();
m_wndList.InsertItem( lItem , _itot(lItem+1,Buf,10),0); //<2F><><EFBFBD><EFBFBD>
m_wndList.SetItemText(lItem ,1, pHZB->szCorpName );
m_wndList.SetItemText(lItem ,2, pHZB->szCorpNum );
str.Format( _T("%8d"),pHZB->lSendCount );
m_wndList.SetItemText(lItem ,3, str );
str.Format( _T("%8d"),pHZB->lJFCount );
m_wndList.SetItemText(lItem ,4, str );
str.Format( _T("%8d"),pHZB->lSMSUsed );
m_wndList.SetItemText(lItem ,5, str );
str.Format( _T("%8d"),pHZB->lSMSSendAll );
m_wndList.SetItemText(lItem ,6, str );
for ( int i=0;i<pHZB->lCount;i++)
{
str.Format( _T("%8d"),pData->lSFCount );
switch( pData->lSmsType )
{
case SMSTYPE_SEND:
m_wndList.SetItemText(lItem,7,str);
break;
case SMSTYPE_ZF:
m_wndList.SetItemText(lItem,8,str);
break;
case SMSTYPE_ALARM:
m_wndList.SetItemText(lItem,9,str);
break;
case SMSTYPE_EMAIL:
m_wndList.SetItemText(lItem,10,str);
break;
case SMSTYPE_RECV:
str.Format( _T("%8d"),pData->lCount );
m_wndList.SetItemText(lItem,11,str);
break;
case SMSTYPE_SP:
m_wndList.SetItemText(lItem,12,str);
break;
case SMSTYPE_SWT:
m_wndList.SetItemText(lItem,13,str);
break;
}
pData++;
}
return true;
}
return true;
}
long CHZBDlg::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void CHZBDlg::OnHzbQuery()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE) )
{
return ;
}
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>!\r\n<EFBFBD>ʵ<EFBFBD><EFBFBD><EFBFBD>ѯ-><3E><><EFBFBD>пͻ<D0BF>-><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ") , _T("<EFBFBD><EFBFBD>Ϣ") , MB_ICONWARNING );
return ;
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 ;
}
REQ_HZB * pHZB = new REQ_HZB;memset(pHZB,0,sizeof(REQ_HZB));
if ( m_lCorp <= 0 ) //ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ
{
pHZB->lCorpID = -1;
}
else
{
POSITION pos = (POSITION)m_L_Corp.GetItemData(m_lCorp);
POSITION pos2 = pos;
ANS_Corp_NameData * pData = m_Corp.GetNext( pos );
if (pData)
{
pHZB->lCorpID = pData->lCorpID;
}
else
{
return;
}
}
m_tBegin.GetAsSystemTime( pHZB->tBegin );
m_tEnd.GetAsSystemTime( pHZB->tEnd );
pHZB->lMobileType = m_lMobileType-1; //<2F>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
pHZB->bOld = m_bOld; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
pHZB->bOnlySend = m_bOnlySend; //<2F><><EFBFBD><EFBFBD>ѯ<EFBFBD><D1AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
m_pMainFrame->SendFrame(SMSFUNC_HZB,(BYTE*)pHZB,sizeof(REQ_HZB));
m_wndList.ShowWindow(SW_HIDE);
m_wndList.DeleteAllItems();
m_wndList.ShowWindow(SW_SHOW);
return ;
}
void CHZBDlg::OnHzbOld()
{
if ( m_B_Old.GetCheck() )
{
GetDlgItem(IDC_HZB_MOBILETYPE)->EnableWindow(true);
m_B_OnlySend.EnableWindow(true);
}
else
{
GetDlgItem(IDC_HZB_MOBILETYPE)->EnableWindow(false);
m_B_OnlySend.EnableWindow(false);
}
}
void CHZBDlg::OnRclickHzbList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CHZBDlg::ShowRMenu()
{
if (!m_pMainFrame->GetUserPurview(PURVIEW_TAB,false)) //û<>в鿴Ȩ<E9BFB4><C8A8>
return ;
if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE,false) )
{
return;
}
CMenu menu;
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING , MENU_HZB_EXPORT, _T(" <20><> <20><>") );
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING , MENU_HZB_REFRESH, _T(" ˢ <20><> ") );
//<2F><>ʾ<EFBFBD>˵<EFBFBD>
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
void CHZBDlg::On_HZB_Export()
{
SortItem item[32]={0};
_tcscpy(item[0].szItem,_T("<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
_tcscpy(item[1].szItem,_T("<EFBFBD>ط<EFBFBD><EFBFBD><EFBFBD>"));
_tcscpy(item[2].szItem,_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
_tcscpy(item[3].szItem,_T("<EFBFBD>Ʒ<EFBFBD><EFBFBD><EFBFBD>"));
_tcscpy(item[4].szItem,_T("<EFBFBD>ܷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
_tcscpy(item[5].szItem,_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
_tcscpy(item[6].szItem,_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
_tcscpy(item[7].szItem,_T("ת<EFBFBD><EFBFBD>"));
_tcscpy(item[8].szItem,_T("<EFBFBD>ճ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
_tcscpy(item[9].szItem,_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʲ<EFBFBD>"));
_tcscpy(item[10].szItem,_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"));
_tcscpy(item[11].szItem,_T("<EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD>"));
_tcscpy(item[12].szItem,_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ"));
DLG_HZB_Export dlg(this);
dlg.SetParam( &m_wndList );
dlg.SetListItem(item,13,1);
dlg.DoModal();
}
void CHZBDlg::On_HZB_Refresh()
{
}
void CHZBDlg::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 CHZBDlg::OnHzbQuery2()
{
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 ;
}
}
}