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

📄 layerstatisticdlg.cpp

📁 vc 和mapobjects地理信息系统组件开发 很有启发意义和参考价值
💻 CPP
字号:
// LayerStatisticDlg.cpp : implementation file
//

#include "stdafx.h"
#include "mapper.h"
#include "LayerStatisticDlg.h"

#include "enghtmlfile.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CLayerStatisticDlg dialog


CLayerStatisticDlg::CLayerStatisticDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CLayerStatisticDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CLayerStatisticDlg)
	m_nField = -1;
	m_sLayer = _T("");
	//}}AFX_DATA_INIT
}


void CLayerStatisticDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLayerStatisticDlg)
	DDX_Control(pDX, IDC_DATA, m_oData);
	DDX_Control(pDX, IDC_FIELDS, m_oFields);
	DDX_LBIndex(pDX, IDC_FIELDS, m_nField);
	DDX_Text(pDX, IDC_LAYER, m_sLayer);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLayerStatisticDlg, CDialog)
	//{{AFX_MSG_MAP(CLayerStatisticDlg)
	ON_LBN_SELCHANGE(IDC_FIELDS, OnSelchangeFields)
	ON_BN_CLICKED(IDC_HTML, OnHtml)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLayerStatisticDlg message handlers

void CLayerStatisticDlg::OnSelchangeFields() 
{
	UpdateData(TRUE);
	m_oData.ResetContent();

	//首先判断是否数值字段
	CString sType=m_taLayerField[m_nField].szDataType;
	if((sType!="长整数")&&(sType!="双精度"))
		return;
	
	CString s;
//	s.Format("字段:%s",m_taLayerField[index].szField);
//	m_oDataList.AddString(s);
	s.Format("最小:%19.6lf",m_taLayerField[m_nField].min);
	m_oData.AddString(s);
	s.Format("最大:%19.6lf",m_taLayerField[m_nField].max);
	m_oData.AddString(s);
	s.Format("均值:%19.6lf",m_taLayerField[m_nField].mean);
	m_oData.AddString(s);
	s.Format("总和:%19.6lf",m_taLayerField[m_nField].sum);
	m_oData.AddString(s);
	s.Format("方差:%19.6lf",m_taLayerField[m_nField].dev);
	m_oData.AddString(s);
	s.Format("个数:%12ld",m_taLayerField[m_nField].count);
	m_oData.AddString(s);

}

BOOL CLayerStatisticDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	CString s;
	int i,count=m_taLayerField.GetSize();
	for(i=0;i<count;i++)
	{
		s.Format("%s [%s]",m_taLayerField[i].szField,m_taLayerField[i].szDataType);
		m_oFields.AddString(s);
//		m_oFields.AddString(m_taLayerField[i].szField);
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CLayerStatisticDlg::OnHtml() 
{
	CFileDialog	fd(FALSE,"htm",NULL,OFN_EXPLORER|OFN_HIDEREADONLY|OFN_ALLOWMULTISELECT,"HTML文件(*.htm)|*.htm||",this);

	if(fd.DoModal()!=IDOK) return;

	CEngHtmlFile ehf;
	ehf.Open(fd.GetPathName());
	ehf.FileTitle("统计信息");

	ehf.OutData2("统计信息",TRUE,TRUE,FALSE,TRUE,TRUE);

	//需要输出标题和列标题
	ehf.TableBegin(TRUE);
	CStringArray saInfo;
	int i,count=m_oFields.GetCount();
	
	saInfo.RemoveAll();
	saInfo.Add("字段");
	saInfo.Add("数据类型");
	saInfo.Add("最小");
	saInfo.Add("最大");
	saInfo.Add("均值");
	saInfo.Add("总和");
	saInfo.Add("方差");
	saInfo.Add("个数");
	ehf.TableRow(saInfo);

	CString s,sType;
	for(i=0;i<count;i++)
	{
		saInfo.RemoveAll();
		sType=m_taLayerField[i].szDataType;
		if(sType=="字符串")
		{
			s.Format("%s",m_taLayerField[i].szField);
			saInfo.Add(s);
			s.Format("%s",m_taLayerField[i].szDataType);
			saInfo.Add(s);
			saInfo.Add("/");
			saInfo.Add("/");
			saInfo.Add("/");
			saInfo.Add("/");
			saInfo.Add("/");
			saInfo.Add("/");
		}
		else
		{
			if(sType=="长整数")
			{
				s.Format("%s",m_taLayerField[i].szField);
				saInfo.Add(s);
				s.Format("%s",m_taLayerField[i].szDataType);
				saInfo.Add(s);
				s.Format("%12ld",(long)m_taLayerField[i].min);
				saInfo.Add(s);
				s.Format("%12ld",(long)m_taLayerField[i].max);
				saInfo.Add(s);
				s.Format("%19.6lf",m_taLayerField[i].mean);
				saInfo.Add(s);
				s.Format("%12ld",(long)m_taLayerField[i].sum);
				saInfo.Add(s);
				s.Format("%19.6lf",m_taLayerField[i].dev);
				saInfo.Add(s);
				s.Format("%12ld",m_taLayerField[i].count);
				saInfo.Add(s);
			}
			else
			{
				s.Format("%s",m_taLayerField[i].szField);
				saInfo.Add(s);
				s.Format("%s",m_taLayerField[i].szDataType);
				saInfo.Add(s);
				s.Format("%19.6lf",m_taLayerField[i].min);
				saInfo.Add(s);
				s.Format("%19.6lf",m_taLayerField[i].max);
				saInfo.Add(s);
				s.Format("%19.6lf",m_taLayerField[i].mean);
				saInfo.Add(s);
				s.Format("%19.6lf",m_taLayerField[i].sum);
				saInfo.Add(s);
				s.Format("%19.6lf",m_taLayerField[i].dev);
				saInfo.Add(s);
				s.Format("%12ld",m_taLayerField[i].count);
				saInfo.Add(s);
			}
		}
		ehf.TableRow(saInfo);
	}
	ehf.TableEnd();
	ehf.Close();	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -