📄 layerstatisticdlg.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 + -