|
|
|
|
using ESRI.ArcGIS.ADF;
|
|
|
|
|
using ESRI.ArcGIS.Carto;
|
|
|
|
|
using ESRI.ArcGIS.DataSourcesFile;
|
|
|
|
|
using ESRI.ArcGIS.Geodatabase;
|
|
|
|
|
using KGIS.Framework.AE;
|
|
|
|
|
using KGIS.Framework.OpenData.Control;
|
|
|
|
|
using KGIS.Framework.OpenData.Filter;
|
|
|
|
|
using KGIS.Framework.OpenData.InterFace;
|
|
|
|
|
using Kingo.OpenData.Filter;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.ComponentModel;
|
|
|
|
|
using System.IO;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
using KGIS.Framework.Utils;
|
|
|
|
|
using KGIS.Framework.Utils.Helper;
|
|
|
|
|
using KGIS.Framework.Maps;
|
|
|
|
|
using Path = System.IO.Path;
|
|
|
|
|
using KGIS.Framework.Platform;
|
|
|
|
|
using Kingo.PluginServiceInterface;
|
|
|
|
|
using KGIS.Framework.AE.Enum;
|
|
|
|
|
using UIShell.OSGi;
|
|
|
|
|
using KGIS.Framework.DBOperator;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using KGIS.Framework.Utils.Utility;
|
|
|
|
|
using KUI.Windows;
|
|
|
|
|
using System.Runtime.InteropServices;
|
|
|
|
|
using Kingo.PluginServiceInterface.Helper.VCT;
|
|
|
|
|
using Kingo.PluginServiceInterface.Model;
|
|
|
|
|
|
|
|
|
|
namespace Kingo.Plugin.DataLoad.View
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 参考数据加载 的交互逻辑
|
|
|
|
|
/// </summary>
|
|
|
|
|
public partial class FrmLoadOtherData : BaseWindow
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
private IDataCatalogService _DataCatalog = null;
|
|
|
|
|
|
|
|
|
|
public bool shutDown = false;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 导入数据类型(mdb文件为空,Shape文件为Shape)
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string ImportDataType { get; set; }
|
|
|
|
|
|
|
|
|
|
private List<IFeatureClass> pSourceFCList;
|
|
|
|
|
|
|
|
|
|
private string TargetGDBPath = string.Empty;
|
|
|
|
|
private string SourceMDBPath { get; set; }
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 拷贝参考数据路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
private string TempFinalLocation { get; set; }
|
|
|
|
|
private List<ISpatialDataObject> TempSelection { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 当前工程参考数据路径
|
|
|
|
|
/// </summary>
|
|
|
|
|
private string projectOtherDataPath = string.Empty;
|
|
|
|
|
public FrmLoadOtherData()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
if (_DataCatalog == null)
|
|
|
|
|
_DataCatalog = BundleRuntime.Instance.GetFirstOrDefaultService<IDataCatalogService>();
|
|
|
|
|
BindOtherDataPath();
|
|
|
|
|
//隐藏复选框
|
|
|
|
|
cbCopyBaseData.Height = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region 最新数据加载
|
|
|
|
|
private void BindOtherDataPath()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
IWorkCatalog workCatalog = BundleRuntime.Instance.GetFirstOrDefaultService<IWorkCatalog>();
|
|
|
|
|
string code = (MapsManager.Instance.CurrProjectInfo as ProjectInfo).CODE;
|
|
|
|
|
string xzqmc = GetXZQMC(code);
|
|
|
|
|
string xzqDir = string.Format("{0}({1})", xzqmc, code);
|
|
|
|
|
if (workCatalog != null && !string.IsNullOrWhiteSpace(code))
|
|
|
|
|
{
|
|
|
|
|
string projectPath = Path.Combine(workCatalog.SaveWorkSapcePath, xzqDir, "参考数据");
|
|
|
|
|
if (Directory.Exists(projectPath))
|
|
|
|
|
{
|
|
|
|
|
List<string> dataPathList = new List<string>();
|
|
|
|
|
GetOtherDataPath(projectPath, dataPathList);
|
|
|
|
|
if (dataPathList.Count != 0)
|
|
|
|
|
{
|
|
|
|
|
this.cobDataBase.ItemsSource = dataPathList;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("获取参考数据文件失败:" + ex);
|
|
|
|
|
MessageHelper.Show("获取参考数据文件失败:" + ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private string GetXZQMC(string xzqdm)
|
|
|
|
|
{
|
|
|
|
|
string xzqmc = string.Empty;
|
|
|
|
|
KGIS.Framework.DBOperator.IRDBHelper rdbHelper = null;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string systemPath = SysAppPath.GetDataBasePath() + "System.mdb";
|
|
|
|
|
if (File.Exists(systemPath))
|
|
|
|
|
{
|
|
|
|
|
string connStr = SysConfigsOprator.GetDBConnectionByName("MDBOledbConnection");
|
|
|
|
|
connStr = string.Format(connStr, systemPath);
|
|
|
|
|
rdbHelper = RDBFactory.CreateDbHelper(connStr, DatabaseType.MSAccess);
|
|
|
|
|
//string strSQL = "select OBJECTID AS ID, XZQ AS CODE,XZQMC AS NAME from XZQ Where XZQ LIKE '" + xzqdm + "%'";
|
|
|
|
|
string strSQL = string.Format("select OBJECTID AS ID, XZQ AS CODE,XZQMC AS NAME from XZQ Where XZQ = '{0}'", xzqdm);
|
|
|
|
|
DataTable dt = rdbHelper.ExecuteDatatable("Dic", strSQL, true);
|
|
|
|
|
if (dt != null)
|
|
|
|
|
{
|
|
|
|
|
List<DataDicTionary> xzqCoderesult = TBToList.ToList<DataDicTionary>(dt);
|
|
|
|
|
foreach (var item in xzqCoderesult)
|
|
|
|
|
{
|
|
|
|
|
if (dt.Rows.Count == 1)
|
|
|
|
|
xzqmc = item.NAME;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
if (rdbHelper != null)
|
|
|
|
|
rdbHelper.DisConnect();
|
|
|
|
|
}
|
|
|
|
|
return xzqmc;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void GetOtherDataPath(string dirPath, List<string> pathList)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string[] dirArr = Directory.GetDirectories(dirPath);
|
|
|
|
|
string[] fileArr = Directory.GetFiles(dirPath);
|
|
|
|
|
|
|
|
|
|
// 遍历所有文件
|
|
|
|
|
if (fileArr.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
string fileName;
|
|
|
|
|
foreach (string file in fileArr)
|
|
|
|
|
{
|
|
|
|
|
fileName = Path.GetFileName(file);
|
|
|
|
|
if ((fileName.ToLower().Contains(".vct") || fileName.ToLower().Contains(".mdb")) && !pathList.Contains(file))
|
|
|
|
|
{
|
|
|
|
|
pathList.Add(file);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 遍历所有文件夹
|
|
|
|
|
if (dirArr.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
string folderName;
|
|
|
|
|
foreach (string dir in dirArr)
|
|
|
|
|
{
|
|
|
|
|
folderName = Path.GetFileName(dir);
|
|
|
|
|
if (folderName.ToLower().Contains(".gdb") && !pathList.Contains(dir))
|
|
|
|
|
{
|
|
|
|
|
pathList.Add(dir);
|
|
|
|
|
}
|
|
|
|
|
GetOtherDataPath(dir, pathList);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("获取参考数据文件失败:" + ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 文件路径加载切换事件
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
private void CobDataBase_SelectedIndexChanged(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (this.cobDataBase.ItemsSource != null)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
IFeatureClass pSourceFeatureClass = null;
|
|
|
|
|
if (this.cobDataBase.SelectedItem == null) return;
|
|
|
|
|
string selectedPath = this.cobDataBase.SelectedItem.ToString();
|
|
|
|
|
using (ComReleaser com = new ComReleaser())
|
|
|
|
|
{
|
|
|
|
|
IWorkspaceFactory pWorkspaceFactory = null;
|
|
|
|
|
IWorkspace pWorkspace = null;
|
|
|
|
|
IFeatureWorkspace pFeatureWorkspace = null;
|
|
|
|
|
if (string.IsNullOrWhiteSpace(ImportDataType))
|
|
|
|
|
ImportDataType = Path.GetExtension(selectedPath).ToUpper().Replace('.', ' ').TrimStart();
|
|
|
|
|
|
|
|
|
|
this.ShowLoading("正在打开数据文件...", 0, 0);
|
|
|
|
|
System.Threading.Thread.Sleep(1000);
|
|
|
|
|
string fileName = string.Empty;
|
|
|
|
|
if (string.IsNullOrWhiteSpace(ImportDataType))
|
|
|
|
|
{
|
|
|
|
|
ImportDataType = "Shape";
|
|
|
|
|
List<string> shpPathList = new List<string>();
|
|
|
|
|
if (shpPathList.Count == 0)
|
|
|
|
|
{
|
|
|
|
|
(this.cobDataBase.ItemsSource as List<string>).Remove(selectedPath);
|
|
|
|
|
this.cobDataBase.RefreshData();
|
|
|
|
|
MessageHelper.ShowError("当前路径错误,请重新选择!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (Directory.Exists(selectedPath))
|
|
|
|
|
{
|
|
|
|
|
string[] fileArr = Directory.GetFiles(selectedPath);
|
|
|
|
|
|
|
|
|
|
// 遍历所有文件
|
|
|
|
|
if (fileArr.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
foreach (string file in fileArr)
|
|
|
|
|
{
|
|
|
|
|
string extension = Path.GetExtension(file);
|
|
|
|
|
if (extension.ToLower() == ".shp" && !shpPathList.Contains(file))
|
|
|
|
|
{
|
|
|
|
|
shpPathList.Add(file);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pSourceFCList = new List<IFeatureClass>();
|
|
|
|
|
for (int i = 0; i < shpPathList.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
|
|
|
|
|
pWorkspace = pWorkspaceFactory.OpenFromFile(System.IO.Path.GetDirectoryName(shpPathList[i]), 0);
|
|
|
|
|
pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
|
|
|
|
|
string name = Path.GetFileName(shpPathList[i]);
|
|
|
|
|
pSourceFeatureClass = pFeatureWorkspace.OpenFeatureClass(name);
|
|
|
|
|
pSourceFCList.Add(pSourceFeatureClass);
|
|
|
|
|
fileName += name + ";";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (pSourceFCList.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
SetShapeTableMapping();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (!string.IsNullOrWhiteSpace(ImportDataType) && ImportDataType.Equals("Shape") && pSourceFCList.Count != 0)
|
|
|
|
|
{
|
|
|
|
|
SetShapeTableMapping();
|
|
|
|
|
}
|
|
|
|
|
else if (!string.IsNullOrWhiteSpace(ImportDataType) && ImportDataType.Equals("VCT"))
|
|
|
|
|
{
|
|
|
|
|
string TempMDBFolderPath = Path.GetTempPath();
|
|
|
|
|
string TempMDBPath = Path.Combine(TempMDBFolderPath, string.Format("{0}.mdb", Path.GetFileNameWithoutExtension(selectedPath)));
|
|
|
|
|
if (File.Exists(TempMDBPath))
|
|
|
|
|
{
|
|
|
|
|
File.Delete(TempMDBPath);
|
|
|
|
|
}
|
|
|
|
|
this.ShowLoading("正在解析VCT文件... ...", 0, 0);
|
|
|
|
|
VCTToMDBHelper3 vcttomdb = new VCTToMDBHelper3();
|
|
|
|
|
vcttomdb.RootPath = TempMDBFolderPath;
|
|
|
|
|
vcttomdb.VCTToMDB(selectedPath);
|
|
|
|
|
this.CloseLoading();
|
|
|
|
|
if (!File.Exists(TempMDBPath))
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowError("VCT文件解析失败");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
SourceMDBPath = TempMDBPath;
|
|
|
|
|
SetTableMapping();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
SetTableMapping();
|
|
|
|
|
}
|
|
|
|
|
this.CloseLoading();
|
|
|
|
|
com.ManageLifetime(pWorkspaceFactory);
|
|
|
|
|
com.ManageLifetime(pWorkspace);
|
|
|
|
|
com.ManageLifetime(pFeatureWorkspace);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("选择参考数据库失败:" + ex);
|
|
|
|
|
this.CloseLoading();
|
|
|
|
|
MessageHelper.Show("选择参考数据库失败:" + ex);
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
this.CloseLoading();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void SetTableMapping()
|
|
|
|
|
{
|
|
|
|
|
IWorkspaceAPI t_WsAPI = null;
|
|
|
|
|
IWorkspaceAPI s_WsAPI = null;
|
|
|
|
|
IFeatureClassAPI s_FCAPI = null;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
dgTableMapping.ItemsSource = null;
|
|
|
|
|
string s_MdbPath = null;
|
|
|
|
|
if (ImportDataType == "VCT")
|
|
|
|
|
{
|
|
|
|
|
s_MdbPath = SourceMDBPath;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (this.cobDataBase.SelectedItem != null)
|
|
|
|
|
s_MdbPath = this.cobDataBase.SelectedItem.ToString();
|
|
|
|
|
}
|
|
|
|
|
if ((ImportDataType == "MDB" || ImportDataType == "VCT") && !File.Exists(s_MdbPath))
|
|
|
|
|
{
|
|
|
|
|
this.CloseLoading();
|
|
|
|
|
MessageHelper.ShowTips("请确保文件存在,并且为mdb文件!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else if (ImportDataType == "GDB" && !Directory.Exists(s_MdbPath))
|
|
|
|
|
{
|
|
|
|
|
this.CloseLoading();
|
|
|
|
|
MessageHelper.ShowTips("请确保GDB文件夹存在!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (ImportDataType == "MDB" || ImportDataType == "VCT")
|
|
|
|
|
{
|
|
|
|
|
FileInfo s_MdbPathInfo = new FileInfo(s_MdbPath);
|
|
|
|
|
if (!s_MdbPathInfo.Extension.Equals(".mdb"))
|
|
|
|
|
{
|
|
|
|
|
this.CloseLoading();
|
|
|
|
|
MessageHelper.ShowTips("必须为mdb文件才能进行导入!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ImportDataType == "MDB" || ImportDataType == "VCT")
|
|
|
|
|
{
|
|
|
|
|
s_WsAPI = new WorkspaceAPI(s_MdbPath, WorkspaceTypeEnum.MDBFile);
|
|
|
|
|
}
|
|
|
|
|
else if (ImportDataType == "GDB" && Directory.Exists(s_MdbPath))
|
|
|
|
|
{
|
|
|
|
|
s_WsAPI = new WorkspaceAPI(s_MdbPath, WorkspaceTypeEnum.GDBFile);
|
|
|
|
|
}
|
|
|
|
|
else if (!Directory.Exists(s_MdbPath) && !File.Exists(s_MdbPath))
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<KeyAndValue> s_TbList = s_WsAPI.GetFeatureClassName(esriDatasetType.esriDTFeatureDataset).Where(x => !x.Value.StartsWith("TDQSQ") && !x.Value.StartsWith("JC_CZCDYD")).Select(x => new KeyAndValue() { S_Key = x.Key, S_Value = x.Value }).ToList();//周旺华 0424 排除TDQSQ导致的导入问题
|
|
|
|
|
Dictionary<string, string> s_TbList2 = s_WsAPI.GetFeatureClassName(esriDatasetType.esriDTFeatureClass);
|
|
|
|
|
Dictionary<string, string> s_TbList3 = s_WsAPI.GetFeatureClassName(esriDatasetType.esriDTTable);
|
|
|
|
|
foreach (string item in s_TbList2.Keys)
|
|
|
|
|
{
|
|
|
|
|
if (!s_TbList.Select(x => x.S_Value).Contains(item))
|
|
|
|
|
s_TbList.Add(new KeyAndValue() { S_Key = item, S_Value = s_TbList2[item] });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (s_TbList != null)
|
|
|
|
|
{
|
|
|
|
|
List<TableMapping> MappingList = new List<TableMapping>();
|
|
|
|
|
foreach (string key in s_TbList.Select(x => x.S_Key))
|
|
|
|
|
{
|
|
|
|
|
var s_keyvalue = s_TbList.FirstOrDefault(x => x.S_Key == key).S_Value;
|
|
|
|
|
TableMapping mapping = new TableMapping();
|
|
|
|
|
|
|
|
|
|
mapping.State = TBState.Waiting;
|
|
|
|
|
mapping.S_TableName = s_keyvalue;
|
|
|
|
|
mapping.S_TableAliasName = key;
|
|
|
|
|
|
|
|
|
|
if (s_TbList3.Values.Contains(mapping.S_TableName))
|
|
|
|
|
{
|
|
|
|
|
mapping.S_TableType = "Table";
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
s_FCAPI = s_WsAPI.OpenFeatureClass(s_keyvalue);
|
|
|
|
|
mapping.S_Spatial = (s_FCAPI.FeatureClass as IGeoDataset).SpatialReference.Name;
|
|
|
|
|
mapping.S_TableType = s_FCAPI.FeatureClass.ShapeType.ToString();
|
|
|
|
|
s_FCAPI.CloseFeatureClass();
|
|
|
|
|
}
|
|
|
|
|
mapping.T_TableName = s_keyvalue;
|
|
|
|
|
mapping.T_TableAliasName = key;
|
|
|
|
|
MappingList.Add(mapping);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
dgTableMapping.ItemsSource = MappingList;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
MessageHelper.ShowTips(ex.Message);
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
if (s_WsAPI != null)
|
|
|
|
|
s_WsAPI.CloseWorkspace();
|
|
|
|
|
if (t_WsAPI != null)
|
|
|
|
|
t_WsAPI.CloseWorkspace();
|
|
|
|
|
if (s_FCAPI != null)
|
|
|
|
|
{
|
|
|
|
|
s_FCAPI.CloseFeatureClass();
|
|
|
|
|
s_FCAPI = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void SetShapeTableMapping()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
dgTableMapping.ItemsSource = null;
|
|
|
|
|
List<TableMapping> MappingList = new List<TableMapping>();
|
|
|
|
|
foreach (IFeatureClass pSourceFeatureClass in pSourceFCList)
|
|
|
|
|
{
|
|
|
|
|
//pSourceFeatureClass.CheckArea();
|
|
|
|
|
TableMapping mapping = new TableMapping();
|
|
|
|
|
mapping.State = TBState.Waiting;
|
|
|
|
|
mapping.S_TableName = (pSourceFeatureClass as FeatureClass).Name;
|
|
|
|
|
mapping.S_TableAliasName = pSourceFeatureClass.AliasName;
|
|
|
|
|
|
|
|
|
|
mapping.S_Spatial = (pSourceFeatureClass as IGeoDataset).SpatialReference.Name;
|
|
|
|
|
mapping.S_TableType = pSourceFeatureClass.ShapeType.ToString();
|
|
|
|
|
|
|
|
|
|
mapping.T_TableName = (pSourceFeatureClass as FeatureClass).Name;
|
|
|
|
|
mapping.T_TableAliasName = pSourceFeatureClass.AliasName;
|
|
|
|
|
mapping.S_TableType = pSourceFeatureClass.ShapeType.ToString();
|
|
|
|
|
|
|
|
|
|
MappingList.Add(mapping);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dgTableMapping.ItemsSource = MappingList;
|
|
|
|
|
//JudgeIsTheSameSpatialReference();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
MessageHelper.ShowTips(ex.Message);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 重置导入
|
|
|
|
|
/// </summary>
|
|
|
|
|
public void ResetImport()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
//将选中的数据源地址清空
|
|
|
|
|
this.cobDataBase.SelectedItem = null;
|
|
|
|
|
//将映射关系置空
|
|
|
|
|
if (dgTableMapping != null)
|
|
|
|
|
{
|
|
|
|
|
if (dgTableMapping.ItemsSource != null)
|
|
|
|
|
{
|
|
|
|
|
dgTableMapping.ItemsSource = null;
|
|
|
|
|
}
|
|
|
|
|
dgTableMapping.UnselectAll();
|
|
|
|
|
dgTableMapping.RefreshData();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("重置 " + ImportDataType + " 的导入失败,异常原因: " + ex + " ; ");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 全选和反选事件
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
private void chkSelectedAll_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (this.dgTableMapping == null || (dgTableMapping.ItemsSource as List<TableMapping>) == null)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
List<TableMapping> listTableMapping = (dgTableMapping.ItemsSource as List<TableMapping>);
|
|
|
|
|
bool check = (sender as DevExpress.Xpf.Editors.CheckEdit).IsChecked == null ? false : bool.Parse((sender as DevExpress.Xpf.Editors.CheckEdit).IsChecked.Value.ToString());
|
|
|
|
|
if (check)
|
|
|
|
|
{
|
|
|
|
|
listTableMapping.ForEach(x => x.State = TBState.Waiting);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
listTableMapping.ForEach(x => x.State = TBState.Delete);
|
|
|
|
|
}
|
|
|
|
|
dgTableMapping.RefreshData();
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("全选发生异常:" + ex.Message);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void BtnLoad_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
//外部数据拷贝至工作目录参考数据文件夹
|
|
|
|
|
if (this.cbCopyBaseData.IsChecked == true && TempSelection != null)
|
|
|
|
|
{
|
|
|
|
|
IWorkCatalog workCatalog = BundleRuntime.Instance.GetFirstOrDefaultService<IWorkCatalog>();
|
|
|
|
|
string code = (MapsManager.Instance.CurrProjectInfo as ProjectInfo).CODE;
|
|
|
|
|
string xzqmc = GetXZQMC(code);
|
|
|
|
|
string xzqDir = string.Format("{0}({1})", xzqmc, code);
|
|
|
|
|
if (workCatalog != null && !string.IsNullOrWhiteSpace(code))
|
|
|
|
|
{
|
|
|
|
|
projectOtherDataPath = Path.Combine(workCatalog.SaveWorkSapcePath, xzqDir, "参考数据");
|
|
|
|
|
if (!Directory.Exists(projectOtherDataPath))
|
|
|
|
|
Directory.CreateDirectory(projectOtherDataPath);
|
|
|
|
|
|
|
|
|
|
if (ImportDataType == "GDB")
|
|
|
|
|
{
|
|
|
|
|
DirectoryCopy(TempFinalLocation, projectOtherDataPath);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
for (int i = 0; i < TempSelection.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
string name = Path.GetFileName(TempSelection[i].FullName);
|
|
|
|
|
string nameWithoutExtension = Path.GetFileNameWithoutExtension(TempSelection[i].FullName);
|
|
|
|
|
if (ImportDataType == "SHP")
|
|
|
|
|
{
|
|
|
|
|
string shpDir = Path.GetDirectoryName(TempSelection[i].FullName);
|
|
|
|
|
string[] fileArr = Directory.GetFiles(shpDir);
|
|
|
|
|
for (int j = 0; j < fileArr.Length; j++)
|
|
|
|
|
{
|
|
|
|
|
string name2 = Path.GetFileName(fileArr[j]);
|
|
|
|
|
string name2WithoutExtension = Path.GetFileNameWithoutExtension(fileArr[j]);
|
|
|
|
|
if (nameWithoutExtension == name2WithoutExtension)
|
|
|
|
|
File.Copy(fileArr[j], projectOtherDataPath + "\\" + name2, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
File.Copy(TempSelection[i].FullName, projectOtherDataPath + "\\" + name, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(ImportDataType) && ImportDataType.Equals("Shape"))
|
|
|
|
|
{
|
|
|
|
|
LoadShpData();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
LoadData();
|
|
|
|
|
}
|
|
|
|
|
//刷新视图
|
|
|
|
|
//Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "RefreshLayer" });
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowError(ex.Message);
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void LoadData()
|
|
|
|
|
{
|
|
|
|
|
this.btnLoad.IsEnabled = false;
|
|
|
|
|
List<TableMapping> mapping = dgTableMapping.ItemsSource as List<TableMapping>;
|
|
|
|
|
IWorkspaceAPI pSourceWsAPI = null;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (this.cobDataBase.SelectedItem == null)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("请先选择要导入的参考数据!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (ImportDataType == "GDB")
|
|
|
|
|
{
|
|
|
|
|
if ((Directory.Exists(this.cobDataBase.SelectedItem.ToString()) == false) || this.cobDataBase.SelectedItem.ToString().ToLower().EndsWith(".gdb") == false)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("无效的 " + ImportDataType + " 数据源");
|
|
|
|
|
this.cobDataBase.SelectedItem = null;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
else//MDB/VCT/DCSJ
|
|
|
|
|
{
|
|
|
|
|
if (File.Exists(this.cobDataBase.SelectedItem.ToString()) == false)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("无效的 " + ImportDataType + " 数据源");
|
|
|
|
|
this.cobDataBase.SelectedItem = null;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string s_MdbPath = null;
|
|
|
|
|
if (ImportDataType == "VCT")
|
|
|
|
|
{
|
|
|
|
|
s_MdbPath = SourceMDBPath;
|
|
|
|
|
}
|
|
|
|
|
else if (this.cobDataBase.SelectedItem != null)
|
|
|
|
|
{
|
|
|
|
|
s_MdbPath = this.cobDataBase.SelectedItem.ToString();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace(s_MdbPath)) return;
|
|
|
|
|
if (ImportDataType == "MDB" || ImportDataType == "VCT" || ImportDataType == "DCSJ")
|
|
|
|
|
{
|
|
|
|
|
if (!File.Exists(s_MdbPath)) return;
|
|
|
|
|
pSourceWsAPI = new WorkspaceAPI(s_MdbPath, WorkspaceTypeEnum.MDBFile);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (!Directory.Exists(s_MdbPath)) return;
|
|
|
|
|
pSourceWsAPI = new WorkspaceAPI(s_MdbPath, WorkspaceTypeEnum.GDBFile);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (mapping != null)
|
|
|
|
|
{
|
|
|
|
|
//循环导入要素类
|
|
|
|
|
string message = string.Empty;
|
|
|
|
|
string errorMessage = string.Empty;
|
|
|
|
|
int SuccessImportLayerCount = 0;
|
|
|
|
|
int DeletedImportLayerCount = 0;
|
|
|
|
|
int FailImportLayerCount = 0;
|
|
|
|
|
ILayer layer = MapsManager.Instance.MapService.GetGroupLayer("CKSJ");//获取参考数据图层组
|
|
|
|
|
LayerCfg GroupLayerInfo = null;
|
|
|
|
|
if (_DataCatalog != null)
|
|
|
|
|
{
|
|
|
|
|
_DataCatalog.GetNodeByLayer(layer);
|
|
|
|
|
LayerCfg rootLayer = _DataCatalog.CurrentLayers as LayerCfg;
|
|
|
|
|
List<LayerCfg> AllLayers = rootLayer.GetAllItem();
|
|
|
|
|
GroupLayerInfo = AllLayers.FirstOrDefault(f => f.LayerName == layer.Name);
|
|
|
|
|
}
|
|
|
|
|
foreach (TableMapping table in mapping)
|
|
|
|
|
{
|
|
|
|
|
if (shutDown)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (table.State == TBState.Delete) continue;
|
|
|
|
|
if (string.IsNullOrWhiteSpace(table.T_TableName) || table.T_TableName == "null" || string.IsNullOrWhiteSpace(table.T_TableAliasName))
|
|
|
|
|
continue;
|
|
|
|
|
dgTableMapping.SelectedItem = table;
|
|
|
|
|
dgTableMapping.View.ScrollIntoView(dgTableMapping.SelectedItem);
|
|
|
|
|
System.Windows.Forms.Application.DoEvents();
|
|
|
|
|
table.State = TBState.BeingImport;
|
|
|
|
|
|
|
|
|
|
if (AddLayerToMap(GroupLayerInfo, table, pSourceWsAPI, ref message, ref errorMessage, ref FailImportLayerCount))
|
|
|
|
|
{
|
|
|
|
|
table.State = TBState.EndImport;
|
|
|
|
|
SuccessImportLayerCount++;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
table.State = TBState.Delete;
|
|
|
|
|
DeletedImportLayerCount++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (_DataCatalog != null)
|
|
|
|
|
{
|
|
|
|
|
if (GroupLayerInfo.Layers.Count > 0)
|
|
|
|
|
GroupLayerInfo.Expanded = true;//添加数据时展开
|
|
|
|
|
_DataCatalog.UpdateTree();
|
|
|
|
|
}
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(errorMessage))
|
|
|
|
|
{
|
|
|
|
|
int TotalImportLayerCount = SuccessImportLayerCount + DeletedImportLayerCount + FailImportLayerCount;
|
|
|
|
|
errorMessage = string.Format("共导入{0}个图层,成功{1}个,删除{2}个,失败{3}个。", TotalImportLayerCount, SuccessImportLayerCount,
|
|
|
|
|
DeletedImportLayerCount, FailImportLayerCount) + errorMessage;
|
|
|
|
|
MessageHelper.Show(errorMessage, true);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
int TotalImportLayerCount = SuccessImportLayerCount + DeletedImportLayerCount + FailImportLayerCount;
|
|
|
|
|
message = string.Format("共导入{0}个图层,成功{1}个,删除{2}个,失败{3}个。", TotalImportLayerCount, SuccessImportLayerCount,
|
|
|
|
|
DeletedImportLayerCount, FailImportLayerCount) + message;
|
|
|
|
|
MessageHelper.Show(message, true);
|
|
|
|
|
}
|
|
|
|
|
Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "SaveProject" });
|
|
|
|
|
//这里设置关闭
|
|
|
|
|
this.Close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("导入 " + ImportDataType + " 数据时失败,异常原因: " + ex + " ; ");
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
this.btnLoad.IsEnabled = true;
|
|
|
|
|
if (pSourceWsAPI != null)
|
|
|
|
|
{
|
|
|
|
|
pSourceWsAPI.CloseWorkspace();
|
|
|
|
|
}
|
|
|
|
|
if (mapping != null && mapping.Count() > 0)
|
|
|
|
|
{
|
|
|
|
|
mapping = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void LoadShpData()
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string str = "1234567890";
|
|
|
|
|
if (dgTableMapping.ItemsSource is List<TableMapping> mapping)
|
|
|
|
|
{
|
|
|
|
|
//循环导入要素类
|
|
|
|
|
string message = string.Empty;
|
|
|
|
|
string errorMessage = string.Empty;
|
|
|
|
|
int SuccessImportLayerCount = 0;
|
|
|
|
|
int DeletedImportLayerCount = 0;
|
|
|
|
|
int FailImportLayerCount = 0;
|
|
|
|
|
|
|
|
|
|
ILayer layer = MapsManager.Instance.MapService.GetGroupLayer("CKSJ");//获取参考数据图层组
|
|
|
|
|
LayerCfg GroupLayerInfo = null;
|
|
|
|
|
if (_DataCatalog != null)
|
|
|
|
|
{
|
|
|
|
|
_DataCatalog.GetNodeByLayer(layer);
|
|
|
|
|
LayerCfg rootLayer = _DataCatalog.CurrentLayers as LayerCfg;
|
|
|
|
|
List<LayerCfg> AllLayers = rootLayer.GetAllItem();
|
|
|
|
|
GroupLayerInfo = AllLayers.FirstOrDefault(f => f.LayerName == layer.Name);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach (TableMapping table in mapping)
|
|
|
|
|
{
|
|
|
|
|
//增加控制,以数字开头的图层不能追加到当前工程。对应bug11125
|
|
|
|
|
if (str.Contains(table.S_TableName.Substring(0, 1)) && table.T_TableName == "Add")
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("以数字开头的图层不能追加到当前工程!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (shutDown)
|
|
|
|
|
{
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (table.State == TBState.Delete)
|
|
|
|
|
continue;
|
|
|
|
|
if (string.IsNullOrWhiteSpace(table.T_TableName) || table.T_TableName == "null" || string.IsNullOrWhiteSpace(table.T_TableAliasName))
|
|
|
|
|
continue;
|
|
|
|
|
dgTableMapping.SelectedItem = table;
|
|
|
|
|
dgTableMapping.View.ScrollIntoView(dgTableMapping.SelectedItem);
|
|
|
|
|
System.Windows.Forms.Application.DoEvents();
|
|
|
|
|
table.State = TBState.BeingImport;
|
|
|
|
|
if (AddShpToMap(GroupLayerInfo, table, ref message, ref errorMessage, ref FailImportLayerCount))
|
|
|
|
|
{
|
|
|
|
|
table.State = TBState.EndImport;
|
|
|
|
|
SuccessImportLayerCount++;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
table.State = TBState.Delete;
|
|
|
|
|
SuccessImportLayerCount++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (_DataCatalog != null)
|
|
|
|
|
{
|
|
|
|
|
if (GroupLayerInfo.Layers.Count > 0)
|
|
|
|
|
GroupLayerInfo.Expanded = true;
|
|
|
|
|
_DataCatalog.UpdateTree();
|
|
|
|
|
}
|
|
|
|
|
MapsManager.Instance.MapService.getAxMapControl().Refresh();
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(errorMessage))
|
|
|
|
|
{
|
|
|
|
|
int TotalImportLayerCount = SuccessImportLayerCount + DeletedImportLayerCount + FailImportLayerCount;
|
|
|
|
|
errorMessage = string.Format("共导入{0}个图层,成功{1}个,删除{2}个,失败{3}个。", TotalImportLayerCount, SuccessImportLayerCount,
|
|
|
|
|
DeletedImportLayerCount, FailImportLayerCount) + errorMessage;
|
|
|
|
|
MessageHelper.Show(errorMessage, true);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
int TotalImportLayerCount = SuccessImportLayerCount + DeletedImportLayerCount + FailImportLayerCount;
|
|
|
|
|
message = string.Format("共导入{0}个图层,成功{1}个,删除{2}个,失败{3}个。", TotalImportLayerCount, SuccessImportLayerCount,
|
|
|
|
|
DeletedImportLayerCount, FailImportLayerCount) + message;
|
|
|
|
|
MessageHelper.Show(message, true);
|
|
|
|
|
}
|
|
|
|
|
Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "SaveProject" });
|
|
|
|
|
//这里设置关闭
|
|
|
|
|
this.Close();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (this.cobDataBase.SelectedItem == null)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("请先选择 Shape 数据源");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
string s_MdbPath_T2 = this.cobDataBase.SelectedItem.ToString();
|
|
|
|
|
if (string.IsNullOrWhiteSpace(s_MdbPath_T2) == true)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("请先选择 Shape 数据源");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (Directory.Exists(s_MdbPath_T2) == false)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("选择的 Shape 数据源不存在");
|
|
|
|
|
(this.cobDataBase.ItemsSource as List<string>).Remove(s_MdbPath_T2);// = null;
|
|
|
|
|
this.cobDataBase.RefreshData();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//判断目录下有没有shape文件
|
|
|
|
|
string[] strFiles = Directory.GetFiles(s_MdbPath_T2);
|
|
|
|
|
int iFileDirs = strFiles.Count();
|
|
|
|
|
List<string> ShapeFileNameList = strFiles.ToList();
|
|
|
|
|
|
|
|
|
|
if (ShapeFileNameList == null || ShapeFileNameList.Count <= 0)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("Shape 数据源不能为空");
|
|
|
|
|
(this.cobDataBase.ItemsSource as List<string>).Remove(s_MdbPath_T2);// = null;
|
|
|
|
|
this.cobDataBase.RefreshData();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
bool bHaveShp = false;
|
|
|
|
|
foreach (string strFile in strFiles)
|
|
|
|
|
{
|
|
|
|
|
if (strFile.ToLower().EndsWith(".shp") == true)
|
|
|
|
|
{
|
|
|
|
|
bHaveShp = true;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (bHaveShp == false)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowTips("Shape 数据源不能为空");
|
|
|
|
|
(this.cobDataBase.ItemsSource as List<string>).Remove(s_MdbPath_T2);// = null;
|
|
|
|
|
this.cobDataBase.RefreshData();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
throw ex;
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
if (pSourceFCList != null && pSourceFCList.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
using (ESRI.ArcGIS.ADF.ComReleaser com = new ComReleaser())
|
|
|
|
|
{
|
|
|
|
|
foreach (IFeatureClass item in pSourceFCList)
|
|
|
|
|
{
|
|
|
|
|
com.ManageLifetime(item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.CloseLoading();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private bool AddLayerToMap(LayerCfg cksjGroupLayer, TableMapping pTbMaping, IWorkspaceAPI pSourceWsAPI, ref string message, ref string errorMessage, ref int FailImportLayerCount)
|
|
|
|
|
{
|
|
|
|
|
if (pSourceWsAPI == null || pSourceWsAPI.CurrentWorkspace == null || cksjGroupLayer == null)
|
|
|
|
|
return false;
|
|
|
|
|
IFeatureClassAPI s_FcAPI = null;
|
|
|
|
|
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(pTbMaping.S_TableName) && !string.IsNullOrWhiteSpace(pTbMaping.T_TableName))
|
|
|
|
|
{
|
|
|
|
|
s_FcAPI = pSourceWsAPI.OpenFeatureClass(pTbMaping.S_TableName);
|
|
|
|
|
if (s_FcAPI != null && s_FcAPI.FeatureClass != null)
|
|
|
|
|
{
|
|
|
|
|
IFeatureLayer pTargetLayer = new FeatureLayer
|
|
|
|
|
{
|
|
|
|
|
FeatureClass = s_FcAPI.FeatureClass,
|
|
|
|
|
Name = pTbMaping.T_TableAliasName
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
ILegendInfo pLegendInfo = pTargetLayer as ILegendInfo;
|
|
|
|
|
int legendGroupCount = pLegendInfo.LegendGroupCount;
|
|
|
|
|
ILegendGroup pLGroup;
|
|
|
|
|
for (int i = 0; i < legendGroupCount; i++)
|
|
|
|
|
{
|
|
|
|
|
pLGroup = pLegendInfo.get_LegendGroup(i);
|
|
|
|
|
pLGroup.Visible = false;
|
|
|
|
|
}
|
|
|
|
|
if (cksjGroupLayer.Data is IGroupLayer groupLayer)
|
|
|
|
|
{
|
|
|
|
|
ICompositeLayer pComLayer = groupLayer as ICompositeLayer;
|
|
|
|
|
for (int i = 0; i < pComLayer.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
ILayer layer = pComLayer.Layer[i];
|
|
|
|
|
if ((layer as IDataset).BrowseName == pTbMaping.S_TableName)
|
|
|
|
|
{
|
|
|
|
|
groupLayer.Delete(layer);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (_DataCatalog != null)
|
|
|
|
|
{
|
|
|
|
|
//object parentLayer = _DataCatalog.GetNodeByLayer(ncsjGroupLayer);
|
|
|
|
|
_DataCatalog.AddLayer(pTargetLayer, cksjGroupLayer);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
FailImportLayerCount++;
|
|
|
|
|
errorMessage += (pTbMaping.S_TableName + "图层数据导入异常!" + ex.Message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
if (s_FcAPI != null)
|
|
|
|
|
s_FcAPI.CloseFeatureClass();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public List<T> GetSubLayer<T>(ICompositeLayer group)
|
|
|
|
|
{
|
|
|
|
|
List<T> result = new List<T>();
|
|
|
|
|
for (int i = 0; i < group.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
var item = group.Layer[i];
|
|
|
|
|
if (item is ICompositeLayer)
|
|
|
|
|
{
|
|
|
|
|
result.AddRange(GetSubLayer<T>(item as ICompositeLayer));
|
|
|
|
|
}
|
|
|
|
|
else if (item is T)
|
|
|
|
|
{
|
|
|
|
|
result.Add((T)item);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private bool AddShpToMap(LayerCfg cksjGroupLayer, TableMapping pTbMaping, ref string message, ref string errorMessage, ref int FailImportLayerCount)
|
|
|
|
|
{
|
|
|
|
|
if (pSourceFCList == null || cksjGroupLayer == null)
|
|
|
|
|
return false;
|
|
|
|
|
IFeatureClassAPI t_FcAPI = null;
|
|
|
|
|
IFeatureClass pSourceFeatureClass = null;
|
|
|
|
|
string currentFiled = string.Empty;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(pTbMaping.S_TableName) && !string.IsNullOrWhiteSpace(pTbMaping.T_TableName))
|
|
|
|
|
{
|
|
|
|
|
pSourceFeatureClass = pSourceFCList.Where(p => (p as FeatureClass).Name.Equals(pTbMaping.S_TableName) || p.AliasName.Equals(pTbMaping.S_TableName)).Single();
|
|
|
|
|
if (pSourceFeatureClass == null)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
IFeatureLayer pTargetLayer = new FeatureLayer();
|
|
|
|
|
pTargetLayer.FeatureClass = pSourceFeatureClass;
|
|
|
|
|
pTargetLayer.Name = pTbMaping.T_TableAliasName;
|
|
|
|
|
|
|
|
|
|
ILegendInfo pLegendInfo = pTargetLayer as ILegendInfo;
|
|
|
|
|
int legendGroupCount = pLegendInfo.LegendGroupCount;
|
|
|
|
|
ILegendGroup pLGroup;
|
|
|
|
|
for (int i = 0; i < legendGroupCount; i++)
|
|
|
|
|
{
|
|
|
|
|
pLGroup = pLegendInfo.get_LegendGroup(i);
|
|
|
|
|
pLGroup.Visible = false;
|
|
|
|
|
}
|
|
|
|
|
//IGroupLayer groupLayer = cksjGroupLayer as IGroupLayer;
|
|
|
|
|
//if (groupLayer != null)
|
|
|
|
|
//{
|
|
|
|
|
// ICompositeLayer pComLayer = groupLayer as ICompositeLayer;
|
|
|
|
|
// for (int i = 0; i < pComLayer.Count; i++)
|
|
|
|
|
// {
|
|
|
|
|
// ILayer layer = pComLayer.Layer[i];
|
|
|
|
|
// if ((layer as IDataset).BrowseName == pTbMaping.S_TableName)
|
|
|
|
|
// {
|
|
|
|
|
// groupLayer.Delete(layer);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//}
|
|
|
|
|
//groupLayer.Add(pTargetLayer);
|
|
|
|
|
_DataCatalog.AddLayer(pTargetLayer, cksjGroupLayer);
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
FailImportLayerCount++;
|
|
|
|
|
errorMessage += (pTbMaping.S_TableName + "图层数据导入异常!" + ex.Message);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
if (t_FcAPI != null)
|
|
|
|
|
t_FcAPI.CloseFeatureClass();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 选择本地的参考数据
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
private void btnSelectedOtherData_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (ComReleaser com = new ComReleaser())
|
|
|
|
|
{
|
|
|
|
|
IWorkspaceFactory pWorkspaceFactory = null;
|
|
|
|
|
IWorkspace pWorkspace = null;
|
|
|
|
|
IFeatureWorkspace pFeatureWorkspace = null;
|
|
|
|
|
IFeatureClass pSourceFeatureClass = null;
|
|
|
|
|
List<string> otherDataPathList = new List<string>();
|
|
|
|
|
OpenDataDialog pDialog = new OpenDataDialog();
|
|
|
|
|
ISpatialDataObjectFilter pOFilter = new FilterShapefiles();//Shape文件模式
|
|
|
|
|
pDialog.AddFilter(pOFilter, true);
|
|
|
|
|
pOFilter = new FilterGeoDatabasePersonal();//mdb文件模式
|
|
|
|
|
pDialog.AddFilter(pOFilter, true);
|
|
|
|
|
//pOFilter = new FilterVCTFile();///VCT文件模式
|
|
|
|
|
//pDialog.AddFilter(pOFilter, true);
|
|
|
|
|
pOFilter = new FilterGeoDatabaseFile();//GDB文件格式
|
|
|
|
|
pDialog.AddFilter(pOFilter, true);
|
|
|
|
|
pDialog.AllowMultiSelect = false;
|
|
|
|
|
pDialog.Title = "选择其他参考数据";
|
|
|
|
|
pDialog.RestoreLocation = true;
|
|
|
|
|
pDialog.StartLocation = pDialog.FinalLocation;
|
|
|
|
|
System.Windows.Forms.DialogResult dialogResult = pDialog.ShowDialog();
|
|
|
|
|
if (dialogResult == System.Windows.Forms.DialogResult.OK && pDialog.Selection.Count != 0)
|
|
|
|
|
{
|
|
|
|
|
ResetImport();
|
|
|
|
|
TempSelection = pDialog.Selection;
|
|
|
|
|
TempFinalLocation = pDialog.FinalLocation;
|
|
|
|
|
ImportDataType = Path.GetExtension(pDialog.FinalLocation).ToUpper().Replace('.', ' ').TrimStart();
|
|
|
|
|
if (string.IsNullOrWhiteSpace(ImportDataType) || (ImportDataType != "VCT" && ImportDataType != "GDB" && ImportDataType != "MDB" && ImportDataType != "SHP"))
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.Show("选择的数据路径有误,请根据过滤条件,重新选择数据库!!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (ImportDataType == "SHP")
|
|
|
|
|
{
|
|
|
|
|
ImportDataType = "Shape";
|
|
|
|
|
}
|
|
|
|
|
this.cobDataBase.ItemsSource = null;
|
|
|
|
|
|
|
|
|
|
string fileName = string.Empty;
|
|
|
|
|
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(ImportDataType) && ImportDataType.Equals("Shape"))
|
|
|
|
|
{
|
|
|
|
|
pSourceFCList = new List<IFeatureClass>();
|
|
|
|
|
for (int i = 0; i < pDialog.Selection.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
|
|
|
|
|
pWorkspace = pWorkspaceFactory.OpenFromFile(Path.GetDirectoryName(pDialog.Selection[i].FullName), 0);
|
|
|
|
|
pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
|
|
|
|
|
pSourceFeatureClass = pFeatureWorkspace.OpenFeatureClass(pDialog.Selection[i].Name);
|
|
|
|
|
pSourceFCList.Add(pSourceFeatureClass);
|
|
|
|
|
fileName += pDialog.Selection[i].Name + ";";
|
|
|
|
|
}
|
|
|
|
|
otherDataPathList.Add(fileName);
|
|
|
|
|
if (pSourceFCList.Count != 0 && otherDataPathList.Count != 0)
|
|
|
|
|
{
|
|
|
|
|
this.cobDataBase.ItemsSource = null;
|
|
|
|
|
this.cobDataBase.ItemsSource = otherDataPathList;
|
|
|
|
|
this.cobDataBase.SelectedIndex = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else if (!string.IsNullOrWhiteSpace(ImportDataType) && ImportDataType.Equals("VCT"))
|
|
|
|
|
{
|
|
|
|
|
string TempMDBFolderPath = Path.GetTempPath();
|
|
|
|
|
string TempMDBPath = Path.Combine(TempMDBFolderPath, string.Format("{0}.mdb", Path.GetFileNameWithoutExtension(pDialog.FinalLocation)));
|
|
|
|
|
if (File.Exists(TempMDBPath))
|
|
|
|
|
{
|
|
|
|
|
File.Delete(TempMDBPath);
|
|
|
|
|
}
|
|
|
|
|
//this.ShowLoading("正在解析VCT文件... ...", 0, 0);
|
|
|
|
|
VCTToMDBHelper3 vcttomdb = new VCTToMDBHelper3();
|
|
|
|
|
vcttomdb.RootPath = TempMDBFolderPath;
|
|
|
|
|
vcttomdb.VCTToMDB(pDialog.FinalLocation);
|
|
|
|
|
this.CloseLoading();
|
|
|
|
|
if (!File.Exists(TempMDBPath))
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowError("VCT文件解析失败");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
SourceMDBPath = TempMDBPath;
|
|
|
|
|
otherDataPathList.Add(pDialog.FinalLocation);
|
|
|
|
|
this.cobDataBase.ItemsSource = null;
|
|
|
|
|
this.cobDataBase.ItemsSource = otherDataPathList;
|
|
|
|
|
this.cobDataBase.SelectedIndex = 0;
|
|
|
|
|
SetTableMapping();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
otherDataPathList.Add(pDialog.FinalLocation);
|
|
|
|
|
this.cobDataBase.ItemsSource = null;
|
|
|
|
|
this.cobDataBase.ItemsSource = otherDataPathList;
|
|
|
|
|
this.cobDataBase.SelectedIndex = 0;
|
|
|
|
|
SetTableMapping();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (pWorkspaceFactory != null)
|
|
|
|
|
{
|
|
|
|
|
com.ManageLifetime(pWorkspaceFactory);
|
|
|
|
|
Marshal.ReleaseComObject(pWorkspaceFactory);
|
|
|
|
|
}
|
|
|
|
|
if (pWorkspace != null)
|
|
|
|
|
{
|
|
|
|
|
com.ManageLifetime(pWorkspace);
|
|
|
|
|
Marshal.ReleaseComObject(pWorkspace);
|
|
|
|
|
}
|
|
|
|
|
if (pFeatureWorkspace != null)
|
|
|
|
|
{
|
|
|
|
|
com.ManageLifetime(pFeatureWorkspace);
|
|
|
|
|
Marshal.ReleaseComObject(pFeatureWorkspace);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("选择参考数据库失败:" + ex);
|
|
|
|
|
MessageHelper.Show("选择参考数据库失败:" + ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void BtnSelectedShpData_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
using (ComReleaser com = new ComReleaser())
|
|
|
|
|
{
|
|
|
|
|
IWorkspaceFactory pWorkspaceFactory = null;
|
|
|
|
|
IWorkspace pWorkspace = null;
|
|
|
|
|
IFeatureWorkspace pFeatureWorkspace = null;
|
|
|
|
|
IFeatureClass pSourceFeatureClass = null;
|
|
|
|
|
List<string> baseDataPathList = new List<string>();
|
|
|
|
|
OpenDataDialog pDialog = new OpenDataDialog();
|
|
|
|
|
ISpatialDataObjectFilter pOFilter = new FilterShapefiles();//Shape文件模式
|
|
|
|
|
pDialog.AddFilter(pOFilter, true);
|
|
|
|
|
pDialog.AllowMultiSelect = true;
|
|
|
|
|
pDialog.Title = "选择其他参考数据";
|
|
|
|
|
pDialog.RestoreLocation = true;
|
|
|
|
|
pDialog.StartLocation = pDialog.FinalLocation;
|
|
|
|
|
System.Windows.Forms.DialogResult dialogResult = pDialog.ShowDialog();
|
|
|
|
|
if (dialogResult == System.Windows.Forms.DialogResult.OK && pDialog.Selection.Count != 0)
|
|
|
|
|
{
|
|
|
|
|
TempSelection = pDialog.Selection;
|
|
|
|
|
TempFinalLocation = pDialog.FinalLocation;
|
|
|
|
|
ImportDataType = Path.GetExtension(pDialog.FinalLocation).ToUpper().Replace('.', ' ').TrimStart();
|
|
|
|
|
if (string.IsNullOrWhiteSpace(ImportDataType) || (ImportDataType != "VCT" && ImportDataType != "GDB" && ImportDataType != "MDB" && ImportDataType != "SHP"))
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.Show("选择的数据路径有误,请根据过滤条件,重新选择数据库!!");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (ImportDataType == "SHP")
|
|
|
|
|
{
|
|
|
|
|
ImportDataType = "Shape";
|
|
|
|
|
}
|
|
|
|
|
this.cobDataBase.ItemsSource = null;
|
|
|
|
|
string fileName = string.Empty;
|
|
|
|
|
if (!string.IsNullOrWhiteSpace(ImportDataType) && ImportDataType.Equals("Shape"))
|
|
|
|
|
{
|
|
|
|
|
pSourceFCList = new List<IFeatureClass>();
|
|
|
|
|
for (int i = 0; i < pDialog.Selection.Count; i++)
|
|
|
|
|
{
|
|
|
|
|
pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
|
|
|
|
|
pWorkspace = pWorkspaceFactory.OpenFromFile(Path.GetDirectoryName(pDialog.Selection[i].FullName), 0);
|
|
|
|
|
pFeatureWorkspace = pWorkspace as IFeatureWorkspace;
|
|
|
|
|
pSourceFeatureClass = pFeatureWorkspace.OpenFeatureClass(pDialog.Selection[i].Name);
|
|
|
|
|
pSourceFCList.Add(pSourceFeatureClass);
|
|
|
|
|
fileName += pDialog.Selection[i].Name + ";";
|
|
|
|
|
}
|
|
|
|
|
baseDataPathList.Add(fileName);
|
|
|
|
|
if (pSourceFCList.Count != 0 && baseDataPathList.Count != 0)
|
|
|
|
|
{
|
|
|
|
|
this.cobDataBase.ItemsSource = baseDataPathList;
|
|
|
|
|
this.cobDataBase.SelectedIndex = 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
com.ManageLifetime(pWorkspaceFactory);
|
|
|
|
|
com.ManageLifetime(pWorkspace);
|
|
|
|
|
com.ManageLifetime(pFeatureWorkspace);
|
|
|
|
|
|
|
|
|
|
Marshal.ReleaseComObject(pWorkspaceFactory);
|
|
|
|
|
Marshal.ReleaseComObject(pWorkspace);
|
|
|
|
|
Marshal.ReleaseComObject(pFeatureWorkspace);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("选择参考数据库失败:" + ex);
|
|
|
|
|
MessageHelper.Show("选择参考数据库失败:" + ex);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public bool DirectoryCopy(string sourceDir, string targetDirPath)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
if (!System.IO.Directory.Exists(sourceDir)) return false;
|
|
|
|
|
string targetDir = System.IO.Path.Combine(targetDirPath, System.IO.Path.GetFileName(sourceDir));
|
|
|
|
|
if (!System.IO.Directory.Exists(targetDir))
|
|
|
|
|
{
|
|
|
|
|
System.IO.Directory.CreateDirectory(targetDir);
|
|
|
|
|
}
|
|
|
|
|
// 文件及文件夹名称数组
|
|
|
|
|
string[] dirArr = System.IO.Directory.GetDirectories(sourceDir);
|
|
|
|
|
string[] fileArr = System.IO.Directory.GetFiles(sourceDir);
|
|
|
|
|
// 遍历复制所有文件
|
|
|
|
|
if (fileArr.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
string fileName;
|
|
|
|
|
foreach (string fileDir in fileArr)
|
|
|
|
|
{
|
|
|
|
|
fileName = System.IO.Path.GetFileName(fileDir);
|
|
|
|
|
System.IO.File.Copy(sourceDir + "\\" + fileName, targetDir + "\\" + fileName, true);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 遍历复制所有文件夹
|
|
|
|
|
if (dirArr.Length > 0)
|
|
|
|
|
{
|
|
|
|
|
string folderName;
|
|
|
|
|
foreach (string dir in dirArr)
|
|
|
|
|
{
|
|
|
|
|
folderName = System.IO.Path.GetFileName(dir);
|
|
|
|
|
// 递归调用
|
|
|
|
|
System.IO.Directory.CreateDirectory(targetDir + "\\" + folderName);
|
|
|
|
|
DirectoryCopy(dir, targetDir + "\\" + folderName);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
LogAPI.Debug("创建工程目录页面中,文件夹复制时失败,异常原因: " + ex.Message + " ; ");
|
|
|
|
|
return false;
|
|
|
|
|
throw;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void CheckBox_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
TableMapping tbm = dgTableMapping.SelectedItem as TableMapping;
|
|
|
|
|
if (tbm != null)
|
|
|
|
|
{
|
|
|
|
|
switch (tbm.State)
|
|
|
|
|
{
|
|
|
|
|
case TBState.Waiting:
|
|
|
|
|
tbm.State = TBState.Delete;
|
|
|
|
|
break;
|
|
|
|
|
case TBState.Delete:
|
|
|
|
|
tbm.State = TBState.Waiting;
|
|
|
|
|
break;
|
|
|
|
|
case TBState.BeingImport:
|
|
|
|
|
break;
|
|
|
|
|
case TBState.EndImport:
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
dgTableMapping.RefreshData();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 取消
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sender"></param>
|
|
|
|
|
/// <param name="e"></param>
|
|
|
|
|
private void btnClose_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
this.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void BaseWindow_Closing(object sender, CancelEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
this.shutDown = true;
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|