// DLG_C_MonPay_See.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_C_MonPay_See.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_C_MonPay_See dialog DLG_C_MonPay_See::DLG_C_MonPay_See(CWnd* pParent /*=NULL*/) : CDialog(DLG_C_MonPay_See::IDD, pParent) { //{{AFX_DATA_INIT(DLG_C_MonPay_See) m_strMsg = _T(""); m_strName = _T(""); m_strPayTime = _T(""); m_strPrice = _T(""); m_strPriceOne = _T(""); m_strSmsCount = _T(""); //}}AFX_DATA_INIT memset(&m_Pay,0,sizeof(m_Pay)); } void DLG_C_MonPay_See::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_C_MonPay_See) DDX_Text(pDX, IDD_C_MONPAY_SEE_MSG, m_strMsg); DDX_Text(pDX, IDD_C_MONPAY_SEE_NAME, m_strName); DDX_Text(pDX, IDD_C_MONPAY_SEE_PAYTIME, m_strPayTime); DDX_Text(pDX, IDD_C_MONPAY_SEE_PRICE, m_strPrice); DDX_Text(pDX, IDD_C_MONPAY_SEE_PRICEONE, m_strPriceOne); DDX_Text(pDX, IDD_C_MONPAY_SEE_SMSCOUNT, m_strSmsCount); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_C_MonPay_See, CDialog) //{{AFX_MSG_MAP(DLG_C_MonPay_See) ON_BN_CLICKED(IDD_C_MONPAY_SEE_COPY, OnCMonpaySeeCopy) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_C_MonPay_See message handlers void DLG_C_MonPay_See::SetParam(ANS_Corp_MonPayData pay) { m_Pay = pay; } BOOL DLG_C_MonPay_See::OnInitDialog() { CDialog::OnInitDialog(); m_strName.Format( _T("%d-%s") , m_Pay.lCorpID , m_Pay.szCorpName ); m_strPayTime.Format( _T("%04d.%02d") , m_Pay.tPayTime.wYear , m_Pay.tPayTime.wMonth ); m_strPrice.Format( _T("%.2f") , m_Pay.fPrice ); m_strPriceOne.Format( _T("%.4f") , m_Pay.fPriceOne ); m_strSmsCount.Format( _T("%d") , m_Pay.lSMSCount ); //以下生成帐单 CString strTemp,strTemp2; CString strHead; CString strJCB; strHead += _T(" 短信易用户帐单\r\n\r\n\r\n"); strTemp.Format( _T(" 企业ID:%d\r\n") , m_Pay.lCorpID ); strHead += strTemp; strTemp.Format( _T(" 企业名称:%s\r\n") , m_Pay.szCorpName ); strHead += strTemp; strTemp.Format( _T(" 帐单月份:%04d.%02d\r\n"),m_Pay.tPayTime.wYear,m_Pay.tPayTime.wMonth); strHead += strTemp; strTemp.Format( _T(" 短信单价:%.4f\r\n"),m_Pay.fPriceOne); strHead += strTemp; strTemp.Format( _T(" 短信总量:%04d\r\n"),m_Pay.lSMSCount); strHead += strTemp; strTemp.Format( _T(" 帐单金额:%.2f\r\n"),m_Pay.fPrice); strHead += strTemp; //查询发送明细 long lSmsCount = 0; long lSmsSFCount = 0; CString strTab=_T("\r\n\r\n 类 型 短信数量 计费数量\r\n"); strTab+=_T(" =========================================\r\n"); for ( int i=0;i<9;i++) { strTemp=_T("未知"); switch( i ) { case SMSTYPE_SEND: strTemp=_T("发 送"); break; case SMSTYPE_ZF: strTemp=_T("转 发"); break; case SMSTYPE_ALARM: strTemp=_T("日程提醒"); break; case SMSTYPE_EMAIL: strTemp=_T("短信邮差"); break; case SMSTYPE_RECV: strTemp=_T("接 收"); break; case SMSTYPE_SP: strTemp=_T("实用短信"); break; case SMSTYPE_SWT: strTemp=_T("短信商务通"); break; default: continue; break; } strTemp2.Format( _T("%15s") , strTemp ); strTemp= strTemp2; strTemp2.Format( _T(" %11d") , m_Pay.KF[i].lSend ); strTemp+= strTemp2; strTemp2.Format( _T(" %11d") , m_Pay.KF[i].lKF ); strTemp+= strTemp2; strTemp+=_T("\r\n"); strTab += strTemp; lSmsCount += m_Pay.KF[i].lSend; lSmsSFCount += m_Pay.KF[i].lKF; } strTab+=_T(" -----------------------------------------\r\n"); strTemp2.Format( _T("%15s") , _T("共") ); strTemp= strTemp2; strTemp2.Format( _T(" %11d") , lSmsCount ); strTemp+= strTemp2; strTemp2.Format( _T(" %11d") , lSmsSFCount ); strTemp+= strTemp2; strTemp+=_T("\r\n\r\n"); strTab += strTemp; strHead += strTab; /* strTemp.Format( _T("%13s") , _T("上期结存:")); strJCB+= strTemp; strTemp.Format( _T("%8d" , pBill->jcb.lOldCount); strJCB+= strTemp; strTemp.Format( _T("%17s") , _T("本期存入:")); strJCB+= strTemp; strTemp.Format( _T("%8d") , pBill->jcb.lAddCount); strJCB+= strTemp; strTemp.Format( _T("\r\n%13s") , _T("本期赠送:")); strJCB+= strTemp; strTemp.Format( _T("%8d" , pBill->jcb.lPresentCount); strJCB+= strTemp; strTemp.Format( _T("%17s") , _T("本期结存:")); strJCB+= strTemp; strTemp.Format( _T("%8d") , pBill->jcb.lUseCount); strJCB+= strTemp; strHead += strJCB; */ strTab = _T(""); strHead += strTab; m_strMsg=strHead; UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_C_MonPay_See::OnCMonpaySeeCopy() { HGLOBAL hglbCopy; TCHAR * lptstrCopy; if (!OpenClipboard()) return; EmptyClipboard(); hglbCopy = GlobalAlloc(GMEM_MOVEABLE, (m_strMsg.GetLength()+1)*sizeof(TCHAR)); if (hglbCopy == NULL) { CloseClipboard(); return; } lptstrCopy = (TCHAR*)GlobalLock(hglbCopy); _tcscpy(lptstrCopy,m_strMsg); GlobalUnlock(hglbCopy); #ifdef _UNICODE SetClipboardData(CF_UNICODETEXT, hglbCopy); #else ::SetClipboardData(CF_TEXT, hglbCopy); #endif CloseClipboard(); }