⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 reportwzdfield.cpp

📁 一个很好的VC++ 用ODBC编的
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// 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 + -