// 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" #include "DLG_HZB_Export.h" #include "DLG_Corp_Oper_Open.h" #include "DLG_BBS_Send.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; m_bJF = FALSE; m_lTop = -1; m_strMobile = _T(""); //}}AFX_DATA_INIT m_bInit = false; m_bRefresh = false; // m_bProcess = false; m_lQueryCorpID = 0; m_tBegin2 = COleDateTime::GetCurrentTime(); m_tEnd2 = COleDateTime::GetCurrentTime(); m_lQueryReSendID = 0; } void CListDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CListDlg) DDX_Control(pDX, IDC_LIST_MOBILE, m_E_Mobile); 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); DDX_Check(pDX, IDC_LIST_JF, m_bJF); DDX_CBIndex(pDX, IDC_LIST_TOP, m_lTop); DDX_Text(pDX, IDC_LIST_MOBILE, m_strMobile); DDV_MaxChars(pDX, m_strMobile, 15); //}}AFX_DATA_MAP DDX_DateTimeCtrl(pDX, IDC_LIST_TBEGIN2, m_tBegin2); DDX_DateTimeCtrl(pDX, IDC_LIST_TEND2, m_tEnd2); } 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) ON_NOTIFY(NM_RCLICK, IDC_LIST_LIST, OnRclickListList) //}}AFX_MSG_MAP ON_COMMAND(MENU_LIST_SEE , On_User_See ) ON_COMMAND(MENU_LIST_ADDBACK , On_User_AddBack ) ON_COMMAND(MENU_LIST_SENDBBS , On_User_SendBBS ) ON_COMMAND(MENU_LIST_CORPLIST , On_User_CorpList ) ON_COMMAND(MENU_LIST_CORPOFF , On_User_CorpOFF ) ON_COMMAND(MENU_LIST_EXPORT , On_User_Export ) ON_COMMAND(MENU_LIST_COPY , On_User_Copy ) ON_COMMAND(MENU_LIST_RESORT , On_User_Resort) ON_COMMAND(MENU_LIST_RESEND, On_User_ReSend) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CListDlg message handlers BOOL CListDlg::ReShow(BOOL bRefresh) { #ifdef SMSMANAGER_KF if (!m_pMainFrame->GetUserPurview(PURVIEW_TAB, false)) { GetDlgItem(IDC_LIST_OLD)->ShowWindow(SW_HIDE); m_bOld = false; } if (!m_pMainFrame->GetUserPurview(PURVIEW_TAB, false)) { GetDlgItem(IDC_LIST_TOP)->EnableWindow(false); GetDlgItem(IDC_LIST_TBEGIN)->EnableWindow(false); GetDlgItem(IDC_LIST_TEND)->EnableWindow(false); GetDlgItem(IDC_LIST_TBEGIN2)->EnableWindow(false); GetDlgItem(IDC_LIST_TEND2)->EnableWindow(false); } #endif 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_LIST) ) { return false; } m_pMainFrame->SendFrame(SMSFUNC_CORP_NAME,NULL,0); return true; } BOOL CListDlg::ProcessSocket(Socket_Head *pHead) { CString strTemp; //ȡ������Ϣ if (pHead->lFuncType == SMSFUNC_CORP_NAME) { m_bRefresh = true; //�Ѿ�ˢ�¹� 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(); //ɾ��ԭ���е���ҵ m_L_Corp.AddString( _T("������ҵ") ); this->Close_Corp(); //�ر�ԭ���� 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)pos); pData ++; } m_L_Corp.SetCurSel(0); return true; } //ȡ�嵥 if (pHead->lFuncType == SMSFUNC_LIST) { #ifdef SMSCENTER_NX GetDlgItem(IDC_LIST_QUERY)->EnableWindow(true); #endif ANS_List * pList = (ANS_List *)pHead->pFrame; ANS_ListData * pData = (ANS_ListData *)(pHead->pFrame+sizeof(ANS_List)); CString str,strTemp; strTemp.Format( _T("��ѯ��ҵ (%d/%d)") , pList->lPageCount,pList->lPageAll ); m_S_S1.SetWindowText( strTemp ); //���ӵ�List long lCount = m_wndList.GetItemCount(); long lIconIndex = 0; TCHAR szBuf[512]={0}; for ( int i = 0 ; i< pList->lCount;i++) { ANS_ListData * pNewData = new ANS_ListData; *pNewData = *pData; POSITION pos = m_ListData.AddTail(pNewData); //m_wndList.SetHeadings(_T("���,40; �� ��,80;״̬,50;��ҵID,60;������,70; ���ͺ���,120; ������,70; ���պ���,120; �ύʱ��,150; ����ʱ��,150; ����ʱ��,150; ��������,1000; ��ϢID,120;")); lIconIndex = 0; if (pData->lReSendCount > 0) lIconIndex = 1; m_wndList.InsertItem( lCount+i,_itot(lCount+i+1,szBuf,10), lIconIndex); _tcscpy( szBuf , _T("δ֪") ); switch( pData->lSmsType ) { case SMSTYPE_SEND: _tcscpy(szBuf , _T("�� ��") ); break; case SMSTYPE_ZF: _tcscpy(szBuf , _T("ת ��") ); break; case SMSTYPE_ALARM: _tcscpy(szBuf , _T("�ճ�����") ); break; case SMSTYPE_EMAIL: _tcscpy(szBuf , _T("�ʼ�֪ͨ") ); break; case SMSTYPE_RECV: _tcscpy(szBuf , _T("�� ��") ); break; case SMSTYPE_SP: _tcscpy(szBuf , _T("��ֵҵ��") ); break; case SMSTYPE_SWT: _tcscpy(szBuf , _T("����ͨ") ); break; } m_wndList.SetItemText(lCount+i,1,szBuf); #if defined(SMSMANAGER_KF) || defined(SMSCENTER_NX) _tcscpy( szBuf , _T("δ֪") ); switch( pData->lStatus ) { case 0: _tcscpy(szBuf , _T("δ��")); break; case 1: _tcscpy(szBuf , _T("���")); break; case 7: _tcscpy(szBuf , _T("���ʧ��")); break; case 10: _tcscpy(szBuf , _T("���ͳɹ�")); break; case 12: _tcscpy(szBuf , _T("���ճɹ�")); break; case 11: _tcscpy(szBuf , _T("����ʧ��")); break; case 13: _tcscpy(szBuf , _T("����ʧ��")); break; } m_wndList.SetItemText(lCount+i,2,szBuf); #else _stprintf(szBuf , _T("%4d") , pData->lStatus ); m_wndList.SetItemText(lCount+i,2,szBuf); #endif _stprintf(szBuf , _T("%d") , pData->lCorpID ); m_wndList.SetItemText(lCount+i,3,szBuf); m_wndList.SetItemText(lCount+i,4,pData->szSender); _tcscpy(szBuf , pData->szSendNum ); #ifdef SMSMANAGER_KF //szBuf[4]='*';szBuf[5]='*';szBuf[6]='*'; #endif m_wndList.SetItemText(lCount+i,5,szBuf); m_wndList.SetItemText(lCount+i,6,pData->szRecver); _tcscpy(szBuf , pData->szRecvNum ); #ifdef SMSMANAGER_KF szBuf[4]='*';szBuf[5]='*';szBuf[6]='*'; #endif m_wndList.SetItemText(lCount+i,7,szBuf); switch (pData->lRecvNumType) { case 0: str = _T("�ƶ�"); break; case 1: str = _T("��ͨ"); break; case 2: str = _T("С��ͨ"); break; case 3: str = _T("����"); break; case 4: str = _T("����"); break; default: str = _T(""); break; } m_wndList.SetItemText(lCount + i, 8, str); _stprintf( szBuf , _T("%04d.%02d.%02d %02d:%02d:%02d") ,pData->tSubTime.wYear, pData->tSubTime.wMonth,pData->tSubTime.wDay,pData->tSubTime.wHour,pData->tSubTime.wMinute,pData->tSubTime.wSecond ); m_wndList.SetItemText(lCount+i,9,szBuf); _stprintf( szBuf , _T("%04d.%02d.%02d %02d:%02d:%02d") ,pData->tSendTime.wYear, pData->tSendTime.wMonth,pData->tSendTime.wDay,pData->tSendTime.wHour,pData->tSendTime.wMinute,pData->tSendTime.wSecond ); m_wndList.SetItemText(lCount+i,10,szBuf); _stprintf( szBuf , _T("%04d.%02d.%02d %02d:%02d:%02d") ,pData->tRecvTime.wYear,pData->tRecvTime.wMonth,pData->tRecvTime.wDay,pData->tRecvTime.wHour,pData->tRecvTime.wMinute,pData->tRecvTime.wSecond ); m_wndList.SetItemText(lCount+i,11,szBuf); _stprintf( szBuf , _T("%04d.%02d.%02d %02d:%02d:%02d") ,pData->tTimerTime.wYear,pData->tTimerTime.wMonth,pData->tTimerTime.wDay,pData->tTimerTime.wHour,pData->tTimerTime.wMinute,pData->tTimerTime.wSecond ); m_wndList.SetItemText(lCount+i,12,szBuf); m_wndList.SetItemText(lCount+i,13,pData->szMsg); #ifdef SMSCENTER_NX _stprintf(szBuf,_T("%s") , pData->szRecvStatus); #else _stprintf(szBuf,_T("%-32s;%-4d;%s") , pData->szMsgID,pData->lSendRet,pData->szRecvStatus); #endif m_wndList.SetItemText(lCount+i,14,szBuf); m_wndList.SetItemData(lCount+i,(DWORD)(pos) ); pData++; } // if ( m_bProcess ) //�ǵ����û�����Ҫ��ʾ������,��������һ�� // { // m_Process.SetProcess( pList->lPageAll , pList->lPageCount ); // } return true; } if (pHead->lFuncType == SMSFUNC_BACK_ADD) { ANS_Back_Add * pBack = (ANS_Back_Add *)pHead->pFrame; CString str; if ( pBack->bOK ) { str.Format( _T("���������ӳɹ���%d->%s!"),pBack->lCorpID , pBack->szMobile ); MessageBox( str , _T("��ʾ") , MB_ICONINFORMATION ); } else { str.Format( _T("����������ʧ�ܣ����飡")); MessageBox( str , _T("��ʾ") , MB_ICONINFORMATION ); } return true; } return false; } BOOL CListDlg::OnInitDialog() { CDialog::OnInitDialog(); //ȡ�ù��ò��� //CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd()); this->GetParent()->GetParentFrame(); m_pMainFrame = (CMainFrame*)this->GetParent()->GetParentFrame(); m_pSocket = &m_pMainFrame->m_Socket; #ifdef SMSMANAGER_KF GetDlgItem(IDC_LIST_S1)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LIST_CORP)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LIST_QUERY2)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LIST_CORPID)->ShowWindow(SW_HIDE); //GetDlgItem(IDC_LIST_OLD)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LIST_JF)->ShowWindow(SW_HIDE); //GetDlgItem(IDC_LIST_S2)->ShowWindow(SW_HIDE); //GetDlgItem(IDC_LIST_MOBILETYPE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LIST_MSGYTYPE)->ShowWindow(SW_HIDE); #endif //��ʼ��List m_Image.Create(16, 16, ILC_COLOR16 | ILC_MASK, 5, 5); m_Image.Add(AfxGetApp()->LoadIcon(IDI_NULL)); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LIST)); m_wndList.SubClassWindow2(); m_wndList.SetHeadings(_T("���,50; �� ��,80;״̬,70;��ҵID,60;������,70; ���ͺ���,130; ������,70; ���պ���,130;��Ӫ��,70; �ύʱ��,150; ����ʱ��,150; ����ʱ��,150; ��ʱʱ��,150; ��������,1000; ��ע,400;")); m_wndList.SetGridLines(true); m_wndList.SetImageList(&m_Image,LVSIL_SMALL); m_bInit = true; /* //Ĭ��ȡ���µ����� SYSTEMTIME t; ::GetLocalTime(&t); t.wDay = 1;//��1���� 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 ); //��ʼ 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 );//���� */ SYSTEMTIME t; ::GetLocalTime(&t); m_tBegin.SetDate(t.wYear, t.wMonth, t.wDay); //��ʼ m_tEnd.SetDate(t.wYear, t.wMonth, t.wDay);//���� if (!m_pMainFrame->GetUserPurview(PURVIEW_TAB, false)) { COleDateTime tP = COleDateTime::GetCurrentTime() - COleDateTimeSpan(2, 0, 0, 0); m_tBegin.SetDate(tP.GetYear(), tP.GetMonth(), tP.GetDay()); //��ʼ } t.wHour=0; t.wMinute=0; t.wSecond=0; m_tBegin2.SetTime(t.wHour,t.wMinute,t.wSecond); t.wHour=23; t.wMinute=59; t.wSecond=59; m_tEnd2.SetTime(t.wHour,t.wMinute,t.wSecond); m_lMobileType = 0; //Ĭ�ϲ�ѯ���к��� m_lMsgType=0; //Ĭ�ϲ�ѯ�������͵Ķ��� m_lTop = 1; //Ĭ����ʾǰ200������ 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() { Close_Corp(); Close_ListData(); } void CListDlg::OnListQuery() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST) ) { return ; } UpdateData(true); m_tBegin.SetDateTime(m_tBegin.GetYear(),m_tBegin.GetMonth(),m_tBegin.GetDay(),m_tBegin2.GetHour(),m_tBegin2.GetMinute(),m_tBegin2.GetSecond()); m_tEnd.SetDateTime(m_tEnd.GetYear(),m_tEnd.GetMonth(),m_tEnd.GetDay(),m_tEnd2.GetHour(),m_tEnd2.GetMinute(),m_tEnd2.GetSecond()); if ( m_tEnd < m_tBegin ) { MessageBox( _T("��ѯ����ʱ�䲻��С����ʼʱ�䣬�����!") , _T("����") , MB_ICONWARNING ); return ; } REQ_List * pList = new REQ_List;memset(pList,0,sizeof(REQ_List)); if (m_lQueryReSendID>0 && m_strQueryReSendMobile.GetLength() > 0) { pList->lReSendListSendID = m_lQueryReSendID; _tcscpy(pList->szMobile, m_strQueryReSendMobile); m_lQueryReSendID = 0; m_strQueryReSendMobile = _T(""); } else { if (m_strMobile.GetLength() > 8) _tcscpy(pList->szMobile, m_strMobile); } // m_E_Mobile.SetWindowText( _T("") ); #ifdef SMSMANAGER_KF if ( m_lQueryCorpID ) { pList->lCorpID = m_lQueryCorpID; pList->lMsgType = -1; //��ѯ���еļ�¼ m_lQueryCorpID = 0; _tcscpy(pList->szMobile, _T("") ); } else { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB,false) ) { if ( m_strMobile.GetLength()<8 ) { MessageBox( _T("���������ֻ������ѯ�嵥!") , _T("����") , MB_ICONWARNING ); GetDlgItem(IDC_LIST_MOBILE)->SetFocus(); return ; } } pList->lCorpID = -1; pList->lMsgType = 4; //��ѯ���յļ�¼ } m_tBegin.GetAsSystemTime( pList->tBegin ); m_tEnd.GetAsSystemTime( pList->tEnd ); pList->lMobileType = m_lMobileType-1; //�ֻ����� pList->bOld = m_bOld; //�Ƿ��ѯ������ pList->bJF = false; //�Ƿ����ѯ�Ʒѵ� if ( _tcslen(pList->szMobile)>8 ) { pList->lCorpID = -1; pList->lMsgType = -1; //��ѯ���еļ�¼ pList->lMobileType = -1; //�ֻ����� } #else if ( m_lQueryCorpID ) { pList->lCorpID = m_lQueryCorpID; pList->lMsgType = -1; //��ѯ���еļ�¼ m_lQueryCorpID = 0; _tcscpy(pList->szMobile, _T("")); } else { if ( m_lCorp <= 0 ) //ѡ��������ҵ { pList->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) { pList->lCorpID = pData->lCorpID; } else { return; } } pList->lMobileType = m_lMobileType-1; //�ֻ����� pList->lMsgType = m_lMsgType-1; //�������� pList->bOld = m_bOld; //�Ƿ��ѯ������ pList->bJF = m_bJF; //�Ƿ����ѯ�Ʒѵ� } m_tBegin.GetAsSystemTime( pList->tBegin ); m_tEnd.GetAsSystemTime( pList->tEnd ); #endif switch ( m_lTop ) { case 1: pList->lTop = 200; break; case 2: pList->lTop = 500; break; case 3: pList->lTop = 1000; break; case 4: pList->lTop = 2000; break; case 5: pList->lTop = 5000; break; case 0: default: pList->lTop = -1; break; } this->Close_ListData(); //�ر�ԭ���� m_wndList.ShowWindow( SW_HIDE ); //Ϊ�˼ӿ���ʾ�ٶ� m_wndList.DeleteAllItems(); //��ɾ�����м�¼ m_pMainFrame->SendFrame(SMSFUNC_LIST,(BYTE*)pList,sizeof(REQ_List)); // m_bProcess = true; // m_Process.DoModal(); // m_bProcess = false; m_wndList.ShowWindow( SW_SHOW ); //Ϊ�˼ӿ���ʾ�ٶ� m_S_S1.SetWindowText( _T("��ѯ��ҵ") ); #ifdef SMSCENTER_NX GetDlgItem(IDC_LIST_QUERY)->EnableWindow(false); #endif return ; } void CListDlg::OnDblclkListList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; On_User_See(); } 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 ; } } } void CListDlg::OnRclickListList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ShowRMenu(); } void CListDlg::ShowRMenu() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST) ) { return ; } #if defined(SMSCENTER_NX) && !defined(SMSCENTER_GDDX) //ũ�Ű汾�����ݲ�ͬȨ���ֿͷ�����������汾 if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_RESETPASSWD,false) ) //��СȨ�� { return ; } #endif CMenu menu; menu.CreatePopupMenu(); BOOL bLock = false; long lItem = this->GetCurrentSelected(); //���� if ( lItem>=0 ) { POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_ListData* pData = m_ListData.GetNext(pos); if (!pData) return; menu.AppendMenu(MF_STRING , MENU_LIST_SEE , _T(" �� �� ") ); if (m_pMainFrame->GetUserPurview(PURVIEW_LIST, false)) { menu.AppendMenu(MF_STRING, MENU_LIST_CORPLIST, _T(" ��ѯ����ҵ�嵥 ")); if (pData->lReSendCount > 0) { menu.AppendMenu(MF_STRING, MENU_LIST_RESEND, _T(" ��ѯ�˶����ط���¼ ")); } } menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_LIST_CORPOFF , _T(" ���ô���ҵ ") ); menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_LIST_ADDBACK, _T(" ���ӵ������� ") ); menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_LIST_SENDBBS, _T(" ���ͺ���������֪ͨ ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_LIST_SEE , _T(" �� �� ") ); menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_LIST_CORPLIST, _T(" ��ѯ����ҵ�嵥 ") ); menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_LIST_CORPOFF , _T(" ���ô���ҵ ") ); menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_LIST_ADDBACK, _T(" ���ӵ������� ") ); menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_LIST_SENDBBS, _T(" ���ͺ���������֪ͨ ") ); } menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_LIST_COPY , _T(" �� �� ") ); menu.AppendMenu(MF_STRING , MENU_LIST_RESORT, _T(" ������� ")); #ifndef SMSMANAGER_KF menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_LIST_EXPORT , _T(" �� �� ") ); #endif //��ʾ�˵� POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } long CListDlg::GetCurrentSelected() { POSITION pos = m_wndList.GetFirstSelectedItemPosition(); if ( pos ) { return m_wndList.GetNextSelectedItem(pos); } return -1; } void CListDlg::On_User_See() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST) ) { return ; } long lItem = m_wndList.GetFirstSelectedItem(); if ( lItem < 0 ) return ; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_ListData * pData = m_ListData.GetNext( pos ); if (!pData) return ; SMS_See sms={0}; _stprintf(sms.szCorpID, _T("%d"), pData->lCorpID); CString strType = _T("δ֪"); switch( pData->lSmsType ) { case SMSTYPE_SEND: strType= _T("���ж���"); break; case SMSTYPE_ZF: strType = _T("ת ��"); break; case SMSTYPE_ALARM: strType = _T("�ճ�����"); break; case SMSTYPE_EMAIL: strType = _T("�ʼ�֪ͨ"); break; case SMSTYPE_RECV: strType = _T("�ظ�����"); break; case SMSTYPE_SP: strType = _T("��ֵҵ��"); break; case SMSTYPE_SWT: strType = _T("����ͨ"); break; } CString strStatus = _T("δ֪"); switch (pData->lStatus) { case SMSTYPE_SEND: strStatus = _T("�ύ�ɹ�"); break; case SEND_STATUS_SUB_FILT: strStatus = _T("�����"); break; case SEND_STATUS_SUB_ERROR: case SEND_STATUS_SUB_USERNOSMS: case SEND_STATUS_SUB_CORPNOSMS: case SEND_STATUS_SUB_CORPOVRDATE: case SEND_STATUS_SUB_NUMNOSUP: case SEND_STATUS_OVERCOUNT: case SEND_STATUS_NOSY: strStatus = _T("�ύʧ��"); break; case SEND_STATUS_FILT_ERROR: strStatus = _T("���ʧ��"); break; case SEND_STATUS_SEND_OK: strStatus = _T("���ͳɹ�"); break; case SEND_STATUS_SEND_ERROR: strStatus = _T("����ʧ��"); break; case SEND_STATUS_RECV_OK: strStatus = _T("���ճɹ�"); break; case SEND_STATUS_RECV_ERROR: strStatus = _T("����ʧ��"); break; } _stprintf(sms.szStatus, _T("%d - %s - %s"), pData->lStatus, strStatus, strType); if ( _tcslen(pData->szSender)) _stprintf( sms.szSender , _T("%s-%s") , pData->szSender,pData->szSendNum); else _stprintf( sms.szSender , _T("%s") , pData->szSendNum ); TCHAR szBuf[32] = { 0 }; _tcscpy(szBuf, pData->szRecvNum); #ifdef SMSMANAGER_KF if (!m_pMainFrame->GetUserPurview(PURVIEW_TAB,false)) { szBuf[4] = '*'; szBuf[5] = '*'; szBuf[6] = '*'; } #endif if ( _tcslen(pData->szRecver)) _stprintf( sms.szRecver , _T("%s-%s") , pData->szRecver, szBuf); else _stprintf( sms.szRecver , _T("%s") , szBuf); _stprintf( sms.szSendTime , _T("%04d.%02d.%02d %02d:%02d:%02d") ,pData->tSendTime.wYear, pData->tSendTime.wMonth,pData->tSendTime.wDay,pData->tSendTime.wHour,pData->tSendTime.wMinute,pData->tSendTime.wSecond ); _stprintf( sms.szRecvTime , _T("%04d.%02d.%02d %02d:%02d:%02d") ,pData->tRecvTime.wYear,pData->tRecvTime.wMonth,pData->tRecvTime.wDay,pData->tRecvTime.wHour,pData->tRecvTime.wMinute,pData->tRecvTime.wSecond ); _tcscpy( sms.szMsg , pData->szMsg ); CString str; str.Format(_T("%s; %-32s;%-4d") , pData->szRecvStatus,pData->szMsgID,pData->lSendRet); str.TrimLeft(); str.TrimRight(); _tcscpy(sms.szAdd,str); DLG_SmsLogSee dlg(this); dlg.SetParam(sms); dlg.DoModal(); } void CListDlg::On_User_AddBack() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST) ) { return ; } long lItem = m_wndList.GetFirstSelectedItem(); if ( lItem < 0 ) return ; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_ListData * pData = m_ListData.GetNext( pos ); if (!pData) return ; CString strTemp; CString strMobile; CString strMobile2; CString strMsg; CString str; if ( pData->lSmsType == 4 ) { strMobile = pData->szSendNum; } else { strMobile = pData->szRecvNum; } strMobile2 = strMobile; #ifdef SMSMANAGER_KF if ( strMobile2.GetLength()>7 ) { strMobile2.SetAt(4,'*'); strMobile2.SetAt(5,'*'); strMobile2.SetAt(6,'*'); } pData->szSendNum[4]='*';pData->szSendNum[5]='*';pData->szSendNum[6]='*'; #endif strMsg = pData->szMsg; str.Format( _T("���Ҫ�����������ݵ�������:\r\n����:%s\r\n����:%s\r\n"),strMobile2,strMsg ); int iRet = MessageBox( str , _T("����") , MB_ICONQUESTION|MB_YESNO ); if ( iRet !=IDYES ) return ; REQ_Back_Add * pAdd = new REQ_Back_Add; memset(pAdd , 0 ,sizeof(REQ_Back_Add)); pAdd->lCorpID = pData->lCorpID; pAdd->lUserID = -1; _tcscpy(pAdd->szMobile , strMobile ); _stprintf( pAdd->szBZ , _T("��̨����:%s") , strMsg ); m_pMainFrame->SendFrame(SMSFUNC_BACK_ADD,(BYTE*)pAdd,sizeof(REQ_Back_Add)); } void CListDlg::On_User_SendBBS() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST) ) { return ; } long lItem = m_wndList.GetFirstSelectedItem(); if ( lItem < 0 ) return ; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_ListData * pData = m_ListData.GetNext( pos ); if (!pData) return ; //���û�������Ϣ ANS_BBS_SeeData See={0}; See.lBBSID = 0; See.lSCorpID = 0; //����Ա���� See.lSUserID = m_pMainFrame->m_lUserID; //����ԱID _tcscpy(See.szSCorpName,_T("����Ա")); _tcscpy(See.szSLoginName , m_pMainFrame->m_Setup.szUser ); See.lRCorpID = pData->lCorpID; See.lRUserID = pData->lUserID; DLG_BBS_Send dlg(this); dlg.SetParam( See , 3 ); if ( dlg.DoModal() == IDOK ) { long lSize = sizeof(REQ_BBS_Send)+sizeof(ANS_BBS_SeeData); BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize); REQ_BBS_Send * pModify = (REQ_BBS_Send *)pModifyData; //ͷ ANS_BBS_SeeData * pSPData = (ANS_BBS_SeeData *)(pModifyData+sizeof(REQ_BBS_Send)); *pSPData = dlg.GetParam(); pModify->lItem = lItem; pModify->lCount = 1; m_pMainFrame->SendFrame( SMSFUNC_BBS_SEND , pModifyData , lSize ); } return ; } void CListDlg::On_User_Export() { //m_wndList.SetHeadings(_T("���,40; �� ��,80;״̬,50;��ҵID,60;������,70; ���ͺ���,120; ������,70; ���պ���,120; �ύʱ��,150; ����ʱ��,150; ����ʱ��,150; ��ʱʱ��,150; ��������,1000; ��ϢID,150;")); SortItem item[32]={0}; _tcscpy(item[0].szItem,_T("�� ��")); _tcscpy(item[1].szItem,_T("״̬")); _tcscpy(item[2].szItem,_T("��ҵID")); _tcscpy(item[3].szItem,_T("������")); _tcscpy(item[4].szItem,_T("���ͺ���")); _tcscpy(item[5].szItem,_T("������")); _tcscpy(item[6].szItem,_T("���պ���")); _tcscpy(item[7].szItem, _T("��Ӫ��")); _tcscpy(item[8].szItem,_T("�ύʱ��")); _tcscpy(item[9].szItem,_T("����ʱ��")); _tcscpy(item[10].szItem,_T("����ʱ��")); _tcscpy(item[11].szItem,_T("��ʱʱ��")); _tcscpy(item[12].szItem,_T("��������")); _tcscpy(item[13].szItem,_T("״̬����")); DLG_HZB_Export dlg(this); dlg.SetParam( &m_wndList ); dlg.SetListItem(item,14,-2); dlg.DoModal(); } void CListDlg::On_User_Copy() { long lItem = m_wndList.GetFirstSelectedItem(); if ( lItem < 0 ) return ; HGLOBAL hglbCopy; LPTSTR lptstrCopy; if (!OpenClipboard()) return ; EmptyClipboard(); CString str,strTemp; long lCol = m_wndList.GetColumnCount(); long lCount = m_wndList.GetSelectedItemCount(); for ( int i=0 ; i<lCol ; i++ ) { LVCOLUMN lmn={0}; TCHAR szBuf[256]={0}; lmn.mask = LVCF_TEXT; lmn.pszText = szBuf; lmn.cchTextMax = sizeof(szBuf); m_wndList.GetColumn(i , &lmn); str += CString(lmn.pszText ); str += CString(_T("\t")); } str += _T("\r\n"); lItem = -1; for ( i=0 ; i<lCount ; i++ ) { lItem = m_wndList.GetFirstSelectedItem(lItem); if ( lItem >=0 ) { CString str1; for ( int j=0 ; j<lCol; j++ ) { str1=m_wndList.GetItemText(lItem,j); #ifdef SMSMANAGER_KF if ( j == 12 ) str1 = _T(""); #endif str1.TrimLeft();str1.TrimRight();str1.Replace( _T("\t") , _T("") );str1.Replace( _T("\r") , _T("") );str1.Replace( _T("\n") , _T("") ); strTemp.Format(_T("%s\t"),str1); str += strTemp; } str += _T("\r\n"); } } hglbCopy = GlobalAlloc(GMEM_MOVEABLE, (str.GetLength()+1)*sizeof(TCHAR)); if (hglbCopy == NULL) { CloseClipboard(); return ; } lptstrCopy = (LPTSTR)GlobalLock(hglbCopy); _tcscpy(lptstrCopy,str); GlobalUnlock(hglbCopy); #ifdef _UNICODE ::SetClipboardData(CF_UNICODETEXT, hglbCopy); #else ::SetClipboardData(CF_TEXT, hglbCopy); #endif CloseClipboard(); return ; } void CListDlg::Close_Corp() { //��������е����� while (!m_Corp.IsEmpty()) { ANS_Corp_NameData * pData = m_Corp.GetHead(); m_Corp.RemoveHead(); delete pData; } } void CListDlg::Close_ListData() { //��������е����� while (!m_ListData.IsEmpty()) { ANS_ListData * pData = m_ListData.GetHead(); m_ListData.RemoveHead(); delete pData; } } void CListDlg::On_User_CorpList() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST) ) { return ; } long lItem = m_wndList.GetFirstSelectedItem(); if ( lItem < 0 ) return ; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_ListData * pData = m_ListData.GetNext( pos ); if (!pData) return ; m_lQueryCorpID = pData->lCorpID; OnListQuery(); } void CListDlg::On_User_ReSend() { if (!m_pMainFrame->GetUserPurview(PURVIEW_LIST)) { return; } long lItem = m_wndList.GetFirstSelectedItem(); if (lItem < 0) return; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_ListData* pData = m_ListData.GetNext(pos); if (!pData) return; m_lQueryReSendID = pData->lSendID; m_strQueryReSendMobile = pData->szRecvNum; OnListQuery(); } void CListDlg::On_User_CorpOFF() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST) ) { return ; } long lItem = m_wndList.GetFirstSelectedItem(); if ( lItem < 0 ) return ; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_ListData * pData = m_ListData.GetNext( pos ); if (!pData) return ; // CString str; // str.Format( _T("�Ƿ�Ҫ���ô���ҵID:%d��\r\n���ú����ҵ�����ܵ�¼!"),pData->lCorpID ); // if ( MessageBox(str , _T("����") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2) != IDYES ) // return ; ANS_Corp_SeeData data={0}; data.lCorpID = pData->lCorpID; DLG_Corp_Oper_Open dlg(this); dlg.SetParam(&data,false,this->m_pMainFrame->m_Setup.szUser); if ( dlg.DoModal() == IDOK ) { REQ_CorpOFF * pCorp = new REQ_CorpOFF;memset(pCorp,0,sizeof(REQ_CorpOFF)); pCorp->lCorpID = pData->lCorpID; pCorp->lStatus = 0; //0Ϊ���ã�1Ϊ���� _tcscpy(pCorp->szBZ , dlg.m_strBZ ); _tcscpy(pCorp->szOper , dlg.m_strOperName ); m_pMainFrame->SendFrame(SMSFUNC_CORPOFF,(BYTE*)pCorp,sizeof(REQ_CorpOFF)); } } void CListDlg::On_User_Resort() { m_wndList.ShowWindow(SW_HIDE); long lCount = m_wndList.GetItemCount(); CString strNo; for (int i = 0; i < lCount; i++) { strNo.Format(_T("%d"), i + 1); m_wndList.SetItemText(i,0,strNo); } m_wndList.ShowWindow(SW_SHOW); }