SmsManager/DLG_C_MonPay_See.cpp
2025-01-14 10:46:18 +08:00

219 lines
5.3 KiB
C++

// 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();
}