You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
176 lines
4.9 KiB
C++
176 lines
4.9 KiB
C++
// XTPReportView.cpp : implementation of the CXTPReportView class.
|
|
//
|
|
// This file is a part of the XTREME REPORTCONTROL MFC class library.
|
|
// (c)1998-2012 Codejock Software, All Rights Reserved.
|
|
//
|
|
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
|
|
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
|
|
// CONSENT OF CODEJOCK SOFTWARE.
|
|
//
|
|
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
|
|
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
|
|
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
|
|
// SINGLE COMPUTER.
|
|
//
|
|
// CONTACT INFORMATION:
|
|
// support@codejock.com
|
|
// http://www.codejock.com
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "StdAfx.h"
|
|
|
|
#include "Common/XTPResourceManager.h"
|
|
#include "Common/XTPDrawHelpers.h"
|
|
#include "Common/XTPSystemHelpers.h"
|
|
#include "Common/XTPCustomHeap.h"
|
|
#include "Common/XTPSmartPtrInternalT.h"
|
|
|
|
#include "Resource.h"
|
|
#include "XTPReportDefines.h"
|
|
#include "XTPReportPageSetupDialog.h"
|
|
#include "XTPReportControl.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CXTPReportPageSetupDialog, CPageSetupDialog)
|
|
ON_BN_CLICKED(XTP_IDC_HEADER_FORMAT_BTN, OnBnClickedHeaderFormat)
|
|
ON_BN_CLICKED(XTP_IDC_FOOTER_FORMAT_BTN, OnBnClickedFooterFormat)
|
|
END_MESSAGE_MAP()
|
|
|
|
CXTPReportPageSetupDialog::CXTPReportPageSetupDialog(
|
|
CXTPReportViewPrintOptions* pOptions,
|
|
DWORD dwFlags, CWnd* pParentWnd)
|
|
: CPageSetupDialog(dwFlags, pParentWnd)
|
|
{
|
|
ASSERT(pOptions);
|
|
m_pOptions = pOptions;
|
|
|
|
if (m_pOptions)
|
|
{
|
|
BOOL bIsInches = m_pOptions->IsMarginsMeasureInches();
|
|
DWORD dwMeasure = bIsInches ? PSD_INTHOUSANDTHSOFINCHES : PSD_INHUNDREDTHSOFMILLIMETERS;
|
|
|
|
m_psd.Flags &= ~PSD_INWININIINTLMEASURE;
|
|
m_psd.Flags |= dwMeasure;
|
|
}
|
|
|
|
m_psd.Flags |= PSD_ENABLEPAGESETUPTEMPLATEHANDLE;
|
|
m_psd.hPageSetupTemplate = (HGLOBAL)XTPResourceManager()->LoadDialogTemplate(IDD);
|
|
ASSERT(m_psd.hPageSetupTemplate);
|
|
|
|
if (m_pOptions)
|
|
m_psd.rtMargin = m_pOptions->m_rcMargins;
|
|
|
|
m_nIDHelp = CXTPReportPageSetupDialog::IDD;
|
|
}
|
|
|
|
CXTPReportPageSetupDialog::~CXTPReportPageSetupDialog()
|
|
{
|
|
}
|
|
|
|
#ifndef rad1
|
|
#define rad1 0x0420
|
|
#define rad2 0x0421
|
|
|
|
#define grp4 0x0433
|
|
#endif
|
|
|
|
BOOL CXTPReportPageSetupDialog::OnInitDialog ()
|
|
{
|
|
CPageSetupDialog::OnInitDialog();
|
|
|
|
ASSERT(m_pOptions);
|
|
|
|
VERIFY( m_ctrlHeaderFormat.SubclassDlgItem(XTP_IDC_HEADER_FORMAT, this) );
|
|
VERIFY( m_ctrlFooterFormat.SubclassDlgItem(XTP_IDC_FOOTER_FORMAT, this) );
|
|
|
|
VERIFY( m_ctrlHeaderFormatBtn.SubclassDlgItem(XTP_IDC_HEADER_FORMAT_BTN, this) );
|
|
VERIFY( m_ctrlFooterFormatBtn.SubclassDlgItem(XTP_IDC_FOOTER_FORMAT_BTN, this) );
|
|
|
|
if (m_pOptions && m_pOptions->GetPageHeader())
|
|
m_ctrlHeaderFormat.SetWindowText(m_pOptions->GetPageHeader()->m_strFormatString);
|
|
|
|
if (m_pOptions && m_pOptions->GetPageFooter())
|
|
m_ctrlFooterFormat.SetWindowText(m_pOptions->GetPageFooter()->m_strFormatString);
|
|
|
|
if (GetDlgItem(rad1))
|
|
GetDlgItem(rad1)->EnableWindow(TRUE); //1056 Portrait
|
|
if (GetDlgItem(rad2))
|
|
GetDlgItem(rad2)->EnableWindow(TRUE); //1057 Landscape
|
|
|
|
BOOL bIsInches = m_pOptions ? m_pOptions->IsMarginsMeasureInches() : FALSE;
|
|
|
|
UINT uStrID = bIsInches ? XTP_IDS_REPORT_MARGINS_INCH : XTP_IDS_REPORT_MARGINS_MM;
|
|
CString strCaption;
|
|
CXTPResourceManager::AssertValid(XTPResourceManager()->LoadString(&strCaption, uStrID));
|
|
|
|
if (!strCaption.IsEmpty() && GetDlgItem(grp4))
|
|
GetDlgItem(grp4)->SetWindowText(strCaption);
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
void CXTPReportPageSetupDialog::OnOK()
|
|
{
|
|
if (m_pOptions && m_pOptions->GetPageHeader())
|
|
m_ctrlHeaderFormat.GetWindowText(m_pOptions->GetPageHeader()->m_strFormatString);
|
|
|
|
if (m_pOptions && m_pOptions->GetPageFooter())
|
|
m_ctrlFooterFormat.GetWindowText(m_pOptions->GetPageFooter()->m_strFormatString);
|
|
|
|
if (m_pOptions)
|
|
m_pOptions->m_rcMargins = m_psd.rtMargin;
|
|
|
|
CPageSetupDialog::OnOK();
|
|
}
|
|
|
|
void CXTPReportPageSetupDialog::OnBnClickedHeaderFormat()
|
|
{
|
|
CXTPPrintPageHeaderFooter::DoInsertHFFormatSpecifierViaMenu(
|
|
this, &m_ctrlHeaderFormat, &m_ctrlHeaderFormatBtn);
|
|
}
|
|
|
|
void CXTPReportPageSetupDialog::OnBnClickedFooterFormat()
|
|
{
|
|
CXTPPrintPageHeaderFooter::DoInsertHFFormatSpecifierViaMenu(
|
|
this, &m_ctrlFooterFormat, &m_ctrlFooterFormatBtn);
|
|
}
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//class CXTPReportViewPrintOptions
|
|
|
|
IMPLEMENT_DYNAMIC(CXTPReportViewPrintOptions, CXTPPrintOptions)
|
|
CXTPReportViewPrintOptions::CXTPReportViewPrintOptions()
|
|
{
|
|
m_bRepeatHeaderRows = FALSE;
|
|
m_bRepeatFooterRows = FALSE;
|
|
|
|
}
|
|
|
|
LCID CXTPReportViewPrintOptions::GetActiveLCID()
|
|
{
|
|
return CXTPReportControlLocale::GetActiveLCID();
|
|
}
|
|
|
|
void CXTPReportViewPrintOptions::Set(const CXTPReportViewPrintOptions* pSrc)
|
|
{
|
|
if (pSrc)
|
|
{
|
|
CXTPPrintOptions::Set(pSrc);
|
|
|
|
m_bRepeatHeaderRows = pSrc->m_bRepeatHeaderRows;
|
|
m_bRepeatFooterRows = pSrc->m_bRepeatFooterRows;
|
|
}
|
|
}
|
|
|