SmsManager/DLG_Corp_PayToUser_Print.cpp

329 lines
10 KiB
C++

// DLG_Corp_PayToUser_Print.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_Corp_PayToUser_Print.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_PayToUser_Print dialog
DLG_Corp_PayToUser_Print::DLG_Corp_PayToUser_Print(CWnd* pParent /*=NULL*/)
: CDialog(DLG_Corp_PayToUser_Print::IDD, pParent)
{
//{{AFX_DATA_INIT(DLG_Corp_PayToUser_Print)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
memset(&m_PayData,0,sizeof(m_PayData));
}
void DLG_Corp_PayToUser_Print::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DLG_Corp_PayToUser_Print)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DLG_Corp_PayToUser_Print, CDialog)
//{{AFX_MSG_MAP(DLG_Corp_PayToUser_Print)
ON_WM_TIMER()
ON_BN_CLICKED(IDC_CORP_LXRPRINT_SF, OnCorpLxrprintSf)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_PayToUser_Print message handlers
void DLG_Corp_PayToUser_Print::SetParam(ANS_PayToUserData *pPayData)
{
m_PayData = *pPayData;
}
BOOL DLG_Corp_PayToUser_Print::OnInitDialog()
{
CDialog::OnInitDialog();
SetTimer(1 , 100 , NULL );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void DLG_Corp_PayToUser_Print::OnTimer(UINT_PTR nIDEvent)
{
CDialog::OnTimer(nIDEvent);
if ( nIDEvent ==1 )
{
KillTimer(nIDEvent);
OnCorpLxrprintSf();
}
}
void DLG_Corp_PayToUser_Print::OnCorpLxrprintSf()
{
try
{
//#ifdef _DEBUG
//Ô¤ÀÀ
CPrnFrame * PrnFrame = new CPrnFrame(On_Print2,On_BeginPrint2,OnPreparePrinting2,this,this,false);
PrnFrame->ShowWindow(SW_SHOW);
PrnFrame->UpdateWindow();
//#else
//´òÓ¡
// CPrnFrame * PrnFrame = new CPrnFrame(On_Print2,On_BeginPrint2,OnPreparePrinting2,this,this,true);
//#endif
}
catch( ...)
{
AfxMessageBox( _T("print error") );
}
}
RECT DLG_Corp_PayToUser_Print::MakeRect(long x, long y, long w, long h)
{
RECT rect={x,y,x+w,y+h};
return rect;
}
void DLG_Corp_PayToUser_Print::On_BeginPrint2(CDC *pDC, CPrintInfo *pInfo, void *pVoid)
{
}
void DLG_Corp_PayToUser_Print::On_Print2(CDC *pDC, CPrintInfo *pInfo, void *pVoid)
{
DLG_Corp_PayToUser_Print * pDlg = (DLG_Corp_PayToUser_Print *)pVoid;
CFont font,fontb,fontm,fontm2,*oldfont;
CPoint point;
int nWidth=pDC->GetDeviceCaps(HORZRES);
int nHeight=pDC->GetDeviceCaps(VERTRES);
int xLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSX);
int yLogPixPerInch = pDC->GetDeviceCaps(LOGPIXELSY);
float xmm = ((float)xLogPixPerInch/24.5f);
float ymm = ((float)yLogPixPerInch/24.5f);
font.CreateFont(-MulDiv(12,-pDC->GetDeviceCaps(LOGPIXELSY),72),
0,0,0,FW_NORMAL,0,0,0,GB2312_CHARSET,
OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,
VARIABLE_PITCH|FF_SWISS,_T("ËÎÌå"));
fontb.CreateFont(-MulDiv(24,-pDC->GetDeviceCaps(LOGPIXELSY),72),
0,0,0,FW_NORMAL,0,0,0,GB2312_CHARSET,
OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,
VARIABLE_PITCH|FF_SWISS,_T("ËÎÌå"));
float lxAdd=20.0f;
float lyAdd=15.0f;
float fWidth1 =30.0f;
float fWidth =160.0f;
float fHeight =8.0f;
int iRow = 10;
long x=0,y=0,w=0,h=0;
long x2=0,y2=0,w2=0,h2=0;
CString str;
oldfont=pDC->SelectObject(&fontb);
//´òÓ¡¿ìµÝµ¥
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd))*ymm+0.5f);
w=(long)(((float)(fWidth))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
//±êÌâ
pDC->DrawText(_T("¸¶¿îƾ֤") ,&pDlg->MakeRect(x,y,w,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
lyAdd = lyAdd + 14.0f;
//»­¸ñ×Ó
for ( int i=0 ; i<iRow+1 ; i++ )
{
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*(float)i))*ymm+0.5f);
w=(long)(((float)(fWidth))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->MoveTo(x,y);
pDC->LineTo(x+w,y);
}
//»­¸ñ×Ó
for ( i=0 ; i<3 ; i++ )
{
switch(i)
{
case 0:
x=(long)(((float)(lxAdd))*xmm+0.5f);
break;
case 1:
x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f);
break;
case 2:
x=(long)(((float)(lxAdd+fWidth))*xmm+0.5f);
break;
}
y=(long)(((float)(lyAdd))*ymm+0.5f);
w=(long)(((float)(fWidth))*xmm+0.5f);
h=(long)(((float)(fHeight*(float)(iRow)))*ymm+0.5f);
pDC->MoveTo(x,y);
pDC->LineTo(x,y+h);
}
float fRow=0.0f;
oldfont=pDC->SelectObject(&font);
//ƾ֤ºÅ
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f);
w=(long)(((float)(fWidth1))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->DrawText(_T("ƾ֤ºÅ") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f);
w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f);
str.Format( _T("%d") , pDlg->m_PayData.lPayID);
pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE);
//¸¶¿îÀàÐÍ
fRow++;
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f);
w=(long)(((float)(fWidth1))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->DrawText(_T("¸¶¿îÀàÐÍ") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f);
w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f);
if ( pDlg->m_PayData.lPayType==0 )
{
pDC->DrawText(_T("´úÀíÉ̳ê½ð") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE);
}
if ( pDlg->m_PayData.lPayType==1 )
{
if ( pDlg->m_PayData.lUserType==1 )
pDC->DrawText(_T("´úÀíÉÌÍË¿î") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE);
else
if ( pDlg->m_PayData.lUserType==10 )
pDC->DrawText(_T("ADCÍË¿î") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE);
else
pDC->DrawText(_T("ÖÕ¶ËÓû§ÍË¿î") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE);
}
//ÆóÒµÃû³Æ
fRow++;
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f);
w=(long)(((float)(fWidth1))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->DrawText(_T("ÆóÒµÃû³Æ") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f);
w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f);
str.Format( _T("%s (ID:%d)") , pDlg->m_PayData.szCorpName , pDlg->m_PayData.lCorpID );
pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE);
//¸¶¿î½ð¶î
fRow++;
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f);
w=(long)(((float)(fWidth1))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->DrawText(_T("¸¶¿î½ð¶î") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f);
w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f);
str.Format( _T("£¤%.2f (ÌõÊý:%d ¡Á µ¥¼Û:%.4f)") , (float)pDlg->m_PayData.fPrice , pDlg->m_PayData.lSmsCount , pDlg->m_PayData.fPriceOne );
pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE);
//³öµ¥Ê±¼ä
fRow++;
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f);
w=(long)(((float)(fWidth1))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->DrawText(_T("³öµ¥Ê±¼ä") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f);
w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f);
str.Format( _T("%04dÄê%02dÔÂ%02dÈÕ") , pDlg->m_PayData.tCD.wYear,pDlg->m_PayData.tCD.wMonth,pDlg->m_PayData.tCD.wDay );
pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE);
//³öµ¥ÈË
fRow++;
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f);
w=(long)(((float)(fWidth1))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->DrawText(_T("³öµ¥Óû§") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f);
w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f);
str.Format( _T("%s Ç©Ãû£º"), pDlg->m_PayData.szCD_User );
pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE);
//Åú×¼ÈËÇ©Ãû
fRow++;
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f);
w=(long)(((float)(fWidth1))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->DrawText(_T("Åú×¼ÈËÇ©Ãû") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
//¸¶¿îʱ¼ä
fRow++;
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f);
w=(long)(((float)(fWidth1))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->DrawText(_T("¸¶¿îʱ¼ä") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
//ʵ¸¶½ð¶î
fRow++;
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f);
w=(long)(((float)(fWidth1))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->DrawText(_T("ʵ¸¶½ð¶î") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
x=(long)(((float)(lxAdd+fWidth1))*xmm+0.5f);
w=(long)(((float)(fWidth-fWidth1))*xmm+0.5f);
str= _T("£¤ Íò Ǫ °Û Ê® Ôª ½Ç ·Ö");
pDC->DrawText(str ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_LEFT|DT_VCENTER|DT_SINGLELINE);
//³öÄÉÇ©Ãû
fRow++;
x=(long)(((float)(lxAdd))*xmm+0.5f);
y=(long)(((float)(lyAdd+fHeight*fRow))*ymm+0.5f);
w=(long)(((float)(fWidth1))*xmm+0.5f);
h=(long)(((float)(fHeight))*ymm+0.5f);
pDC->DrawText(_T("³öÄÉÇ©Ãû") ,&pDlg->MakeRect(x+xmm,y,w-xmm*2,h),DT_CENTER|DT_VCENTER|DT_SINGLELINE);
pDC->SelectObject(oldfont);
font.DeleteObject();
fontb.DeleteObject();
}
void DLG_Corp_PayToUser_Print::OnPreparePrinting2(CPrintInfo *pInfo)
{
pInfo->SetMaxPage(1); //Ö»ÓÐ1Ò³
/*
//ÉèºáÏò
CWinApp* pApp = AfxGetApp();
pApp->GetPrinterDeviceDefaults(&pInfo->m_pPD->m_pd);
if ( pInfo )
{
LPDEVMODE lpDevmode = pInfo->m_pPD->GetDevMode();
if ( lpDevmode )
{
lpDevmode->dmOrientation = DMORIENT_LANDSCAPE;
}
}
*/
}