You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
650 lines
28 KiB
650 lines
28 KiB
using ESRI.ArcGIS.ADF; |
|
using ESRI.ArcGIS.Geodatabase; |
|
using KGIS.Framework.AE; |
|
using KGIS.Framework.AE.Enum; |
|
using KGIS.Framework.Platform; |
|
using KGIS.Framework.Platform.Helper; |
|
using KGIS.Framework.Utils; |
|
using KGIS.Framework.Utils.Helper; |
|
using System; |
|
using System.Collections.Generic; |
|
using System.ComponentModel; |
|
using System.IO; |
|
using System.Linq; |
|
|
|
namespace Kingo.Plugin.YJJK.ModelEntity |
|
{ |
|
public class ExportMDB |
|
{ |
|
public string OutPath; |
|
string sourcePath; |
|
|
|
private IFeatureClass _SourceFeatureClass; |
|
/// <summary> |
|
/// 数据源 |
|
/// </summary> |
|
public IFeatureClass SourceFeatureClass |
|
{ |
|
get { return _SourceFeatureClass; } |
|
set { _SourceFeatureClass = value; } |
|
} |
|
/// <summary> |
|
/// 导出MDB成果 |
|
/// </summary> |
|
/// <param name="isSJSJ">是否省级数据</param> |
|
/// <param name="sTheMDBPath">指定的MDB数据源</param> |
|
public void Export(bool isSJSJ = false,string sTheMDBPath = "") |
|
{ |
|
|
|
IWorkspaceAPI t_WsAPI = null; |
|
IWorkspaceAPI s_WsAPI = null; |
|
IFeatureClassAPI s_FCAPI = null; |
|
|
|
if (string.IsNullOrWhiteSpace(OutPath)) |
|
{ |
|
return; |
|
} |
|
//测试用路径 |
|
//targetPath = @"F:\测试工程\9.3矢量化8.28\MDB成果导出文件"; |
|
|
|
if (isSJSJ) |
|
{ |
|
//校验模板文件是否存在 |
|
if (!Check_SJSJ_TemplateFile()) |
|
{ |
|
//MessageBox.Show("校验模板文件出错,请检查。", "提示"); |
|
return; |
|
} |
|
} |
|
else |
|
{ |
|
//校验模板文件是否存在 |
|
if (!CheckTemplateFile()) |
|
{ |
|
//MessageBox.Show("校验模板文件出错,请检查。", "提示"); |
|
return; |
|
} |
|
} |
|
//sourcePath="D:\三调建库软件\Apps\工作空间\模板\新建数据库工程\导出成果数据.mdb"; |
|
//targetPath="E:\20180416163805成果数据.mdb"; |
|
File.Copy(sourcePath, OutPath); |
|
|
|
try |
|
{ |
|
string s_MdbPath = OutPath; |
|
string t_MdbPath = "";// Env.Instance.Project.GetProjMDBPath(); |
|
if (string.IsNullOrWhiteSpace(sTheMDBPath) == false) |
|
{ |
|
t_MdbPath = sTheMDBPath; |
|
} |
|
if (s_MdbPath.Equals(t_MdbPath)) |
|
{ |
|
//MessageBox.Show("数据源不能与目标源一致!"); |
|
return; |
|
} |
|
s_WsAPI = new WorkspaceAPI(s_MdbPath, WorkspaceTypeEnum.MDBFile); |
|
t_WsAPI = new WorkspaceAPI(t_MdbPath, WorkspaceTypeEnum.MDBFile); |
|
Dictionary<string, string> t_TbList = t_WsAPI.GetFeatureClassName(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTFeatureDataset); |
|
Dictionary<string, string> t_TbList2 = t_WsAPI.GetFeatureClassName(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTFeatureClass); |
|
Dictionary<string, string> t_TbList3 = t_WsAPI.GetFeatureClassName(esriDatasetType.esriDTTable); |
|
#region 将目标图层作为字典项可进行下拉选择 |
|
List<DataDicTionary> dicTable = new List<DataDicTionary>(); |
|
dicTable.Add(new DataDicTionary() { NAME = "Null", CODE = "null" }); |
|
dicTable.Add(new DataDicTionary() { NAME = "追加图层", CODE = "Add" }); |
|
foreach (string item in t_TbList.Keys) |
|
{ |
|
s_FCAPI = t_WsAPI.OpenFeatureClass(t_TbList[item]); |
|
dicTable.Add(new DataDicTionary() { NAME = item, CODE = t_TbList[item], REMARK = s_FCAPI.FeatureClass.ShapeType.ToString() }); |
|
} |
|
foreach (string item in t_TbList2.Keys) |
|
{ |
|
s_FCAPI = t_WsAPI.OpenFeatureClass(t_TbList2[item]); |
|
dicTable.Add(new DataDicTionary() { NAME = item, CODE = t_TbList2[item], REMARK = s_FCAPI.FeatureClass.ShapeType.ToString() }); |
|
} |
|
foreach (string item in t_TbList3.Keys) |
|
{ |
|
dicTable.Add(new DataDicTionary() { NAME = item, CODE = t_TbList3[item], REMARK = "Table" }); |
|
} |
|
#endregion |
|
Dictionary<string, string> s_TbList = s_WsAPI.GetFeatureClassName(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTFeatureDataset); |
|
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.Keys.Contains(item)) |
|
s_TbList.Add(item, s_TbList2[item]); |
|
} |
|
foreach (string item in s_TbList3.Keys) |
|
{ |
|
if (!s_TbList.Keys.Contains(item)) |
|
s_TbList.Add(item, s_TbList3[item]); |
|
} |
|
if (t_TbList != null && s_TbList != null) |
|
{ |
|
#region 获取MappingList |
|
List<TableMapping> MappingList = new List<TableMapping>(); |
|
foreach (string key in s_TbList.Keys) |
|
{ |
|
TableMapping mapping = new TableMapping(); |
|
//mapping.PropertyChanged2 += mapping_PropertyChanged2; |
|
//mapping.State = TBState.Waiting; |
|
mapping.S_TableName = s_TbList[key]; |
|
mapping.S_TableAliasName = key; |
|
|
|
if (s_TbList3.Values.Contains(mapping.S_TableName)) |
|
{ |
|
mapping.S_TableType = "Table"; |
|
} |
|
else |
|
{ |
|
s_FCAPI = s_WsAPI.OpenFeatureClass(s_TbList[key]); |
|
mapping.S_Spatial = (s_FCAPI.FeatureClass as IGeoDataset).SpatialReference.Name; |
|
mapping.S_TableType = s_FCAPI.FeatureClass.ShapeType.ToString(); |
|
s_FCAPI.CloseFeatureClass(); |
|
} |
|
if (key == "注记") |
|
{ |
|
List<DataDicTionary> dicTionaries = dicTable.FindAll(x => x.NAME.Substring(x.NAME.Length - 2, 2) == key); |
|
foreach (DataDicTionary dataDic in dicTionaries) |
|
{ |
|
TableMapping mappingNew = new TableMapping(); |
|
|
|
mappingNew.S_TableName = mapping.S_TableName; |
|
mappingNew.S_TableAliasName = mapping.S_TableAliasName; |
|
mappingNew.S_TableType = mapping.S_TableType; |
|
mappingNew.S_Spatial = mapping.S_Spatial; |
|
|
|
mappingNew.T_TableAliasName = dataDic.NAME; |
|
mappingNew.T_TableName = dataDic.CODE; |
|
mappingNew.T_TableType = dataDic.REMARK; |
|
mappingNew.T_TableList = dicTable.Where(w => w.REMARK == mappingNew.S_TableType || w.CODE == "null" || w.CODE == "Add").ToList(); |
|
//SetDefaultFieldMapping(mappingNew, s_WsAPI, t_WsAPI); |
|
/* |
|
* s_WsAPI 目标空间 |
|
* t_WsAPI 源数据空间 |
|
*/ |
|
//修改人:李忠盼 修改时间:20190307 导出注记图层无数据问题处理 |
|
//SetDefaultFieldMapping(mappingNew, t_WsAPI, s_WsAPI); |
|
SetDefaultFieldMapping(mappingNew, s_WsAPI, t_WsAPI); |
|
|
|
MappingList.Add(mappingNew); |
|
} |
|
continue; |
|
} |
|
DataDicTionary dic = dicTable.FirstOrDefault(f => f.NAME == key || f.CODE == s_TbList[key]); |
|
if (dic != null) |
|
{ |
|
mapping.T_TableAliasName = dic.NAME; |
|
mapping.T_TableName = dic.CODE; |
|
mapping.T_TableType = dic.REMARK; |
|
} |
|
mapping.T_TableList = dicTable.Where(w => w.REMARK == mapping.S_TableType || w.CODE == "null" || w.CODE == "Add").ToList(); |
|
|
|
SetDefaultFieldMapping(mapping, t_WsAPI, s_WsAPI,isSJSJ); |
|
MappingList.Add(mapping); |
|
} |
|
#endregion |
|
|
|
#region 设置目标数据库坐标参考 |
|
ESRI.ArcGIS.Geometry.ISpatialReference sp = GeoDBAPI.GetGeoDatasetSpatialReference(t_WsAPI.CurrentWorkspace); |
|
if (sp != null) |
|
{ |
|
GeoDBAPI.SetGeoDatasetSpatialReference(s_WsAPI.CurrentWorkspace, sp, 0.0001); |
|
} |
|
#endregion |
|
|
|
#region 对里面的单表进行字段操作 |
|
int i = 0; |
|
ProgressHelper.ShowProcessBar("正在导出数据,请等待……"); |
|
int Count = MappingList.Count; |
|
ProgressHelper.CountProgress = Count; |
|
|
|
foreach (TableMapping tableMap in MappingList) |
|
{ |
|
IFeatureClass t_FC = null; |
|
ITable it_FC = null; |
|
ITable iSourceFeatureClass = null; |
|
|
|
if (tableMap.S_TableType == "Table") |
|
{ |
|
it_FC = s_WsAPI.OpenTable(tableMap.S_TableName).ITable; |
|
iSourceFeatureClass = t_WsAPI.OpenTable(tableMap.T_TableName).ITable; |
|
|
|
using (ComReleaser releaser = new ComReleaser()) |
|
{ |
|
//字段映射信息 |
|
List<FieldMapping> mFieldMapping = tableMap.FieldMapping; |
|
ICursor cursor = it_FC.Insert(true); |
|
IRowBuffer newFeature = null; |
|
releaser.ManageLifetime(cursor); |
|
ICursor s_Cursor = iSourceFeatureClass.Search(null, false); |
|
releaser.ManageLifetime(s_Cursor); |
|
|
|
IRow feature = null; |
|
while ((feature = s_Cursor.NextRow()) != null) |
|
{ |
|
if (ProgressHelper.IsCancel) |
|
{ |
|
break; |
|
} |
|
if (newFeature == null) |
|
newFeature = it_FC.CreateRowBuffer(); |
|
//newFeature.Shape = feature.ShapeCopy; |
|
foreach (FieldMapping item in mFieldMapping) |
|
{ |
|
if (item.S_FieldIndex < 0 || item.T_FieldIndex < 0) |
|
continue; |
|
newFeature.set_Value(item.T_FieldIndex, feature.get_Value(item.S_FieldIndex)); |
|
} |
|
cursor.InsertRow(newFeature); |
|
} |
|
if (newFeature != null) |
|
cursor.Flush(); |
|
} |
|
} |
|
else |
|
{ |
|
t_FC = s_WsAPI.OpenFeatureClass(tableMap.S_TableName).FeatureClass; |
|
SourceFeatureClass = t_WsAPI.OpenFeatureClass(tableMap.T_TableName).FeatureClass; |
|
|
|
using (ComReleaser releaser = new ComReleaser()) |
|
{ |
|
//字段映射信息 |
|
List<FieldMapping> mFieldMapping = tableMap.FieldMapping; |
|
IFeatureCursor cursor = t_FC.Insert(true); |
|
IFeatureBuffer newFeature = null; |
|
releaser.ManageLifetime(cursor); |
|
IFeatureCursor s_Cursor = SourceFeatureClass.Search(null, false); |
|
releaser.ManageLifetime(s_Cursor); |
|
|
|
IFeature feature = null; |
|
while ((feature = s_Cursor.NextFeature()) != null) |
|
{ |
|
if (ProgressHelper.IsCancel) |
|
{ |
|
break; |
|
} |
|
if (newFeature == null) |
|
newFeature = t_FC.CreateFeatureBuffer(); |
|
newFeature.Shape = feature.ShapeCopy; |
|
if (mFieldMapping != null) |
|
{ |
|
foreach (FieldMapping item in mFieldMapping)//mFieldMapping为空不循环 20190304 周旺华修复 |
|
{ |
|
if (item.S_FieldIndex < 0 || item.T_FieldIndex < 0) |
|
continue; |
|
newFeature.set_Value(item.T_FieldIndex, feature.get_Value(item.S_FieldIndex)); |
|
} |
|
} |
|
cursor.InsertFeature(newFeature); |
|
} |
|
if (newFeature != null) |
|
cursor.Flush(); |
|
IFeatureClassManage fcManage = t_FC as IFeatureClassManage; |
|
fcManage.UpdateExtent(); |
|
} |
|
} |
|
ProgressHelper.CurrentProgress = i++; |
|
} |
|
ProgressHelper.CloseProcessBar(); |
|
//MessageBox.Show("数据导出成功!", "提示"); |
|
//LogAPI.Debug("数据导出成功!");//测试用 王欢 |
|
#endregion |
|
} |
|
} |
|
//判断异常错误 提示框,重置 |
|
catch (Exception ex) |
|
{ |
|
ProgressHelper.CloseProcessBar(); |
|
MessageHelper.ShowError(ex.Message); |
|
LogAPI.Debug(ex); |
|
} |
|
finally |
|
{ |
|
if (s_WsAPI != null) |
|
s_WsAPI.CloseWorkspace(); |
|
//if (t_WsAPI != null) |
|
// t_WsAPI.CloseWorkspace(); |
|
} |
|
} |
|
|
|
public void SetDefaultFieldMapping(TableMapping tbMapping, IWorkspaceAPI pSourceWsAPI, IWorkspaceAPI pTargetWsAPI,bool isSJSJ=false) |
|
{ |
|
bool IsSReleaser = false; |
|
bool IsTReleaser = false; |
|
if (tbMapping.T_TableName == "Add") |
|
{ |
|
return; |
|
} |
|
if (pSourceWsAPI == null) |
|
{ |
|
string s_MdbPath = sourcePath; |
|
pSourceWsAPI = new WorkspaceAPI(s_MdbPath, WorkspaceTypeEnum.MDBFile); |
|
IsSReleaser = true; |
|
} |
|
if (pTargetWsAPI == null) |
|
{ |
|
string t_MdbPath = "";// Env.Instance.Project.GetProjMDBPath(); |
|
pTargetWsAPI = new WorkspaceAPI(t_MdbPath,WorkspaceTypeEnum.MDBFile); |
|
IsTReleaser = true; |
|
} |
|
IFeatureClassAPI t_FcAPI = null; |
|
ITableAPI t_TBAPI = null; |
|
IFeatureClassAPI s_FcAPI = null; |
|
ITableAPI s_TBAPI = null; |
|
try |
|
{ |
|
if (!string.IsNullOrWhiteSpace(tbMapping.S_TableName) && !string.IsNullOrWhiteSpace(tbMapping.T_TableName) && !tbMapping.T_TableName.ToUpper().Equals("NULL")) |
|
{ |
|
if (tbMapping.T_TableType.ToUpper() == "TABLE") |
|
{ |
|
t_TBAPI = pTargetWsAPI.OpenTable(tbMapping.T_TableName); |
|
} |
|
else |
|
{ |
|
t_FcAPI = pTargetWsAPI.OpenFeatureClass(tbMapping.T_TableName); |
|
} |
|
if (tbMapping.S_TableType.ToUpper() == "TABLE") |
|
{ |
|
s_TBAPI = pTargetWsAPI.OpenTable(tbMapping.S_TableName); |
|
} |
|
else |
|
{ |
|
s_FcAPI = pSourceWsAPI.OpenFeatureClass(tbMapping.S_TableName); |
|
} |
|
List<DataDicTionary> dicData = new List<DataDicTionary>(); |
|
dicData.Add(new DataDicTionary() { DisplayName = "Null", NAME = "Null", CODE = "-1", REMARK = "" }); |
|
dicData.Add(new DataDicTionary() { DisplayName = "追加字段", NAME = "Add", CODE = "-2", REMARK = "" }); |
|
if (t_FcAPI != null) |
|
{ |
|
for (int i = 0; i < t_FcAPI.FeatureClass.Fields.FieldCount; i++) |
|
{ |
|
IField field = t_FcAPI.FeatureClass.Fields.get_Field(i); |
|
if (!field.Editable || field.Name.ToUpper() == "SHAPE") |
|
continue; |
|
dicData.Add(new DataDicTionary() { DisplayName = string.IsNullOrWhiteSpace(field.AliasName) ? field.Name : field.AliasName, NAME = field.Name, CODE = i.ToString(), REMARK = field.Type.ToString() }); |
|
} |
|
} |
|
else if (t_TBAPI != null) |
|
{ |
|
for (int i = 0; i < t_TBAPI.ITable.Fields.FieldCount; i++) |
|
{ |
|
IField field = t_TBAPI.ITable.Fields.get_Field(i); |
|
if (!field.Editable || field.Name.ToUpper() == "SHAPE") |
|
continue; |
|
dicData.Add(new DataDicTionary() { DisplayName = string.IsNullOrWhiteSpace(field.AliasName) ? field.Name : field.AliasName, NAME = field.Name, CODE = i.ToString(), REMARK = field.Type.ToString() }); |
|
} |
|
} |
|
if (s_FcAPI != null && s_FcAPI.FeatureClass != null) |
|
{ |
|
List<FieldMapping> data = new List<FieldMapping>(); |
|
for (int i = 0; i < s_FcAPI.FeatureClass.Fields.FieldCount; i++) |
|
{ |
|
IField field = s_FcAPI.FeatureClass.Fields.get_Field(i); |
|
if (!field.Editable || field.Name.ToUpper() == "SHAPE") |
|
continue; |
|
|
|
FieldMapping item = new FieldMapping(); |
|
item.S_FieldName = string.IsNullOrWhiteSpace(field.AliasName) ? field.Name : field.AliasName; |
|
item.S_FieldIndex = i; |
|
DataDicTionary dic = dicData.FirstOrDefault(f => (f.NAME == field.Name || f.DisplayName == field.Name || f.NAME == field.AliasName || f.DisplayName == field.AliasName));//&& f.REMARK == field.Type.ToString() |
|
//白明雅 2019-05-30 将地类图斑备注导到SJBZ字段里 |
|
if (isSJSJ && (item.S_FieldName.ToString().ToUpper()=="BZ".ToUpper() || item.S_FieldName.ToString() == "备注") && tbMapping.T_TableName=="DLTB") |
|
{ |
|
dic = dicData.FirstOrDefault(f => (f.NAME == "SJBZ" || f.DisplayName == "SJBZ" || f.NAME == "SJBZ" || f.DisplayName == "SJBZ")); |
|
} |
|
//--------------------------------- |
|
if (dic != null) |
|
{ |
|
item.T_FieldName = dic.DisplayName; |
|
item.T_FieldIndex = Convert.ToInt16(dic.CODE); |
|
} |
|
else |
|
{ |
|
item.T_FieldIndex = -1; |
|
} |
|
//item.PropertyType = enumPropertyType.ComboBox; |
|
item.FieldList = dicData.FindAll(f => f.REMARK == field.Type.ToString() || f.REMARK.Contains("Double") || f.REMARK.Contains("Integer") || f.CODE == "-1" || f.CODE == "-2"); |
|
data.Add(item); |
|
} |
|
tbMapping.FieldMapping = data; |
|
} |
|
else if (s_TBAPI != null && s_TBAPI.ITable != null) |
|
{ |
|
List<FieldMapping> data = new List<FieldMapping>(); |
|
for (int i = 0; i < s_TBAPI.ITable.Fields.FieldCount; i++) |
|
{ |
|
IField field = s_TBAPI.ITable.Fields.get_Field(i); |
|
if (!field.Editable || field.Name.ToUpper() == "SHAPE") |
|
continue; |
|
|
|
FieldMapping item = new FieldMapping(); |
|
item.S_FieldName = string.IsNullOrWhiteSpace(field.AliasName) ? field.Name : field.AliasName; |
|
item.S_FieldIndex = i; |
|
DataDicTionary dic = dicData.FirstOrDefault(f => (f.NAME == field.Name || f.DisplayName == field.Name || f.NAME == field.AliasName || f.DisplayName == field.AliasName));//&& f.REMARK == field.Type.ToString() |
|
if (dic != null) |
|
{ |
|
item.T_FieldName = dic.DisplayName; |
|
item.T_FieldIndex = Convert.ToInt16(dic.CODE); |
|
} |
|
else |
|
{ |
|
item.T_FieldIndex = -1; |
|
} |
|
//item.PropertyType = enumPropertyType.ComboBox; |
|
item.FieldList = dicData.FindAll(f => f.REMARK == field.Type.ToString() || f.CODE == "-1" || f.CODE == "-2"); |
|
data.Add(item); |
|
} |
|
tbMapping.FieldMapping = data; |
|
} |
|
} |
|
|
|
} |
|
catch (Exception ex) |
|
{ |
|
//MessageBox.Show("操作异常!" + ex.Message); |
|
LogAPI.Debug(ex); |
|
} |
|
} |
|
private bool CheckTemplateFile() |
|
{ |
|
bool result = false; |
|
sourcePath = SysAppPath.GetCurrentAppPath() + "\\工作空间\\模板\\新建数据库工程\\导出成果数据.mdb"; |
|
if (File.Exists(sourcePath)) |
|
{ |
|
result = true; |
|
} |
|
return result; |
|
} |
|
private bool Check_SJSJ_TemplateFile() |
|
{ |
|
bool result = false; |
|
sourcePath = SysAppPath.GetCurrentAppPath() + "\\工作空间\\模板\\新建数据库工程\\导出成果数据_省级数据.mdb"; |
|
if (File.Exists(sourcePath)) |
|
{ |
|
result = true; |
|
} |
|
return result; |
|
} |
|
} |
|
|
|
/// <summary> |
|
/// 表映射关系 |
|
/// </summary> |
|
public class TableMapping : INotifyPropertyChanged |
|
{ |
|
/// <summary> |
|
/// 源数据表名 |
|
/// </summary> |
|
public string S_TableName { get; set; } |
|
/// <summary> |
|
/// 源数据表名 |
|
/// </summary> |
|
public string S_TableAliasName { get; set; } |
|
/// <summary> |
|
/// 数据源表类型 |
|
/// </summary> |
|
public string S_TableType { get; set; } |
|
/// <summary> |
|
/// 坐标系 |
|
/// </summary> |
|
public string S_Spatial { get; set; } |
|
///// <summary> |
|
///// 数据源要素类型 |
|
///// </summary> |
|
//public string S_ShapeType { get; set; } |
|
///// <summary> |
|
///// 目标要素类型 |
|
///// </summary> |
|
//public string T_ShapeType { get; set; } |
|
private string _T_TableName; |
|
/// <summary> |
|
/// 目标数据表名 |
|
/// </summary> |
|
public string T_TableName |
|
{ |
|
get { return _T_TableName; } |
|
set |
|
{ |
|
_T_TableName = value; |
|
if (PropertyChanged2 != null) |
|
{ |
|
PropertyChanged2(this, new PropertyChangedEventArgs("T_TableName")); |
|
} |
|
} |
|
} |
|
/// <summary> |
|
/// 目标数据表名 |
|
/// </summary> |
|
public string T_TableAliasName { get; set; } |
|
/// <summary> |
|
/// 目标表类型 |
|
/// </summary> |
|
public string T_TableType { get; set; } |
|
|
|
private List<FieldMapping> _FieldMapping; |
|
/// <summary> |
|
/// 字段映射信息 |
|
/// </summary> |
|
public List<FieldMapping> FieldMapping |
|
{ |
|
get { return _FieldMapping; } |
|
set |
|
{ |
|
_FieldMapping = value; |
|
int count = _FieldMapping.FindAll(f => f.S_FieldIndex == -1).Count; |
|
if (count == 0) |
|
{ |
|
FieldMappingMsg = "所有字段已匹配"; |
|
} |
|
else |
|
{ |
|
FieldMappingMsg = string.Format("{0} 个字段未匹配", count); |
|
} |
|
} |
|
} |
|
/// <summary> |
|
/// 目标数据表值域 |
|
/// </summary> |
|
public List<DataDicTionary> T_TableList { get; set; } |
|
|
|
private string _FieldMappingMsg; |
|
public string FieldMappingMsg |
|
{ |
|
get |
|
{ |
|
return _FieldMappingMsg; |
|
} |
|
set |
|
{ |
|
_FieldMappingMsg = value; |
|
if (PropertyChanged != null) |
|
{ |
|
PropertyChanged(this, new PropertyChangedEventArgs("FieldMappingMsg")); |
|
} |
|
} |
|
} |
|
|
|
#region |
|
//private TBState _State; |
|
//public TBState State |
|
//{ |
|
// get { return _State; } |
|
// set |
|
// { |
|
// _State = value; |
|
// if (PropertyChanged != null) |
|
// { |
|
// PropertyChanged(this, new PropertyChangedEventArgs("State")); |
|
// } |
|
// } |
|
//} |
|
private int _Count; |
|
/// <summary> |
|
/// 总进度 |
|
/// </summary> |
|
public int Count |
|
{ |
|
get |
|
{ |
|
return _Count; |
|
} |
|
set |
|
{ |
|
_Count = value; |
|
if (PropertyChanged != null) |
|
{ |
|
PropertyChanged(this, new PropertyChangedEventArgs("Count")); |
|
} |
|
} |
|
} |
|
private int _Progress; |
|
/// <summary> |
|
/// 当前进度 |
|
/// </summary> |
|
public int Progress |
|
{ |
|
get |
|
{ |
|
return _Progress; |
|
} |
|
set |
|
{ |
|
_Progress = value; |
|
if (PropertyChanged != null) |
|
{ |
|
PropertyChanged(this, new PropertyChangedEventArgs("Progress")); |
|
} |
|
} |
|
} |
|
#endregion |
|
|
|
public event PropertyChangedEventHandler PropertyChanged; |
|
|
|
public event PropertyChangedEventHandler PropertyChanged2; |
|
} |
|
public class FieldMapping |
|
{ |
|
/// <summary> |
|
/// 目标字段名 |
|
/// </summary> |
|
public string T_FieldName { get; set; } |
|
/// <summary> |
|
/// 目标字段索引 |
|
/// </summary> |
|
public int T_FieldIndex { get; set; } |
|
/// <summary> |
|
/// 源字段名 |
|
/// </summary> |
|
public string S_FieldName { get; set; } |
|
/// <summary> |
|
/// 源字段索引 |
|
/// </summary> |
|
public int S_FieldIndex { get; set; } |
|
/// <summary> |
|
/// 字段集合 |
|
/// </summary> |
|
public List<DataDicTionary> FieldList { get; set; } |
|
} |
|
|
|
}
|
|
|