// C_TC.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "C_TDBill.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CC_TDBill dialog #include "MainFrm.h" #include "ProcessSocket.h" CC_TDBill::CC_TDBill(CWnd* pParent /*=NULL*/) : CDialog(CC_TDBill::IDD, pParent) { //{{AFX_DATA_INIT(CC_TDBill) m_tBegin = COleDateTime::GetCurrentTime(); m_tEnd = COleDateTime::GetCurrentTime(); m_bMS = FALSE; //}}AFX_DATA_INIT m_bInit = false; m_bRefresh = false; } void CC_TDBill::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CC_TDBill) DDX_Control(pDX, IDC_C_TDBILL_LIST, m_wndList); DDX_Control(pDX, IDC_C_TDBILL_S1, m_S_S1); DDX_DateTimeCtrl(pDX, IDC_C_TDBILL_TBEGIN, m_tBegin); DDX_DateTimeCtrl(pDX, IDC_C_TDBILL_TEND, m_tEnd); DDX_Check(pDX, IDC_C_TDBILL_MS, m_bMS); //}}AFX_DATA_MAP DDX_Check(pDX, IDC_C_TDBILL_OLD, m_bOld); DDX_Control(pDX, IDC_C_TDBILL_TD, m_L_TD); } BEGIN_MESSAGE_MAP(CC_TDBill, CDialog) //{{AFX_MSG_MAP(CC_TDBill) ON_WM_SIZE() ON_BN_CLICKED(IDC_C_TDBILL_QUERY, OnCTcQuery) ON_NOTIFY(NM_RCLICK, IDC_C_TDBILL_LIST, OnRclickCTcList) //}}AFX_MSG_MAP ON_COMMAND(MENU_TC_COPY , On_User_Copy ) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CC_TDBill message handlers void CC_TDBill::Close() { Close_TD(); } void CC_TDBill::Close_TD() { //清除队列中的内容 while (!m_TD.IsEmpty()) { ANS_TD2NameData * pData = m_TD.GetHead(); m_TD.RemoveHead(); delete pData; } } BOOL CC_TDBill::RefreshInfo() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) ) { return false; } if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST) ) { return false; } if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE) ) { return false; } REQ_TD2Name * pGet = new REQ_TD2Name; memset(pGet , 0 , sizeof(REQ_TD2Name)); m_pMainFrame->SendFrame(SMSFUNC_TD2NAME,(BYTE*)pGet,sizeof(REQ_TD2Name)); //取代理信息 return true; } BOOL CC_TDBill::ReHide() { ShowWindow( SW_HIDE ); return true; } BOOL CC_TDBill::ReShow(BOOL bRefresh) { ShowWindow( SW_SHOW ); if ( bRefresh || !m_bRefresh ) { RefreshInfo(); } return true; } BOOL CC_TDBill::ProcessSocket(Socket_Head_Add *pHead,BYTE* pFrame) { CString str; //取通道名 if (pHead->lFuncType == SMSFUNC_TD2NAME) { m_bRefresh = true; //已经刷新过 ANS_TD2Name * pGet = (ANS_TD2Name *)pFrame; ANS_TD2NameData * pData = (ANS_TD2NameData *)(pFrame+sizeof(ANS_TD2Name)); m_L_TD.ResetContent(); //删除原已有的企业 long lItem = m_L_TD.AddString( _T("所有通道") ); m_L_TD.SetItemData( lItem , (DWORD_PTR)-1); this->Close_TD(); //关闭原队列 for ( int i=0;ilCount;i++ ) { ANS_TD2NameData * pNewData = new ANS_TD2NameData; *pNewData = *pData; POSITION pos = m_TD.AddTail(pNewData); str.Format( _T("%s-%s"),pData->szName,pData->szAccessPort); lItem = m_L_TD.AddString( str ); m_L_TD.SetItemData( lItem , (DWORD_PTR)pos); pData ++; } m_L_TD.SetCurSel(0); return true; } if (pHead->lFuncType == SMSFUNC_TD2BILL) { ANS_TD2Bill * pTab = (ANS_TD2Bill *)pFrame; ANS_TD2BillData * pData = (ANS_TD2BillData *)(pFrame+sizeof(ANS_TD2Bill)); //查询汇总内容 long lSmsCount=0; long lSmsCountIndex=0; long lSubmitCount=0; long lSubmitCountIndex=0; long lSendCount=0; long lSendCountIndex=0; long lReportSucessCount=0; long lReportSucessCountIndex=0; long lReportFailCount=0; long lReportFailCountIndex=0; long lSubmitPerIndex=0; long lFailPerIndex=0; m_wndList.ShowWindow(SW_HIDE); //加快显示速度 m_wndList.DeleteAllItems(); m_wndList.DeleteAllColumns(); if ( pTab->bMS ) m_wndList.SetHeadings(_T("序号,50; 日期,90;能力,50; 通道名称,160; 通道号码,150;网关账号,120;计费量,100;提交量,100;发送量,100;回执成功,100;回执失败,100;提交率,100;失败率,100;")); else m_wndList.SetHeadings(_T("序号,50;能力,50; 通道名称,160; 通道号码,150;网关账号,120;计费量,100;提交量,100;发送量,100;回执成功,100;回执失败,100;提交率,100;失败率,100;")); TCHAR Buf[32]={0}; CString str; long lCount=0; for ( int i=0;ilCount;i++) { m_wndList.InsertItem( lCount , _itot(lCount+1,Buf,10),0); //当天汇总量 long lTemp=1; if ( pTab->bMS ) { str.Format( _T("%04d.%02d.%02d") , pData->tJSTime.wYear,pData->tJSTime.wMonth,pData->tJSTime.wDay ); m_wndList.SetItemText(lCount,lTemp++,str); } if ( pData->lAbility==0 ) str = _T("短信"); if ( pData->lAbility==1 ) str = _T("彩信"); m_wndList.SetItemText(lCount,lTemp++,str); m_wndList.SetItemText(lCount,lTemp++,pData->szTDName); m_wndList.SetItemText(lCount,lTemp++,pData->szAccessPort); m_wndList.SetItemText(lCount, lTemp++, pData->szLoginName); str.Format( _T("%d") , pData->lSmsCount ); lSmsCount += pData->lSmsCount; lSmsCountIndex = lTemp; m_wndList.SetItemText(lCount,lTemp++,str); str.Format( _T("%d") , pData->lSubmit ); lSubmitCount += pData->lSubmit; lSubmitCountIndex = lTemp; m_wndList.SetItemText(lCount,lTemp++,str); str.Format( _T("%d") , pData->lSend ); lSendCount += pData->lSend; lSendCountIndex = lTemp; m_wndList.SetItemText(lCount,lTemp++,str); str.Format( _T("%d") , pData->lReportSucess ); lReportSucessCount += pData->lReportSucess; lReportSucessCountIndex = lTemp; m_wndList.SetItemText(lCount,lTemp++,str); str.Format( _T("%d") , pData->lReportFail ); lReportFailCount += pData->lReportFail; lReportFailCountIndex = lTemp; m_wndList.SetItemText(lCount,lTemp++,str); str=_T("0.0%"); if ( pData->lSubmit >0 && pData->lSend>0 ) { str.Format( _T("%.1f%%") , ((float)pData->lSend/(float)pData->lSubmit)*100.0f); } lSubmitPerIndex = lTemp; m_wndList.SetItemText(lCount,lTemp++,str); str=_T("0.0%"); if ( pData->lReportFail >0 && pData->lSend>0 ) { str.Format( _T("%.1f%%") , ((float)pData->lReportFail/(float)pData->lSend)*100.0f); } lFailPerIndex = lTemp; m_wndList.SetItemText(lCount,lTemp++,str); lCount++; pData++; } m_wndList.InsertItem( lCount ,_T(""),0); //合计 lCount ++; m_wndList.InsertItem( lCount ,_T("合计"),0); //合计 if ( lCount>0 ) { str.Format( _T("%d") , lSmsCount ); m_wndList.SetItemText(lCount,lSmsCountIndex,str); str.Format( _T("%d") , lSubmitCount ); m_wndList.SetItemText(lCount,lSubmitCountIndex,str); str.Format( _T("%d") , lSendCount ); m_wndList.SetItemText(lCount,lSendCountIndex,str); str.Format( _T("%d") , lReportSucessCount ); m_wndList.SetItemText(lCount,lReportSucessCountIndex,str); str.Format( _T("%d") , lReportFailCount ); m_wndList.SetItemText(lCount,lReportFailCountIndex,str); str=_T("0.0%"); if ( lSubmitCount>0 && lSendCount>0 ) { str.Format( _T("%.1f%%") , ((float)lSendCount/(float)lSubmitCount)*100.0f); } m_wndList.SetItemText(lCount,lSubmitPerIndex,str); str=_T("0.0%"); if ( lReportFailCount>0 && lSendCount>0 ) { str.Format( _T("%.1f%%") , ((float)lReportFailCount/(float)lSendCount)*100.0f); } m_wndList.SetItemText(lCount,lFailPerIndex,str); } m_wndList.ShowWindow(SW_SHOW); //加快显示速度 return true; } return false; } BOOL CC_TDBill::ProcessSocket(Socket_Head *pHead) { CString strTemp; if ( pHead->lFuncType == SMSFUNC_YYSTAB ) { ANS_YYSTab * pTab = (ANS_YYSTab *)pHead->pFrame; ANS_YYSTabData * pData = (ANS_YYSTabData *)(pHead->pFrame+sizeof(ANS_YYSTab)); if ( pTab->bMS ) //查询明细内容 { m_wndList.ShowWindow(SW_HIDE); //加快显示速度 m_wndList.DeleteAllItems(); m_wndList.DeleteAllColumns(); m_wndList.SetHeadings(_T("合计,80; 日 期,90;106573400116,80;021299070181,80;1065710055,80;1065710012,80;55557997,80;106575587619,80;106573020143,80;106573020459,80;106571005000055,80;xxxxxx,80;1905988,80;106550201188,80;96995399,80;799950288,80;1065505706588,80;106551688964,80;xxxxxx,80;xxxxxx,80;11870201003,80;996995399,80;9895600248,80;021299070181,80;")); TCHAR Buf[32]; CString strSmsNum; long lCount=0; long lAllCount[36]={0}; COleDateTime t; long lDayCount=0; //第天发送量汇总 long lDayAllCount=0; //所有短信量汇总 for ( int i=0;ilCount;i++) { if ( t != COleDateTime(pData->tJSTime) ) { lCount = m_wndList.GetItemCount(); //m_wndList.InsertItem( lCount , _itot(lCount+1,Buf,10),0); //序号 m_wndList.InsertItem( lCount , _itot(0,Buf,10),0); //当天汇总量 strSmsNum.Format( _T("%04d.%02d.%02d") , pData->tJSTime.wYear,pData->tJSTime.wMonth,pData->tJSTime.wDay ); m_wndList.SetItemText(lCount,1,strSmsNum); t = COleDateTime(pData->tJSTime); if ( lCount>0 ) { m_wndList.SetItemText(lCount-1,0,_itot(lDayCount,Buf,10)); } lDayCount=0;; } lDayCount += pData->lSmsCount; lDayAllCount += pData->lSmsCount; switch( pData->lRecvNumType ) { case 0: #ifdef SMSCENTER_ADC switch( pData->lSendFCS ) { case 0: strSmsNum=_T("1065710050(北京移动ADC,0)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[2] += pData->lSmsCount; m_wndList.SetItemText(lCount,2,strSmsNum ); break; } #endif #ifdef SMSCENTER_TWO switch( pData->lSendFCS ) { case 203: strSmsNum=_T("106571005000069(北京移动ADC,203)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[2] += pData->lSmsCount; m_wndList.SetItemText(lCount,2,strSmsNum ); break; case 112: strSmsNum=_T("10657100120303(北京移动,112)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[3] += pData->lSmsCount; m_wndList.SetItemText(lCount,3,strSmsNum ); break; } #endif #ifdef SMSCENTER_ONE switch( pData->lSendFCS ) { case 0: //strSmsNum=_T("106573400116(广州移动,0)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[2] += pData->lSmsCount; m_wndList.SetItemText(lCount,2,strSmsNum ); break; case 112: //strSmsNum=_T("021299070181(上海电信,112)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[3] += pData->lSmsCount; m_wndList.SetItemText(lCount,3,strSmsNum ); break; case 2033: //strSmsNum=_T("1065710050(北京ADC,200)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[4] += pData->lSmsCount; m_wndList.SetItemText(lCount,4,strSmsNum ); break; case 204: //strSmsNum=_T("1065710012(北京移动,204)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[5] += pData->lSmsCount; m_wndList.SetItemText(lCount,5,strSmsNum ); break; case 205: //strSmsNum=_T("55557997(信息帮克,205)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[6] += pData->lSmsCount; m_wndList.SetItemText(lCount,6,strSmsNum ); break; case 206: //strSmsNum=_T("106575587619(广州移动全网,206)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[7] += pData->lSmsCount; m_wndList.SetItemText(lCount,7,strSmsNum ); break; case 207: //strSmsNum=_T("106571005000055(北京ADC,207)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[10] += pData->lSmsCount; m_wndList.SetItemText(lCount,10,strSmsNum ); break; case 1: //strSmsNum=_T("106573020143(广州移动省网,1)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[8] += pData->lSmsCount; m_wndList.SetItemText(lCount,8,strSmsNum ); break; case 2: //strSmsNum=_T("106573020459(广州移动省网,1)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[9] += pData->lSmsCount; m_wndList.SetItemText(lCount,9,strSmsNum ); break; } #endif break; case 1: #ifdef SMSCENTER_ADC switch( pData->lSendFCS ) { case 10: strSmsNum=_T("106550201180(广州联通,10)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[5] += pData->lSmsCount; m_wndList.SetItemText(lCount,5,strSmsNum ); break; case 12: strSmsNum=_T("10655057067775(金华联通,12)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[6] += pData->lSmsCount; m_wndList.SetItemText(lCount,6,strSmsNum ); break; } #endif #ifdef SMSCENTER_TWO switch( pData->lSendFCS ) { case 10: strSmsNum=_T("106550201181(广东联通,10)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[6] += pData->lSmsCount; m_wndList.SetItemText(lCount,6,strSmsNum ); break; case 112: strSmsNum=_T("10602566704198(北京易通,112)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[8] += pData->lSmsCount; m_wndList.SetItemText(lCount,8,strSmsNum ); break; } #endif #ifdef SMSCENTER_ONE switch( pData->lSendFCS ) { case 0: //strSmsNum=_T("1905988(广东联通省网,0)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[12] += pData->lSmsCount; m_wndList.SetItemText(lCount,12,strSmsNum ); break; case 200: //strSmsNum=_T("106550201188(广东联通全网,200)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[13] += pData->lSmsCount; m_wndList.SetItemText(lCount,13,strSmsNum ); break; case 210: //strSmsNum=_T("96995399(Telcom,210)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[14] += pData->lSmsCount; m_wndList.SetItemText(lCount,14,strSmsNum ); break; case 203: //strSmsNum=_T("799950288(北京易通,203)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[15] += pData->lSmsCount; m_wndList.SetItemText(lCount,15,strSmsNum ); break; case 224: //strSmsNum=_T("1065505706588(浙江联通,224)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[16] += pData->lSmsCount; m_wndList.SetItemText(lCount,16,strSmsNum ); break; case 225: //strSmsNum=_T("106551688964(北京联通,225)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[16] += pData->lSmsCount; m_wndList.SetItemText(lCount,17,strSmsNum ); break; } #endif break; case 2: #ifdef SMSCENTER_ADC switch( pData->lSendFCS ) { case 20: strSmsNum=_T("021299070181(上海电信,20)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[9] += pData->lSmsCount; m_wndList.SetItemText(lCount,9,strSmsNum ); break; } #endif #ifdef SMSCENTER_TWO switch( pData->lSendFCS ) { case 112: strSmsNum=_T("02566704198(北京易通,112)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[13] += pData->lSmsCount; m_wndList.SetItemText(lCount,13,strSmsNum ); break; } #endif #ifdef SMSCENTER_ONE switch( pData->lSendFCS ) { case 0: //strSmsNum=_T("11870201003(广州电信,0)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[20] += pData->lSmsCount; m_wndList.SetItemText(lCount,20,strSmsNum ); break; case 332: //strSmsNum=_T("996995399(telcom,202)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[21] += pData->lSmsCount; m_wndList.SetItemText(lCount,21,strSmsNum ); break; case 300: //strSmsNum=_T("9895600248(南京香格里拉,300)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[22] += pData->lSmsCount; m_wndList.SetItemText(lCount,22,strSmsNum ); break; case 334: strSmsNum=_T("021299070181(上海电信,334)"); strSmsNum.Format(_T("%9d"),pData->lSmsCount); lAllCount[23] += pData->lSmsCount; m_wndList.SetItemText(lCount,23,strSmsNum ); break; } #endif break; } pData++; } lCount = m_wndList.GetItemCount(); m_wndList.SetItemText( lCount-1 ,0,_itot(lDayCount,Buf,10)); //合计 m_wndList.InsertItem( lCount ,_itot(lDayAllCount,Buf,10) ,0); //合计 m_wndList.SetItemText(lCount,1, _T("合 计")); //合计 for ( i=2 ; i<24 ; i++ ) { strSmsNum.Format( _T("%9d") , lAllCount[i] ); m_wndList.SetItemText( lCount,i, strSmsNum); //合计 } m_wndList.ShowWindow(SW_SHOW); //加快显示速度 } else { //查询汇总内容 m_wndList.ShowWindow(SW_HIDE); //加快显示速度 m_wndList.DeleteAllItems(); m_wndList.DeleteAllColumns(); m_wndList.SetHeadings(_T("序号,50; 运营商类型,100;特服号,200;短信数量,100;")); TCHAR Buf[32]; CString strYYS; CString strSmsNum; long lCount; long lSmsCount = 0; for ( int i=0;ilCount;i++) { lCount = m_wndList.GetItemCount(); m_wndList.InsertItem( lCount , _itot(i+1,Buf,10),0); //序号 strYYS = _T("未知"); strSmsNum.Format(_T("未知(%d,%d)"),pData->lRecvNumType,pData->lSendFCS); switch( pData->lRecvNumType ) { case 0: strYYS = _T("中国移动"); #ifdef SMSCENTER_ADC switch( pData->lSendFCS ) { case 0: strSmsNum=_T("1065710050(北京移动ADC,0)"); break; } #endif #ifdef SMSCENTER_TWO switch( pData->lSendFCS ) { case 203: strSmsNum=_T("106571005000069(北京移动,203)"); break; case 112: strSmsNum=_T("10657100120(北京移动,112)"); break; case 113: strSmsNum=_T("106920009833(信息帮客,113)"); break; } #endif #ifdef SMSCENTER_ONE switch( pData->lSendFCS ) { case 0: strSmsNum=_T("106573400116(广州移动,0)"); break; case 112: strSmsNum=_T("021299070181(上海电信,112)"); break; case 2033: strSmsNum=_T("076088888888(中山电信,2033)"); break; case 200: strSmsNum=_T("1065710050(北京ADC,200)"); break; case 201: strSmsNum=_T("075589666055(深圳嘉赢,201)"); break; case 203: strSmsNum=_T("106920020(北京移动,203)"); break; case 204: strSmsNum=_T("1065710012(北京移动,204)"); break; case 205: strSmsNum=_T("55557997(信息帮克,205)"); break; case 206: strSmsNum=_T("106575587619(广州移动全网,206)"); break; case 207: strSmsNum=_T("106571005000055(北京ADC,207)"); break; case 2206: strSmsNum=_T("0532(青岛网通,2206)"); break; case 2209: strSmsNum=_T("10657(点动传媒,2209)"); break; case 22084: strSmsNum=_T("025(南京电信,22084)"); break; case 1: strSmsNum=_T("106573020143(广州移动省网,1)"); break; case 2: strSmsNum=_T("106573020459(广州移动省网,2)"); break; case 3: strSmsNum=_T("106573010146(东莞SJTX,3)"); break; case 118: strSmsNum=_T("62012193(北京移动,118)"); break; case 119: strSmsNum=_T("62012195(北京移动,119)"); break; case 40: strSmsNum=_T("106575550171221(唐总MAS,40)"); break; case 122: strSmsNum=_T("10657532115738(福建MAS,122)"); break; case 2211: strSmsNum=_T("106575324006704(福建移动,2211)"); break; } #endif break; case 1: strYYS = _T("中国联通"); #ifdef SMSCENTER_ADC switch( pData->lSendFCS ) { case 10: strSmsNum=_T("106550201180(广州联通,10)"); break; case 12: strSmsNum=_T("10655057067775(金华联通,12)"); break; } #endif #ifdef SMSCENTER_TWO switch( pData->lSendFCS ) { case 0: strSmsNum=_T("106550201181(广东联通,10)"); break; case 112: strSmsNum=_T("10602566704198(北京易通,112)"); break; case 113: strSmsNum=_T("799915(信息帮客,113)"); break; } #endif #ifdef SMSCENTER_ONE switch( pData->lSendFCS ) { case 0: strSmsNum=_T("1905988(广东联通省网,0)"); break; case 200: strSmsNum=_T("106550201188(广东联通全网,200)"); break; case 210: strSmsNum=_T("96995399(Telcom,210)"); break; case 203: strSmsNum=_T("799950288(北京易通,203)"); break; case 224: strSmsNum=_T("1065505706588(浙江联通,224)"); break; case 225: strSmsNum=_T("106551688964(北京联通,225)"); break; case 212: strSmsNum=_T("106550590508(北京联通,212)"); break; } #endif break; case 2: strYYS = _T("小灵通"); #ifdef SMSCENTER_ADC switch( pData->lSendFCS ) { case 20: strSmsNum=_T("021299070181(上海电信,20)"); break; } #endif #ifdef SMSCENTER_TWO switch( pData->lSendFCS ) { case 112: strSmsNum=_T("02566704198(北京易通,112)"); break; } #endif #ifdef SMSCENTER_ONE switch( pData->lSendFCS ) { case 0: strSmsNum=_T("11870201003(广州电信,0)"); break; case 332: strSmsNum=_T("053266633318(青岛网通,332)"); break; case 300: strSmsNum=_T("9895600988(南京香格里拉,300)"); break; case 334: strSmsNum=_T("021299070181(上海电信,334)"); break; } #endif break; case 3: strYYS = _T("电信"); #ifdef SMSCENTER_ADC switch( pData->lSendFCS ) { case 300: strSmsNum=_T("1065902001668(广东电信,30)"); break; } #endif #ifdef SMSCENTER_TWO switch( pData->lSendFCS ) { case 300: strSmsNum=_T("1065902001668(广东电信,30)"); break; } #endif #ifdef SMSCENTER_ONE switch( pData->lSendFCS ) { case 300: strSmsNum=_T("1065902001668(广东电信,300)"); break; case 444: strSmsNum=_T("10659020200011(清远电信,444)"); break; } #endif break; } m_wndList.SetItemText( lCount ,1 , strYYS ); //类型 m_wndList.SetItemText( lCount ,2 , strSmsNum); //数量 m_wndList.SetItemText( lCount ,3 , _itot(pData->lSmsCount,Buf,10)); //数量 lSmsCount += pData->lSmsCount; pData++; } lCount = m_wndList.GetItemCount(); m_wndList.InsertItem( lCount , _T(""),0); //合计 m_wndList.SetItemText( lCount,1, _T("合 计")); //合计 m_wndList.SetItemText( lCount,3, _itot(lSmsCount,Buf,10)); //合计 m_wndList.ShowWindow(SW_SHOW); //加快显示速度 } return true; } return false; } BOOL CC_TDBill::OnInitDialog() { CDialog::OnInitDialog(); //取得共用参数 //CMainFrame * pFrame = static_cast ((CMainFrame *)AfxGetMainWnd()); this->GetParent()->GetParentFrame(); m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame(); m_pSocket = &m_pMainFrame->m_Socket; //初始化List m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5); // m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_TAB) ); m_wndList.SubClassWindow2(); m_wndList.SetHeadings(_T("序号,50;能力,60; 通道名称,150; 通道号码,150;网关账号,120;计费量,100;提交量,100;发送量,100;回执成功,100;回执失败,100;提交率,100;失败率,100;")); //m_wndList.SetHeadings(_T("序号,50; 运营商类型,100;特服号,200;短信数量,100;")); 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 );//结束 */ COleDateTime t = COleDateTime::GetCurrentTime(); /* #ifdef SMSCENTER_NX COleDateTimeSpan tSpan2(1,0,0,0); #else COleDateTimeSpan tSpan2(3,0,0,0); #endif t = t-tSpan2; */ m_tBegin.SetDate( t.GetYear(),t.GetMonth(),1 ); //起始 m_tEnd.SetDate( t.GetYear(),t.GetMonth(),t.GetDay() );//结束 UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CC_TDBill::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 CC_TDBill::OnCTcQuery() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_LIST) ) { return ; } if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE) ) { return ; } UpdateData(true); if ( m_tBegin>COleDateTime::GetCurrentTime() ) { MessageBox( _T("查询起始日期不能大于当前日期,请改正!") , _T("错误") , MB_ICONWARNING ); return ; } if ( m_tEnd < m_tBegin ) { MessageBox( _T("查询结束日期不能小于起始日期,请改正!") , _T("错误") , MB_ICONWARNING ); return ; } if ( m_bOld ) { COleDateTime tNow = COleDateTime::GetCurrentTime(); COleDateTimeSpan tSpan2(3,0,0,0); if ( tNow - m_tEnd < tSpan2 ) { MessageBox( _T("因为状态报告回复时间有延迟,帐单只能查询到前三天!") ,_T("提示"), MB_ICONWARNING); return ; } REQ_YYSTab * pTab = new REQ_YYSTab;memset(pTab,0,sizeof(REQ_YYSTab)); m_tBegin.GetAsSystemTime( pTab->tBegin ); m_tEnd.GetAsSystemTime( pTab->tEnd ); pTab->bMS = m_bMS; m_pMainFrame->SendFrame(SMSFUNC_YYSTAB,(BYTE*)pTab,sizeof(REQ_YYSTab)); } else { REQ_TD2Bill * pTab = new REQ_TD2Bill;memset(pTab,0,sizeof(REQ_TD2Bill)); m_tBegin.GetAsSystemTime( pTab->tBegin ); m_tEnd.GetAsSystemTime( pTab->tEnd ); pTab->bMS = m_bMS; pTab->lTD2ID = -1; long lTDID=m_L_TD.GetItemData(m_L_TD.GetCurSel()); if ( lTDID >=0 ) { POSITION pos = (POSITION)lTDID; ANS_TD2NameData * pData = m_TD.GetNext( pos ); if (pData) { pTab->lTD2ID = pData->lTDID; } } m_pMainFrame->SendFrame(SMSFUNC_TD2BILL,(BYTE*)pTab,sizeof(REQ_TD2Bill)); } return ; } void CC_TDBill::OnRclickCTcList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ShowRMenu(); } void CC_TDBill::ShowRMenu() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE,false) ) { return; } CMenu menu; menu.CreatePopupMenu(); menu.AppendMenu(MF_STRING , MENU_TC_COPY, _T(" 复制数据 ") ); //显示菜单 POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } void CC_TDBill::On_User_Copy() { m_wndList.CopyToClipboard(); }