📄 reportwzdfield.cpp
字号:
// ReportWzdField.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "ReportWzdField.h"
#include "ReportWizard.h"
#include "CommonRs.h"
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
IMPLEMENT_DYNCREATE(CReportWzdField, CPropertyPage)
IMPLEMENT_DYNCREATE(CReportWzdFormat, CPropertyPage)
extern CCommonRs *m_pCommonRS;
/////////////////////////////////////////////////////////////////////////////
// CReportWzdField property page
CReportWzdField::CReportWzdField() : CPropertyPage(CReportWzdField::IDD)
{
//{{AFX_DATA_INIT(CReportWzdField)
m_strReportFooter = _T("");
m_fUsePageNum = TRUE;
m_strFieldTitle = _T("");
m_strReportTitle = _T("");
//}}AFX_DATA_INIT
}
CReportWzdField::~CReportWzdField()
{
}
void CReportWzdField::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CReportWzdField)
DDX_Control(pDX, IDC_CBPNFORMAT, m_CBPageType);
DDX_Control(pDX, IDC_LISTSEL, m_LBSelected);
DDX_Control(pDX, IDC_LISTPRE, m_LBFieldCandi);
DDX_Text(pDX, IDC_FOOTER, m_strReportFooter);
DDX_Check(pDX, IDC_CHKPAGENUM, m_fUsePageNum);
DDX_Text(pDX, IDC_FIELDTITLE, m_strFieldTitle);
DDX_Text(pDX, IDC_MAINTITLE, m_strReportTitle);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CReportWzdField, CPropertyPage)
//{{AFX_MSG_MAP(CReportWzdField)
ON_BN_CLICKED(IDC_CHKPAGENUM, OnChkpagenum)
ON_BN_CLICKED(IDC_SELECT, OnSelect)
ON_BN_CLICKED(IDC_DESELECT, OnDeselect)
ON_BN_CLICKED(IDC_SELECTALL, OnSelectall)
ON_BN_CLICKED(IDC_DESELECTALL, OnDeselectall)
ON_LBN_SELCHANGE(IDC_LISTSEL, OnSelchangeListsel)
ON_EN_KILLFOCUS(IDC_FIELDTITLE, OnKillfocusFieldtitle)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CReportWzdField::OnSetActive()
{
// TODO: Add your specialized code here and/or call the base class
CPropertySheet* psheet = (CPropertySheet*) GetParent();
psheet->SetWizardButtons(PSWIZB_NEXT);
return CPropertyPage::OnSetActive();
}
/////////////////////////////////////////////////////////////////////////////
// CReportWzdFormat property page
CReportWzdFormat::CReportWzdFormat() : CPropertyPage(CReportWzdFormat::IDD)
{
//{{AFX_DATA_INIT(CReportWzdFormat)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CReportWzdFormat::~CReportWzdFormat()
{
}
void CReportWzdFormat::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CReportWzdFormat)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CReportWzdFormat, CPropertyPage)
//{{AFX_MSG_MAP(CReportWzdFormat)
ON_CBN_SELCHANGE(IDC_CBTITLEFONT, OnSelchangeCbTitlefont)
ON_CBN_SELCHANGE(IDC_CBNORMALFONT, OnSelchangeCbNormalfont)
ON_CBN_SELCHANGE(IDC_CBFOOTERFONT, OnSelchangeCbFooterfont)
ON_CBN_SELCHANGE(IDC_CBTITLESIZE, OnSelchangeCbTitlesize)
ON_CBN_SELCHANGE(IDC_CBNORMALSIZE, OnSelchangeCbNormalsize)
ON_CBN_SELCHANGE(IDC_CBFOOTERSIZE, OnSelchangeCbFootersize)
ON_CBN_SELCHANGE(IDC_CBHEADFONT, OnSelchangeCbheadfont)
ON_CBN_SELCHANGE(IDC_CBHEADSIZE, OnSelchangeCbheadsize)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
BOOL CReportWzdFormat::OnSetActive()
{
// TODO: Add your specialized code here and/or call the base class
CPropertySheet* psheet = (CPropertySheet*) GetParent();
psheet->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT);
return CPropertyPage::OnSetActive();
}
BOOL CReportWzdField::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
if(!m_pCommonRS->IsOpen()) return TRUE;
int nFieldCount = m_pCommonRS->GetODBCFieldCount();
m_LBFieldCandi.ResetContent();
CODBCFieldInfo fieldinfo;
for(int n=0;n<nFieldCount;n++){
m_pCommonRS->GetODBCFieldInfo(n, fieldinfo);
m_LBFieldCandi.InsertString(-1, fieldinfo.m_strName);
}
// page number
if(m_fUsePageNum){
GetDlgItem(IDC_PAGECAP)->EnableWindow(TRUE);
GetDlgItem(IDC_CBPNFORMAT)->EnableWindow(TRUE);
}
m_saFieldTitle.RemoveAll();
m_uSelIndex = -1;
m_CBPageType.SetCurSel(0);
UpdateData(FALSE);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
BOOL CReportWzdFormat::OnInitDialog()
{
CPropertyPage::OnInitDialog();
// TODO: Add extra initialization here
m_CBFontTitle.SubclassDlgItem(IDC_CBTITLEFONT, this);
m_CBFontContentHead.SubclassDlgItem(IDC_CBHEADFONT, this);
m_CBFontContent.SubclassDlgItem(IDC_CBNORMALFONT, this);
m_CBFontFooter.SubclassDlgItem(IDC_CBFOOTERFONT, this);
m_CBFontFooter.Initialize();
m_CBFontContentHead.Initialize();
m_CBFontContent.Initialize();
m_CBFontTitle.Initialize();
int nIndex = 0;
nIndex = m_CBFontFooter.FindStringExact(0, "宋体");
m_CBFontFooter.SetCurSel(nIndex);
nIndex = m_CBFontContentHead.FindStringExact(0, "宋体");
m_CBFontContentHead.SetCurSel(nIndex);
nIndex = m_CBFontContent.FindStringExact(0, "宋体");
m_CBFontContent.SetCurSel(nIndex);
nIndex = m_CBFontTitle.FindStringExact(0, "宋体");
m_CBFontTitle.SetCurSel(nIndex);
//
((CComboBox *)GetDlgItem(IDC_CBTITLESIZE))->SetCurSel(0);
((CComboBox *)GetDlgItem(IDC_CBHEADSIZE))->SetCurSel(0);
((CComboBox *)GetDlgItem(IDC_CBNORMALSIZE))->SetCurSel(0);
((CComboBox *)GetDlgItem(IDC_CBFOOTERSIZE))->SetCurSel(0);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CReportWzdField::OnChkpagenum()
{
// TODO: Add your control notification handler code here
UpdateData();
if(m_fUsePageNum){
GetDlgItem(IDC_PAGECAP)->EnableWindow(TRUE);
GetDlgItem(IDC_CBPNFORMAT)->EnableWindow(TRUE);
}
else{
GetDlgItem(IDC_PAGECAP)->EnableWindow(FALSE);
GetDlgItem(IDC_CBPNFORMAT)->EnableWindow(FALSE);
}
}
void CReportWzdField::OnSelect()
{
// TODO: Add your control notification handler code here
UpdateData();
CString strFieldName;
UINT nSel = m_LBFieldCandi.GetCurSel();
if(nSel == LB_ERR) return;
int nSelected;
m_LBFieldCandi.GetText(nSel, strFieldName);
nSelected = m_LBSelected.AddString(strFieldName);
m_LBFieldCandi.DeleteString(nSel);
//
m_saFieldTitle.Add(strFieldName);
//
UpdateData(FALSE);
}
void CReportWzdField::OnDeselect()
{
// TODO: Add your control notification handler code here
UpdateData();
CString strFieldName;
UINT nSel = m_LBSelected.GetCurSel();
if(nSel == LB_ERR) return;
int nDeselected;
m_LBSelected.GetText(nSel, strFieldName);
nDeselected = m_LBFieldCandi.AddString(strFieldName);
m_LBSelected.DeleteString(nSel);
//
int nArrayCount = m_saFieldTitle.GetSize();
if(nDeselected < nArrayCount)
m_saFieldTitle.RemoveAt(nDeselected);
m_strFieldTitle.Empty();
UpdateData(FALSE);
}
void CReportWzdField::OnSelectall()
{
// TODO: Add your control notification handler code here
UpdateData();
CString strFieldName;
UINT nCount = m_LBFieldCandi.GetCount();
if(nCount <= 0) return;
for(UINT iIdx = 0; iIdx<nCount; iIdx++){
strFieldName.Empty();
m_LBFieldCandi.GetText(0, strFieldName);
m_LBSelected.AddString(strFieldName);
m_LBFieldCandi.DeleteString(0);
m_saFieldTitle.Add(strFieldName);
}
UpdateData(FALSE);
}
void CReportWzdField::OnDeselectall()
{
// TODO: Add your control notification handler code here
UpdateData();
CString strFieldName;
UINT nCount = m_LBSelected.GetCount();
if(nCount <= 0) return;
for(UINT iIdx = 0; iIdx<nCount; iIdx++){
strFieldName.Empty();
m_LBSelected.GetText(0, strFieldName);
m_LBFieldCandi.AddString(strFieldName);
m_LBSelected.DeleteString(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -