// DLG_Corp_FP_Modify.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_Corp_FP_Modify.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_FP_Modify dialog #include "DLG_Corp_FP.h" DLG_Corp_FP_Modify::DLG_Corp_FP_Modify(CWnd* pParent /*=NULL*/) : CDialog(DLG_Corp_FP_Modify::IDD, pParent) , m_strCreate(_T("")) , m_strPostEmail(_T("")) { //{{AFX_DATA_INIT(DLG_Corp_FP_Modify) //}}AFX_DATA_INIT m_pLXRDlg = (DLG_Corp_FP *)pParent; memset( &m_FP,0,sizeof(m_FP)); m_Pos = 0; m_strCorpName = _T(""); m_strPostName = _T(""); m_strCorpAddress = _T(""); m_strCorpTel = _T(""); m_strCorpBank = _T(""); m_strCorpBankNo = _T(""); m_strCorpTaxID = _T(""); m_lFPType = 0; m_strPostAddress = _T(""); m_strPostCode = _T(""); m_strPostMobile = _T(""); m_strPostTel = _T(""); m_strBZ = _T(""); } void DLG_Corp_FP_Modify::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Corp_FP_Modify) //}}AFX_DATA_MAP DDX_Text(pDX, IDC_CORP_FPMODIFY_CORPNAME, m_strCorpName); DDV_MaxChars(pDX, m_strCorpName, 60); DDX_Text(pDX, IDC_CORP_FPMODIFY_POSTNAME, m_strPostName); DDV_MaxChars(pDX, m_strPostName, 15); DDX_Text(pDX, IDC_CORP_FPRMODIFY_CORPADDRESS, m_strCorpAddress); DDV_MaxChars(pDX, m_strCorpAddress, 63); DDX_Text(pDX, IDC_CORP_FPRMODIFY_CORPATEL, m_strCorpTel); DDV_MaxChars(pDX, m_strCorpTel, 31); DDX_Text(pDX, IDC_CORP_FPRMODIFY_CORPBANK, m_strCorpBank); DDV_MaxChars(pDX, m_strCorpBank, 31); DDX_Text(pDX, IDC_CORP_FPRMODIFY_CORPBANKNO, m_strCorpBankNo); DDV_MaxChars(pDX, m_strCorpBankNo, 31); DDX_Text(pDX, IDC_CORP_FPRMODIFY_CORPTAXID, m_strCorpTaxID); DDV_MaxChars(pDX, m_strCorpTaxID, 23); DDX_Check(pDX, IDC_CORP_FPRMODIFY_DEFAULTFP, m_bDefaultFP); DDX_CBIndex(pDX, IDC_CORP_FPRMODIFY_FPTYPE, m_lFPType); DDX_Text(pDX, IDC_CORP_FPRMODIFY_POSTADDRESS, m_strPostAddress); DDV_MaxChars(pDX, m_strPostAddress, 63); DDX_Text(pDX, IDC_CORP_FPRMODIFY_POSTCODE, m_strPostCode); DDV_MaxChars(pDX, m_strPostCode, 15); DDX_Text(pDX, IDC_CORP_FPRMODIFY_POSTMOBILE, m_strPostMobile); DDV_MaxChars(pDX, m_strPostMobile, 31); DDX_Text(pDX, IDC_CORP_FPRMODIFY_POSTTEL, m_strPostTel); DDV_MaxChars(pDX, m_strPostTel, 31); DDX_Text(pDX, IDC_CORP_LXRMODIFY_BZ, m_strBZ); DDV_MaxChars(pDX, m_strBZ, 200); DDX_Text(pDX, IDC_CORP_FPRMODIFY_CREATE, m_strCreate); DDX_Text(pDX, IDC_CORP_FPMODIFY_EMAIL, m_strPostEmail); DDV_MaxChars(pDX, m_strPostEmail, 60); } BEGIN_MESSAGE_MAP(DLG_Corp_FP_Modify, CDialog) //{{AFX_MSG_MAP(DLG_Corp_FP_Modify) //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, &DLG_Corp_FP_Modify::OnBnClickedOk) ON_BN_CLICKED(IDC_CORP_FPMODIFY_PRINT, &DLG_Corp_FP_Modify::OnBnClickedCorpFpmodifyPrint) ON_BN_CLICKED(IDC_CORP_FPMODIFY_PRINTPREVIEW, &DLG_Corp_FP_Modify::OnBnClickedCorpFpmodifyPrintpreview) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_FP_Modify message handlers void DLG_Corp_FP_Modify::SetParam(ANS_Corp_FPData LXR , POSITION pos) { m_FP = LXR; m_Pos = pos; } ANS_Corp_FPData DLG_Corp_FP_Modify::GetParam() { return m_FP; } BOOL DLG_Corp_FP_Modify::OnInitDialog() { CDialog::OnInitDialog(); m_bDefaultFP = m_FP.bDefaultFP; m_lFPType = m_FP.lFPType; m_strCorpName = m_FP.szCorpName; //抬头 m_strCorpTaxID = m_FP.szCorpTaxID; //纳税人识别号 m_strCorpAddress= m_FP.szCorpAddress; //地址 m_strCorpTel = m_FP.szCorpTel; //电话 m_strCorpBank = m_FP.szCorpBank; //开户行 m_strCorpBankNo = m_FP.szCorpBankNo; //银行帐号 m_strPostName = m_FP.szPostName; //收件人 m_strPostEmail = m_FP.szPostEmail; //收票邮箱 m_strPostAddress= m_FP.szPostAddress; //收件地址 m_strPostCode = m_FP.szPostCode; //收件邮编 m_strPostMobile = m_FP.szPostMobile; //收件手机 m_strPostTel = m_FP.szPostTel; //收件电话 m_strBZ = m_FP.szBZ; //备注 m_strCreate.Format( _T("%s %04d.%02d.%02d %02d:%02d:%02d") , m_FP.szCreateUser,m_FP.tCreateTime.wYear,m_FP.tCreateTime.wMonth,m_FP.tCreateTime.wDay,m_FP.tCreateTime.wHour,m_FP.tCreateTime.wMinute,m_FP.tCreateTime.wSecond ); this->UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_Corp_FP_Modify::OnBnClickedOk() { UpdateData(true); if (m_strCorpName.GetLength() <= 0) { MessageBox(_T("没有录入发票抬头,请输入!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_CORP_FPMODIFY_CORPNAME)->SetFocus(); return; } m_FP.bDefaultFP = m_bDefaultFP; m_FP.lFPType = m_lFPType; _tcscpy(m_FP.szCorpName, m_strCorpName); //抬头 _tcscpy(m_FP.szCorpTaxID, m_strCorpTaxID); //纳税人识别号 _tcscpy(m_FP.szCorpAddress, m_strCorpAddress); //地址 _tcscpy(m_FP.szCorpTel, m_strCorpTel); //电话 _tcscpy(m_FP.szCorpBank, m_strCorpBank); //开户行 _tcscpy(m_FP.szCorpBankNo, m_strCorpBankNo); //银行帐号 _tcscpy(m_FP.szPostName, m_strPostName); //收件人 _tcscpy(m_FP.szPostEmail, m_strPostEmail); //收票邮箱 _tcscpy(m_FP.szPostAddress, m_strPostAddress); //收件地址 _tcscpy(m_FP.szPostCode, m_strPostCode); //收件邮编 _tcscpy(m_FP.szPostMobile, m_strPostMobile); //收件手机 _tcscpy(m_FP.szPostTel, m_strPostTel); //收件电话 _tcscpy(m_FP.szBZ, m_strBZ); //备注 CDialog::OnOK(); } void DLG_Corp_FP_Modify::OnBnClickedCorpFpmodifyPrint() { if (!UpdateData(true)) return; try { //打印 CPrnFrame * PrnFrame = new CPrnFrame(On_Print2, On_BeginPrint2, OnPreparePrinting2, this, this, true); } catch (...) { AfxMessageBox(_T("print error")); } } void DLG_Corp_FP_Modify::OnBnClickedCorpFpmodifyPrintpreview() { if (!UpdateData(true)) return; try { //预览 CPrnFrame * PrnFrame = new CPrnFrame(On_Print2, On_BeginPrint2, OnPreparePrinting2, this, this, false); PrnFrame->ShowWindow(SW_SHOW); PrnFrame->UpdateWindow(); //打印 //CPrnFrame * PrnFrame = new CPrnFrame(On_Print2,On_BeginPrint2,this,this,true); } catch (...) { AfxMessageBox(_T("print error")); } } void DLG_Corp_FP_Modify::On_Print2(CDC *pDC, CPrintInfo *pInfo, void *pVoid) { DLG_Corp_FP_Modify * pDlg = (DLG_Corp_FP_Modify *)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("宋体")); fontm.CreateFont(-MulDiv(16, -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("宋体")); fontm2.CreateFont(-MulDiv(14, -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 fLeft = 11.0f; float fTop = 7.0f; long x = 0, y = 0, w = 0, h = 0; long x2 = 0, y2 = 0, w2 = 0, h2 = 0; CString str; /* oldfont=pDC->SelectObject(&fontm2); //打印快递单 x=(long)(((float)(85.0f))*xmm+0.5f); y=(long)(((float)(55.0f))*ymm+0.5f); w=(long)(((float)(120.0f))*xmm+0.5f); h=(long)(((float)(55.0f))*ymm+0.5f); str.Format(_T("公司名称:%s\r\n  地址:%s\r\n 收件人:%s\r\n  电话:%s\r\n  邮编:%s\r\n"), pDlg->m_strCorpName,pDlg->m_strAddress,pDlg->m_strLXR,pDlg->m_strTelNum,pDlg->m_strPostCode ); pDC->DrawText(str,&pDlg->MakeRect(x,y,w,h),DT_LEFT|DT_VCENTER); */ oldfont = pDC->SelectObject(&font); //打印快递单 x = (long)(((float)(104.0f))*xmm + 0.5f); y = (long)(((float)(23.0f))*ymm + 0.5f); w = (long)(((float)(80.0f))*xmm + 0.5f); h = (long)(((float)(5.0f))*ymm + 0.5f); pDC->DrawText(pDlg->m_strPostName, &pDlg->MakeRect(x, y, w, h), DT_LEFT | DT_TOP); x = (long)(((float)(101.0f))*xmm + 0.5f); y = (long)(((float)(29.0f))*ymm + 0.5f); w = (long)(((float)(80.0f))*xmm + 0.5f); h = (long)(((float)(5.0f))*ymm + 0.5f); pDC->DrawText(pDlg->m_strCorpName, &pDlg->MakeRect(x, y, w, h), DT_LEFT | DT_TOP); x = (long)(((float)(90.0f))*xmm + 0.5f); y = (long)(((float)(34.0f))*ymm + 0.5f); w = (long)(((float)(90.0f))*xmm + 0.5f); h = (long)(((float)(25.0f))*ymm + 0.5f); pDC->DrawText(CString(_T("   ")) + pDlg->m_strPostAddress, &pDlg->MakeRect(x, y, w, h), DT_LEFT | DT_TOP | DT_EDITCONTROL | DT_WORDBREAK); x = (long)(((float)(112.0f))*xmm + 0.5f); y = (long)(((float)(48.0f))*ymm + 0.5f); w = (long)(((float)(42.0f))*xmm + 0.5f); h = (long)(((float)(20.0f))*ymm + 0.5f); pDC->DrawText(pDlg->m_strPostMobile+CString(_T(" "))+pDlg->m_strPostTel, &pDlg->MakeRect(x, y, w, h), DT_LEFT | DT_TOP | DT_TOP | DT_EDITCONTROL | DT_WORDBREAK); x = (long)(((float)(168.0f))*xmm + 0.5f); y = (long)(((float)(48.0f))*ymm + 0.5f); w = (long)(((float)(20.0f))*xmm + 0.5f); h = (long)(((float)(20.0f))*ymm + 0.5f); pDC->DrawText(pDlg->m_strPostCode, &pDlg->MakeRect(x, y, w, h), DT_LEFT | DT_TOP | DT_TOP | DT_EDITCONTROL | DT_WORDBREAK); pDC->SelectObject(oldfont); font.DeleteObject(); fontb.DeleteObject(); } void DLG_Corp_FP_Modify::On_BeginPrint2(CDC *pDC, CPrintInfo *pInfo, void *pVoid) { // pInfo->SetMaxPage(1); //只有1页 } RECT DLG_Corp_FP_Modify::MakeRect(long x, long y, long w, long h) { RECT rect = { x,y,x + w,y + h }; return rect; } void DLG_Corp_FP_Modify::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; lpDevmode->dmOrientation = DMORIENT_PORTRAIT; } } }