📄 import1datasetdlg.cpp
字号:
// Import1DatasetDlg.cpp : implementation file
//
#include "stdafx.h"
#include "CampusGis.h"
#include "Import1DatasetDlg.h"
#include "sodatasources.h"
#include "sodatasource.h"
#include "sodatasets.h"
#include "sodataset.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CImport1DatasetDlg dialog
CImport1DatasetDlg::CImport1DatasetDlg(CWnd* pParent /*=NULL*/)
: CDialog(CImport1DatasetDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CImport1DatasetDlg)
//}}AFX_DATA_INIT
m_pImport2VDatasetDlg=NULL;
m_pImport2GDatasetDlg=NULL;
}
void CImport1DatasetDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CImport1DatasetDlg)
DDX_Control(pDX, IDC_CHKPROGRESS, m_chkProgress);
DDX_Control(pDX, IDOK, m_Ok);
DDX_Control(pDX, IDC_CMBFILETYPE, m_cmbFileType);
DDX_Control(pDX, IDC_EDITIMPORTFILE, m_editImportFile);
DDX_Control(pDX, IDC_CMBIMPORTTO, m_cmbImportTo);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CImport1DatasetDlg, CDialog)
//{{AFX_MSG_MAP(CImport1DatasetDlg)
ON_BN_CLICKED(IDC_OPTVECTOR, OnOptVector)
ON_BN_CLICKED(IDC_OPTGRID, OnOptGrid)
ON_CBN_SELCHANGE(IDC_CMBFILETYPE, OnSelchangeCmbFileType)
ON_BN_CLICKED(IDC_BTNOPEN, OnBtnOpen)
ON_BN_CLICKED(IDC_CHKPROGRESS, OnChkProgress)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CImport1DatasetDlg message handlers
BOOL CImport1DatasetDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//获取主窗体数据源信息,添加到组合框
CsoDataSource objDs;
m_cmbImportTo.ResetContent();
m_pSuperWorkspace=&GetMainFramePointer()->m_SuperWorkspace;
for(long i=1;i<=m_pSuperWorkspace->GetDatasources().GetCount();i++)
{
objDs=m_pSuperWorkspace->GetDatasources().GetItem(COleVariant(i));
if(objDs)
m_cmbImportTo.AddString(objDs.GetAlias());
}
objDs.ReleaseDispatch();
m_nOldIndex=-1;
OnOptVector();
CButton *button=(CButton *)GetDlgItem(IDC_OPTVECTOR);
button->SetCheck(1);
button=NULL;
delete button;
m_bShowProgress=FALSE;
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
CMainFrame* CImport1DatasetDlg::GetMainFramePointer()
{
CMainFrame *pFrame=(CMainFrame *)::AfxGetMainWnd();
return pFrame;
}
void CImport1DatasetDlg::OnOptVector()
{
//选择矢量数据集
m_bVector=TRUE;
m_cmbFileType.ResetContent();
m_cmbFileType.AddString("MapInfo 交换文件 (*.mif)");
m_cmbFileType.AddString("MapInfo 表文件 (*.tab)");
m_cmbFileType.AddString("MicroStation 文件(*.dgn)");
m_cmbFileType.AddString("Arc/Info E00 文件 (*.e00)");
m_cmbFileType.AddString("ArcView Shape 文件 (*.shp)");
m_cmbFileType.AddString("Arc/Info Coverage 文件 (*.*)");
m_cmbFileType.AddString("国标矢量交换文件 (*.vct)|*.vct");
m_cmbFileType.AddString("idrisi矢量交换文件 (*.vce)|*.vec");
m_cmbFileType.AddString("AutoCAD 交换文件(*.dxf)");
m_cmbFileType.AddString("WMF(*.wmf)");
m_cmbFileType.SetCurSel(0);
m_nOldIndex=m_cmbFileType.GetCurSel();
m_editImportFile.SetWindowText(_T(""));
}
void CImport1DatasetDlg::OnOptGrid()
{
//选择栅格数据集
m_bVector=FALSE;
m_cmbFileType.ResetContent();
m_cmbFileType.AddString("Bmp 图像文件(*.bmp)");
m_cmbFileType.AddString("Grid 图像文件(*.grd)");
m_cmbFileType.AddString("JPG 图像文件(*.jpg)");
m_cmbFileType.AddString("MrSid 图像文件(*.sid)");
m_cmbFileType.AddString("WMF 图像文件(*.wmf)");
m_cmbFileType.AddString("Idrisi 栅格文件(*.img)");
m_cmbFileType.AddString("Erdas 影像文件(*.img)");
m_cmbFileType.AddString("TIF 图像文件(*.tif)");
m_cmbFileType.AddString("ECW格式文件(*.ecw)");
m_cmbFileType.SetCurSel(0);
m_nOldIndex=m_cmbFileType.GetCurSel();
m_editImportFile.SetWindowText(_T(""));
}
void CImport1DatasetDlg::OnSelchangeCmbFileType()
{
//选择文件类型
if(m_nOldIndex != m_cmbFileType.GetCurSel())
m_editImportFile.SetWindowText(_T(""));
m_nOldIndex=m_cmbFileType.GetCurSel();
}
void CImport1DatasetDlg::OnBtnOpen()
{
//打开文件
CString strFilter;
int index;
index=m_cmbFileType.GetCurSel();
if(index < 0)
return;
m_cmbFileType.GetLBText(index,strFilter);
strFilter.Replace("(","|");
strFilter.Replace(")","|");
CFileDialog dlg(true,NULL,NULL,OFN_FILEMUSTEXIST|OFN_OVERWRITEPROMPT,
strFilter,NULL);
if(dlg.DoModal()==IDOK)
{
m_strPathName=dlg.GetPathName();
m_editImportFile.SetWindowText(dlg.GetFileTitle());
m_Ok.SetFocus();
}
}
void CImport1DatasetDlg::OnOK()
{
//下一步
CString strFileName;
m_editImportFile.GetWindowText(strFileName);
if(strFileName.IsEmpty())
{
AfxMessageBox("请选择源文件!");
return;
}
int index;
index=m_cmbImportTo.GetCurSel();
if(index < 0)
{
AfxMessageBox("请选择目标数据源!");
return;
}
CString strDatasourceName;
m_cmbImportTo.GetLBText(index,strDatasourceName);
if(strDatasourceName.IsEmpty())
{
AfxMessageBox("选择的目标数据源为空!");
return;
}
CButton *button=(CButton *)GetDlgItem(IDC_OPTVECTOR);
if(button->GetCheck())
m_bVector=TRUE;
else
m_bVector=FALSE;
switch(m_bVector)
{
case TRUE:
CreateImport2VDatasetDlg(strFileName,strDatasourceName);
break;
case FALSE:
CreateImport2GDatasetDlg(strFileName,strDatasourceName);
break;
}
button=NULL;
delete button;
CDialog::OnOK();
}
void CImport1DatasetDlg::OnChkProgress()
{
//显示进度条
if(m_chkProgress.GetCheck()==1)
m_bShowProgress=TRUE;
else
m_bShowProgress=FALSE;
}
void CImport1DatasetDlg::CreateImport2VDatasetDlg(CString strFileName,CString strDatasourceName)
{
m_pImport2VDatasetDlg=new CImport2VDatasetDlg;
m_pImport2VDatasetDlg->Create(IDD_IMPORT2VDLG);
switch(m_cmbFileType.GetCurSel())
{
case 0:
m_str=_T("完成");
m_pImport2VDatasetDlg->m_cmbUnit.EnableWindow(FALSE);
break;
case 2:
m_str=_T("下一步");
break;
default:
m_str=_T("完成");
m_pImport2VDatasetDlg->m_cmbUnit.EnableWindow(TRUE);
break;
}
m_pImport2VDatasetDlg->ShowWindow(SW_SHOW);
m_pImport2VDatasetDlg->m_strPathName=m_strPathName;
m_pImport2VDatasetDlg->m_Ok.SetWindowText(m_str);
m_pImport2VDatasetDlg->m_editCADLayer.SetWindowText(strFileName+"_CAD");
m_pImport2VDatasetDlg->m_editPoint.SetWindowText(strFileName+"_Point");
m_pImport2VDatasetDlg->m_editLine.SetWindowText(strFileName+"_Line");
m_pImport2VDatasetDlg->m_editRegion.SetWindowText(strFileName+"_Region");
m_pImport2VDatasetDlg->m_editText.SetWindowText(strFileName+"_Text");
m_pImport2VDatasetDlg->m_strDatasourceName=strDatasourceName;
m_pImport2VDatasetDlg->m_bShowProgress=m_bShowProgress;
m_pImport2VDatasetDlg->m_nFileTypeIndex=m_nOldIndex;
}
void CImport1DatasetDlg::CreateImport2GDatasetDlg(CString strFileName,CString strDatasourceName)
{
m_pImport2GDatasetDlg=new CImport2GDatasetDlg;
m_pImport2GDatasetDlg->Create(IDD_IMPORT2GDLG);
m_pImport2GDatasetDlg->ShowWindow(TRUE);
m_pImport2GDatasetDlg->m_editLayerName.SetWindowText(strFileName);
m_pImport2GDatasetDlg->m_strDatasourceName=strDatasourceName;
m_pImport2GDatasetDlg->m_strPathName=m_strPathName;
m_pImport2GDatasetDlg->m_bShowProgress=m_bShowProgress;
m_pImport2GDatasetDlg->m_nFileTypeIndex=m_nOldIndex;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -