年度变更建库软件5.0版本
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.

914 lines
52 KiB

using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.DataSourcesGDB;
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.Geometry;
using ExcelDataReader;
using KGIS.Framework.AE;
using KGIS.Framework.AE.Enum;
using KGIS.Framework.AE.GaussCalculate;
using KGIS.Framework.AE.GPHelper;
using KGIS.Framework.DBOperator;
using KGIS.Framework.Maps;
using KGIS.Framework.Platform;
using KGIS.Framework.Utils;
using KGIS.Framework.Utils.Helper;
using Kingo.Plugin.BGResultManager.Utility;
using Kingo.PluginServiceInterface;
using KUI.Windows;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Xml;
namespace Kingo.Plugin.BGResultManager.View
{
/// <summary>
/// FrmCreateVCTTemplate.xaml 的交互逻辑
/// </summary>
public partial class Exportcultivatedlandreport : BaseWindow
{
public Exportcultivatedlandreport()
{
InitializeComponent();
}
private void btnCreate_Click(object sender, RoutedEventArgs e)
{
string nc_gdxhExcelPath = string.Empty;
string nc_jkhfgchfExcelPath = string.Empty;
IRDBHelper rdbHelper = null;
DataTable dataTable = null;
List<string> ncsjExcels = new List<string>();
try
{
#region 判断表格数据是否存在
if (string.IsNullOrEmpty(txtNCData.Text))
{
MessageHelper.ShowTips("年初表格数据路径为空!");
return;
}
if (string.IsNullOrEmpty(txtsavePath.Text))
{
MessageHelper.ShowTips("请先选择输出路径!");
return;
}
IFeatureClass DLTBGXGC = MapsManager.Instance.MapService.GetFeatureClassByName("DLTBGXGC");
if (DLTBGXGC == null || DLTBGXGC.FeatureCount(null) == 0)
{
MessageHelper.ShowTips("未找到更新过程层数据或更新过程层数据为空,无法导出!");
return;
}
this.ShowLoading("正在导出...", 0, 0);
DirectoryInfo dir = new DirectoryInfo(txtNCData.Text);
FileInfo[] fileSet = dir.GetFiles("(" + (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).CODE + ")耕地细化情况统计表.xlsx", SearchOption.AllDirectories);
if (fileSet != null && fileSet.Length > 0)
{
nc_gdxhExcelPath = fileSet[0].FullName;
}
else
{
fileSet = dir.GetFiles("(" + (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).CODE + ")耕地细化情况统计表.xls", SearchOption.AllDirectories);
if (fileSet != null && fileSet.Length > 0)
{
nc_gdxhExcelPath = fileSet[0].FullName;
}
}
fileSet = dir.GetFiles("(" + (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).CODE + ")即可恢复与工程恢复种植属性汇总统计表.xlsx", SearchOption.AllDirectories);
if (fileSet != null && fileSet.Length > 0)
{
nc_jkhfgchfExcelPath = fileSet[0].FullName;
}
else
{
fileSet = dir.GetFiles("(" + (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).CODE + ")即可恢复与工程恢复种植属性汇总统计表.xls", SearchOption.AllDirectories);
if (fileSet != null && fileSet.Length > 0)
{
nc_jkhfgchfExcelPath = fileSet[0].FullName;
}
}
if (string.IsNullOrEmpty(nc_gdxhExcelPath) || string.IsNullOrEmpty(nc_jkhfgchfExcelPath))
{
MessageHelper.ShowTips("未找到年初表格,请核对后在进行导出!");
return;
}
ncsjExcels.Add(nc_gdxhExcelPath);
ncsjExcels.Add(nc_jkhfgchfExcelPath);
#endregion
#region 数据处理
//1.读取年初数据
foreach (var item in ncsjExcels)
{
string dbPath = System.IO.Path.GetDirectoryName((MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).GetProjFilePath()) + @"\BGTJ.sqlite";
rdbHelper = RDBFactory.CreateDbHelper("Data Source=" + dbPath, DatabaseType.SQLite);
var tableNames = item.Split('\\');
string tableName = tableNames[tableNames.Length - 1].Split('.')[0].ToString();
tableName = tableName.Substring(tableName.IndexOf(')') + 1);
rdbHelper.ExecuteSQL($" drop table {tableName} ");
using (var streamData = File.Open(item, FileMode.Open, FileAccess.Read))
{
using (var readerData = ExcelReaderFactory.CreateReader(streamData))
{
var result = readerData.AsDataSet();
dataTable = result.Tables[0];
Dictionary<string, string> dics = Get_Colunms(dataTable);
CreateTableSql(rdbHelper, tableName, dics);
if (dataTable != null && dataTable.Rows.Count > 0)
{
dataTable = DtSelectTop(10, dataTable);
Insert_sql(dataTable, dics, rdbHelper, tableName);
}
}
}
}
//2.地类图斑那更新过程层与相关专题图层联合
GetUnionResult(rdbHelper, DLTBGXGC);
//3.导出表格并赋值
#region 耕地细化调查情况变化统计表
string tempPath = AppDomain.CurrentDomain.BaseDirectory + "TempalateReports\\BGTJ\\耕地细化调查情况变化统计表.xlsx";
string code = (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).CODE;
string savePath = $"{this.txtsavePath.Text}\\({code})耕地细化调查情况变化统计表.xlsx";
File.Copy(tempPath, savePath, true);
DataTable resultdataTable = rdbHelper.ExecuteDatatable("tab", $@"
select '3' Cells_X ,'2'Cells_Y, round(column3,4) BGMJ,'河道湖区耕地'TYPE FROM 耕地细化情况统计表 WHERE column2='{code}'
union all
select '3' Cells_X ,'3'Cells_Y, round(column4,4) BGMJ,'林区耕地'TYPE FROM 耕地细化情况统计表 WHERE column2='{code}'
union all
select '3' Cells_X ,'4'Cells_Y, round(column5,4) BGMJ,'牧区耕地'TYPE FROM 耕地细化情况统计表 WHERE column2='{code}'
union all
select '3' Cells_X ,'5'Cells_Y, round(column6,4) BGMJ,'沙荒耕地'TYPE FROM 耕地细化情况统计表 WHERE column2='{code}'
union all
select '3' Cells_X ,'6'Cells_Y, round(column7,4) BGMJ,'石漠化耕地'TYPE FROM 耕地细化情况统计表 WHERE column2='{code}'
union all
select '3' Cells_X ,'7'Cells_Y, round(column8,4) BGMJ,'盐碱地耕地'TYPE FROM 耕地细化情况统计表 WHERE column2='{code}'
union all
select '7' Cells_X ,'3'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'林区耕地-年内增加' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGQTBXHDM<>'LQGD' or BGQTBXHMC ISNULL) and (BGHTBXHDM='LQGD' or BWLX='LQBW')
union all
select '8' Cells_X ,'3'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'林区耕地-年内减少' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGQTBXHDM='LQGD') and (BGHTBXHDM<>'LQGD' or BGHTBXHDM ISNULL) and BWLX<>'LQBW'
union all
select '7' Cells_X ,'4'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'牧区耕地-年内增加' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGQTBXHDM<>'MQGD' or BGQTBXHMC ISNULL) and (BGHTBXHDM='MQGD' or BWLX='CYBW')
union all
select '8' Cells_X ,'4'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'牧区耕地-年内减少' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGQTBXHDM='MQGD') and (BGHTBXHDM<>'MQGD' or BGHTBXHMC ISNULL) and BWLX<>'CYBW'
union all
select '7' Cells_X ,'5'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'沙荒耕地-年内增加' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL)and (BGHTBXHDM<>'LQGD' and BWLX<>'LQBW' and BGHTBXHDM<>'MQGD' and BWLX<>'CYBW') and (BGQTBXHDM<>'SHGD' or BGQTBXHMC ISNULL) and (BGHTBXHDM='SHGD')
union all
select '8' Cells_X ,'5'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'沙荒耕地-年内减少' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGHTBXHDM<>'LQGD' and BWLX<>'LQBW' and BGHTBXHDM<>'MQGD' and BWLX<>'CYBW') and (BGQTBXHDM='SHGD') and (BGHTBXHDM<>'SHGD')
union all
select '7' Cells_X ,'6'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'石漠化耕地-年内增加' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGHTBXHDM<>'LQGD' and BWLX<>'LQBW' and BGHTBXHDM<>'MQGD' and BWLX<>'CYBW') and (BGQTBXHDM<>'SMGD' or BGQTBXHMC ISNULL) and (BGHTBXHDM='SMGD')
union all
select '8' Cells_X ,'6'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'石漠化耕地-年内减少' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGHTBXHDM<>'LQGD' and BWLX<>'LQBW' and BGHTBXHDM<>'MQGD' and BWLX<>'CYBW') and (BGQTBXHDM='SMGD') and (BGHTBXHDM<>'SMGD' or BGHTBXHDM ISNULL)
union all
select '7' Cells_X ,'2'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'河道湖区耕地-年内增加' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGHTBXHDM<>'LQGD' and BWLX<>'LQBW' and BGHTBXHDM<>'MQGD' and BWLX<>'CYBW' and BGHTBXHDM<>'SMGD' and BGHTBXHDM<>'SHGD') and BGHTBXHDM='HDGD' and (BGQTBXHDM<>'HDGD' or BGQTBXHDM ISNULL )
union all
select '8' Cells_X ,'2'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'河道湖区耕地-年内减少' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGHTBXHDM<>'LQGD' and BWLX<>'LQBW' and BGHTBXHDM<>'MQGD' and BWLX<>'CYBW' and BGHTBXHDM<>'SMGD' and BGHTBXHDM<>'SHGD') and BGQTBXHDM='HDGD' and (BGHTBXHDM<>'HDGD' or BGHTBXHDM ISNULL )
union all
select '7' Cells_X ,'7'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'盐碱地耕地-年内增加' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGHTBXHDM<>'LQGD' and BWLX<>'LQBW' and BGHTBXHDM<>'MQGD' and BWLX<>'CYBW' and BGHTBXHDM<>'SMGD' and BGHTBXHDM<>'SHGD' and BGHTBXHDM<>'HDGD') and BGHTBXHDM='YJGD' and (BGQTBXHDM<>'YJGD' or BGQTBXHDM ISNULL)
union all
select '8' Cells_X ,'7'Cells_Y, round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ,'盐碱地耕地-年内减少' TYPE from BWGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGHTBXHDM<>'LQGD' and BWLX<>'LQBW' and BGHTBXHDM<>'MQGD' and BWLX<>'CYBW' and BGHTBXHDM<>'SMGD' and BGHTBXHDM<>'SHGD' and BGHTBXHDM<>'HDGD') and BGQTBXHDM='YJGD' and (BGHTBXHDM<>'YJGD' or BGHTBXHDM ISNULL) ", true);
CellHelper.SetFileToDisk(resultdataTable, savePath, 0);
CellHelper.Import(savePath);
#endregion
#region 即可恢复与工程恢复种植属性变化统计表
tempPath = AppDomain.CurrentDomain.BaseDirectory + "TempalateReports\\BGTJ\\即可恢复与工程恢复种植属性变化统计表.xlsx";
savePath = $"{this.txtsavePath.Text}\\({(MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).CODE})即可恢复与工程恢复种植属性变化统计表.xlsx";
File.Copy(tempPath, savePath, true);
resultdataTable = rdbHelper.ExecuteDatatable("tab", $@"
select '5' Cells_X ,'1'Cells_Y, round(column3,4) BGMJ,'合计'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'2'Cells_Y, round(column4,4) BGMJ,'即可恢复小计'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'3'Cells_Y, round(column5,4) BGMJ,'果园(0201)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'4'Cells_Y, round(column6,4) BGMJ,'可调整果园(0201K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'5'Cells_Y, round(column7,4) BGMJ,'茶园(0202)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'6'Cells_Y, round(column8,4) BGMJ,'可调整茶园(0202K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'7'Cells_Y, round(column9,4) BGMJ,'橡胶园(0203)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'8'Cells_Y, round(column10,4) BGMJ,'可调整橡胶园(0203K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'9'Cells_Y, round(column11,4) BGMJ,'其他园地(0204)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'10'Cells_Y, round(column12,4) BGMJ,'可调整其他园地(0204K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'11'Cells_Y, round(column13,4) BGMJ,'乔木林地(0301)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'12'Cells_Y, round(column14,4) BGMJ,'可调整乔木林地(0301K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'13'Cells_Y, round(column15,4) BGMJ,'竹林地(0302)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'14'Cells_Y, round(column16,4) BGMJ,'可调整竹林地(0302K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'15'Cells_Y, round(column17,4) BGMJ,'灌木林地(0305)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'16'Cells_Y, round(column18,4) BGMJ,'其他林地(0307)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'17'Cells_Y, round(column19,4) BGMJ,'可调整其他林地(0307K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'18'Cells_Y, round(column20,4) BGMJ,'可调整人工牧草地(0403K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'19'Cells_Y, round(column21,4) BGMJ,'其他草地(0404)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'20'Cells_Y, round(column22,4) BGMJ,'坑塘水面(1104)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'21'Cells_Y, round(column23,4) BGMJ,'可调整养殖坑塘(1104K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'22'Cells_Y, round(column24,4) BGMJ,'工程恢复小计'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'23'Cells_Y, round(column25,4) BGMJ,'果园(0201)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'24'Cells_Y, round(column26,4) BGMJ,'可调整果园(0201K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'25'Cells_Y, round(column27,4) BGMJ,'茶园(0202)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'26'Cells_Y, round(column28,4) BGMJ,'可调整茶园(0202K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'27'Cells_Y, round(column29,4) BGMJ,'橡胶园(0203)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'28'Cells_Y, round(column30,4) BGMJ,'可调整橡胶园(0203K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'29'Cells_Y, round(column31,4) BGMJ,'其他园地(0204)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'30'Cells_Y, round(column32,4) BGMJ,'可调整其他园地(0204K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'31'Cells_Y, round(column33,4) BGMJ,'乔木林地(0301)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'32'Cells_Y, round(column34,4) BGMJ,'可调整乔木林地(0301K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'33'Cells_Y, round(column35,4) BGMJ,'竹林地(0302)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'34'Cells_Y, round(column36,4) BGMJ,'可调整竹林地(0302K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'35'Cells_Y, round(column37,4) BGMJ,'灌木林地(0305)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'36'Cells_Y, round(column38,4) BGMJ,'其他林地(0307)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'37'Cells_Y, round(column39,4) BGMJ,'可调整其他林地(0307K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'38'Cells_Y, round(column40,4) BGMJ,'可调整人工牧草地(0403K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'39'Cells_Y, round(column41,4) BGMJ,'其他草地(0404)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'40'Cells_Y, round(column42,4) BGMJ,'坑塘水面(1104)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select '5' Cells_X ,'41'Cells_Y, round(column43,4) BGMJ,'可调整养殖坑塘(1104K)'TYPE FROM 即可恢复与工程恢复种植属性汇总统计表 WHERE column2='{code}'
union all
select Cells_X,Cells_Y, BGMJ,'即可恢复-年内减少' TYPE from
(
select BGQDLBM,round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ from LNGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGQZZSXDM='JKHF') and (BGHZZSXDM<>'JKHF' or BGHZZSXDM ISNULL) GROUP BY BGQDLBM
)a left join JKHFYGCHFZZSXHZTJB b on a.BGQDLBM=b.bgh WHERE b.bgq='年内减少' and TYPE='JKHF'
union all
select Cells_X,Cells_Y, BGMJ,'即可恢复-年内增加' TYPE from
(
select BGHDLBM,round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ from LNGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGHZZSXDM='JKHF') and (BGQZZSXDM<>'JKHF' or BGQZZSXDM ISNULL) GROUP BY BGHDLBM
)a left join JKHFYGCHFZZSXHZTJB b on a.BGHDLBM=b.bgh WHERE b.bgq='年内增加' and TYPE='JKHF'
union all
select Cells_X,Cells_Y, BGMJ,'工程恢复-年内减少' TYPE from
(
select BGQDLBM,round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ from LNGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGQZZSXDM='GCHF') and (BGHZZSXDM<>'GCHF' or BGHZZSXDM ISNULL) GROUP BY BGQDLBM
)a left join JKHFYGCHFZZSXHZTJB b on a.BGQDLBM=b.bgh WHERE b.bgq='年内减少' and TYPE='GCHF'
union all
select Cells_X,Cells_Y, BGMJ,'工程恢复-年内增加' TYPE from
(
select BGHDLBM,round(sum(ifnull(TBBGMJ/10000 + 0.0000001,0)),2) BGMJ from LNGD_Multipart WHERE SUBSTR(BGHDLBM,1,2)='01' and BGHGDPDJB<>'5' and (BGHCZCSXM not in ('201','202','203') or BGHCZCSXM ISNULL) and (BGHZZSXDM='GCHF') and (BGQZZSXDM<>'GCHF' or BGQZZSXDM ISNULL) GROUP BY BGHDLBM
)a left join JKHFYGCHFZZSXHZTJB b on a.BGHDLBM=b.bgh WHERE b.bgq='年内增加' and TYPE='GCHF'", true);
CellHelper.SetFileToDisk(resultdataTable, savePath, 0);
CellHelper.Import(savePath);
#endregion
#endregion
this.CloseLoading();
MessageHelper.ShowTips("导出完成!");
}
catch (Exception ex)
{
LogAPI.Debug(ex);
throw ex;
}
finally
{
this.CloseLoading();
this.Close();
}
}
#region Excel保存至db
public static Dictionary<string, string> Get_Colunms(DataTable dic)
{
Dictionary<string, string> dics = new Dictionary<string, string>();
foreach (DataColumn item in dic.Columns)
{
dics.Add(item.ColumnName, "Varchar");
}
return dics;
}
/// <summary>
/// 创建表
/// </summary>
/// <param name="rdbHelper"></param>
/// <param name="tableName"></param>
/// <param name="table"></param>
protected void CreateTableSql(IRDBHelper rdbHelper, string tableName, Dictionary<string, string> table)
{
string result = string.Empty;
try
{
string temp1 = "CREATE TABLE if not exists " + tableName + "(";
foreach (var item in table)
{
temp1 = temp1 + item.Key.Trim().ToLower() + " " + item.Value + ",";
}
result = temp1.TrimEnd(',') + ");";
rdbHelper.ExecuteNonQueryWithException($" DROP TABLE if exists {tableName}");
rdbHelper.ExecuteNonQueryWithException(result);
}
catch (Exception ex)
{
throw ex;
}
}
public void Insert_sql(DataTable dic, Dictionary<string, string> dics, IRDBHelper SqlHelper, string Table)
{
#region 获取所有字段
StringBuilder columns = new StringBuilder();
foreach (var item in dics)
{
columns.Append("," + item.Key);
}
#endregion
#region 数据入库
int CycleIndex = 0;
StringBuilder insertsql = new StringBuilder();
StringBuilder strsql = new StringBuilder();
StringBuilder stringBuilder = new StringBuilder();
var count = dic.Rows.Count;
foreach (DataRow item0 in dic.Rows)
{
CycleIndex++;
StringBuilder data = new StringBuilder();//insert语句插入字段
foreach (var item1 in dics)
{
if (item0[item1.Key].ToString().Trim() == "")
{
data.Append(",null");
}
else
{
data.Append((",'" + item0[item1.Key].ToString().Trim().Replace("'", "''").Replace("\n", "").Replace(" ", "").Replace("\t", "").Replace("\r", "") + "'"));
}
}
insertsql.Append(string.Format("insert into " + Table + "({0})values({1});", columns.ToString().Substring(1), data.ToString().Substring(1)));
#region 提交数据
if (count < 10000)
{
if (CycleIndex < count)
{
stringBuilder.Append(insertsql.ToString());
insertsql.Clear();
}
else if (CycleIndex == count)
{
stringBuilder.Append(insertsql.ToString());
var num = SqlHelper.ExecuteNonQuery(stringBuilder.ToString(), CommandType.Text);
if (num < 0 && stringBuilder.ToString() != "")
return;
}
}
else
{
strsql.Append(insertsql.ToString());
insertsql.Clear();
}
if (CycleIndex == 10000)
{
try
{
var num = SqlHelper.ExecuteNonQuery(strsql.ToString(), CommandType.Text);
if (num < 0 && strsql.ToString() != "")
return;
insertsql.Clear();
strsql.Clear();
count = count - CycleIndex;
CycleIndex = 0;
}
catch (Exception exc)
{
throw new Exception(exc.Message);
}
finally
{
GC.Collect();
}
}
#endregion
}
#endregion
}
public static DataTable DtSelectTop(int TopItem, DataTable oDT)
{
if (oDT.Rows.Count < TopItem) return oDT;
DataTable NewTable = oDT.Clone();
DataRow[] rows = oDT.Select("1=1");
for (int i = 0; i < TopItem; i++)
{
NewTable.ImportRow((DataRow)rows[i]);
}
return NewTable;
}
#endregion
#region 地类图斑那更新过程层与相关专题图层联合
private void GetUnionResult(IRDBHelper rdbHelper, IFeatureClass DLTBGXGC)
{
GPParamClass paramClass = null;
IFeatureLayer Temp_Union = null;
IFeatureLayer multipartToSingleFeatureLayer = null;
List<string> sqlList = new List<string>();
ProjectInfo ProjInfo = null;
IWorkspaceFactory pFtWsFct = null;
string TempfilePath = string.Empty;
IFeatureCursor pCursor = null;
try
{
string gdbFolder = (MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).ProjDir + "\\Exportcultivatedlandreport";
if (!Directory.Exists(gdbFolder))
Directory.CreateDirectory(gdbFolder);
try
{ DelectDirect(gdbFolder); }
catch { }
pFtWsFct = new FileGDBWorkspaceFactory();
string gdbFileName = Guid.NewGuid().ToString();
string path = System.IO.Path.Combine(gdbFolder, gdbFileName);
pFtWsFct.Create(path, "Exportcultivatedlandreport", null, 0);
TempfilePath = $"{path}\\Exportcultivatedlandreport.gdb";
ProjInfo = MapsManager.Instance.CurrProjectInfo as ProjectInfo;
string dbPath = System.IO.Path.GetDirectoryName((MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo).GetProjFilePath()) + @"\BGTJ.sqlite";
IWorkspaceFactory pOutWorkFactory = null;
pOutWorkFactory = new SqlWorkspaceFactoryClass();
IFeature feature = null;
if (BWGDFeatureClass != null)
{
paramClass = new GPParamClass()
{
FirstFeatureLayer = new FeatureLayerClass() { FeatureClass = DLTBGXGC },
SecondFeatureLayer = new FeatureLayerClass() { FeatureClass = BWGDFeatureClass, Name = "BWGD" },
OutFeatureClassPath = $"{TempfilePath}\\BWGD_Union",
IsGetOutPutFeature = true,
PreserveAttributes = "ALL"
};
GeoprocessorHelper.UnionAnalysis(paramClass, ref Temp_Union, ProjInfo.XYResolution.ToString());
if (HHFWFeatureClass != null)
{
paramClass = new GPParamClass()
{
FirstFeatureLayer = Temp_Union,
SecondFeatureLayer = new FeatureLayerClass() { FeatureClass = HHFWFeatureClass },
OutFeatureClassPath = $"{TempfilePath}\\HHFW_Union",
IsGetOutPutFeature = true,
PreserveAttributes = "ALL"
};
}
GeoprocessorHelper.UnionAnalysis(paramClass, ref Temp_Union, ProjInfo.XYResolution.ToString());
paramClass = new GPParamClass();
paramClass.FirstFeatureLayer = Temp_Union;
paramClass.OutFeatureClassPath = $"{TempfilePath}\\BWGD_Multipart";
paramClass.IsGetOutPutFeature = true;
GeoprocessorHelper.MultipartToSinglePath(paramClass, ref multipartToSingleFeatureLayer);
IWorkspace pOutWork = pOutWorkFactory.OpenFromFile(dbPath, 0);
pCursor = multipartToSingleFeatureLayer.FeatureClass.Update(new QueryFilterClass() { SubFields = "OBJECTID,TBBGMJ,SHAPE", WhereClause = " (BGHDLBM='0101' or BGHDLBM='0102' or BGHDLBM='0103') and BGHGDPDJB<>'5' " }, true);
var _itbmj = multipartToSingleFeatureLayer.FeatureClass.FindField("TBBGMJ");
while ((feature = pCursor.NextFeature()) != null)
{
double area = GetEllipseArea(feature.ShapeCopy);
feature.Value[_itbmj] = area;
feature.Store();
}
rdbHelper.ExecuteSQL($" drop table BWGD_Multipart ");
TableToTable((multipartToSingleFeatureLayer.FeatureClass as FeatureClass).Workspace as IFeatureWorkspace, pOutWork, "BWGD_Multipart");
}
else if (HHFWFeatureClass != null)
{
paramClass = new GPParamClass()
{
FirstFeatureLayer = new FeatureLayerClass() { FeatureClass = DLTBGXGC },
SecondFeatureLayer = new FeatureLayerClass() { FeatureClass = HHFWFeatureClass },
OutFeatureClassPath = $"{TempfilePath}\\HHFW_Union",
IsGetOutPutFeature = true,
PreserveAttributes = "ALL"
};
GeoprocessorHelper.UnionAnalysis(paramClass, ref Temp_Union, ProjInfo.XYResolution.ToString());
paramClass = new GPParamClass();
paramClass.FirstFeatureLayer = Temp_Union;
paramClass.OutFeatureClassPath = $"{TempfilePath}\\BWGD_Multipart";
paramClass.IsGetOutPutFeature = true;
GeoprocessorHelper.MultipartToSinglePath(paramClass, ref multipartToSingleFeatureLayer);
IWorkspace pOutWork = pOutWorkFactory.OpenFromFile(dbPath, 0);
pCursor = multipartToSingleFeatureLayer.FeatureClass.Update(new QueryFilterClass() { SubFields = "OBJECTID,TBBGMJ,SHAPE", WhereClause = " (BGHDLBM='0101' or BGHDLBM='0102' or BGHDLBM='0103') and BGHGDPDJB<>'5' " }, true);
var _itbmj = multipartToSingleFeatureLayer.FeatureClass.FindField("TBBGMJ");
while ((feature = pCursor.NextFeature()) != null)
{
double area = GetEllipseArea(feature.ShapeCopy);
feature.Value[_itbmj] = area;
feature.Store();
}
rdbHelper.ExecuteSQL($" drop table BWGD_Multipart ");
TableToTable((multipartToSingleFeatureLayer.FeatureClass as FeatureClass).Workspace as IFeatureWorkspace, pOutWork, "BWGD_Multipart");
}
if (LNGDFeatureClass != null)
{
paramClass = new GPParamClass()
{
FirstFeatureLayer = new FeatureLayerClass() { FeatureClass = DLTBGXGC },
SecondFeatureLayer = new FeatureLayerClass() { FeatureClass = LNGDFeatureClass },
OutFeatureClassPath = $"{TempfilePath}\\LNGD_Union",
IsGetOutPutFeature = true,
PreserveAttributes = "ALL"
};
GeoprocessorHelper.UnionAnalysis(paramClass, ref Temp_Union, ProjInfo.XYResolution.ToString());
paramClass = new GPParamClass();
paramClass.FirstFeatureLayer = Temp_Union;
paramClass.OutFeatureClassPath = $"{TempfilePath}\\LNGD_Multipart";
paramClass.IsGetOutPutFeature = true;
GeoprocessorHelper.MultipartToSinglePath(paramClass, ref multipartToSingleFeatureLayer);
IWorkspace pOutWork = pOutWorkFactory.OpenFromFile(dbPath, 0);
pCursor = multipartToSingleFeatureLayer.FeatureClass.Update(new QueryFilterClass() { SubFields = "OBJECTID,TBBGMJ,SHAPE", WhereClause = " (BGHDLBM='0101' or BGHDLBM='0102' or BGHDLBM='0103') and BGHGDPDJB<>'5' " }, true);
var _itbmj = multipartToSingleFeatureLayer.FeatureClass.FindField("TBBGMJ");
while ((feature = pCursor.NextFeature()) != null)
{
double area = GetEllipseArea(feature.ShapeCopy);
feature.Value[_itbmj] = area;
feature.Store();
}
rdbHelper.ExecuteSQL($" drop table LNGD_Multipart ");
TableToTable((multipartToSingleFeatureLayer.FeatureClass as FeatureClass).Workspace as IFeatureWorkspace, pOutWork, "LNGD_Multipart");
}
}
catch (Exception ex)
{
LogAPI.Debug($"GetUnionResult执行错误:{ex.Message}");
LogAPI.Debug(ex);
}
finally
{
if (Temp_Union != null)
Marshal.ReleaseComObject(Temp_Union);
if (multipartToSingleFeatureLayer != null)
Marshal.ReleaseComObject(multipartToSingleFeatureLayer);
}
}
#endregion
#region DelectDirect
private static void DelectDirect(string srcPath)
{
try
{
DirectoryInfo dir = new DirectoryInfo(srcPath);
FileSystemInfo[] fileinfo = dir.GetFileSystemInfos(); //返回目录中所有文件和子目录
foreach (FileSystemInfo i in fileinfo)
{
if (i is DirectoryInfo) //判断是否文件夹
{
DirectoryInfo subdir = new DirectoryInfo(i.FullName);
subdir.Delete(true); //删除子目录和文件
}
else
{
File.Delete(i.FullName); //删除指定文件
}
}
}
catch (Exception e)
{
throw;
}
}
#endregion
public bool TableToTable(IFeatureWorkspace pInWork, IWorkspace pOutWork, string tableName, IQueryFilter queryFilter = null)
{
try
{
if (pInWork == null || pOutWork == null || string.IsNullOrEmpty(tableName)) return false;
IWorkspace2 workspace2 = pInWork as IWorkspace2;
if (workspace2 != null)
{
if (!workspace2.get_NameExists(esriDatasetType.esriDTFeatureClass, tableName))
{
return false;
}
}
ITable pInTable = pInWork.OpenTable(tableName);
if (pInTable == null) return false;
IDataset pIndataset = (IDataset)pInTable;
IDatasetName pInDatasetName = (IDatasetName)pIndataset.FullName;
IEnumDataset enumDataset = pOutWork.get_Datasets(esriDatasetType.esriDTTable);
IDataset dataset;
enumDataset.Reset();
while ((dataset = enumDataset.Next()) != null)
{
string[] names = dataset.Name.Split('.');
if (string.Equals(names[names.Length - 1], tableName, StringComparison.CurrentCultureIgnoreCase))
{
dataset.Delete();
break;
}
}
IDataset pOutDataset = (IDataset)pOutWork;
IDatasetName pOutDatasetName = new TableNameClass();
pOutDatasetName.WorkspaceName = (IWorkspaceName)pOutDataset.FullName;
pOutDatasetName.Name = tableName;
IFieldChecker fieldChecker = new FieldCheckerClass();
IFields targetFeatureClassFields = pInTable.Fields;
IFields sourceFeatureClassFields = pInTable.Fields;
IEnumFieldError enumFieldError;
fieldChecker.InputWorkspace = pInWork as IWorkspace;
fieldChecker.ValidateWorkspace = pOutWork;
fieldChecker.Validate(sourceFeatureClassFields, out enumFieldError, out targetFeatureClassFields);
IFeatureDataConverter one2another = new FeatureDataConverterClass();
try
{
one2another.ConvertTable(pInDatasetName, queryFilter, pOutDatasetName, targetFeatureClassFields, "", 1000, 0);
}
finally
{
Marshal.ReleaseComObject(one2another);
}
return true;
}
catch (Exception ex)
{
//LogAPI.Debug(ex);
throw ex;
}
}
public double GetEllipseArea(IGeometry polygon)
{
try
{
// 1、获得投影
String SphName = polygon.SpatialReference.Name.ToString().ToUpper();
// 2、获得椭球
ICoordinate coordinate = CoordinateFactory.CreateCoordinate();
if (SphName.Contains("XIAN_1980") || SphName.Contains("XIAN1980"))
{
coordinate = CoordinateFactory.CreateCoordinate(KGIS.Framework.AE.GaussCalculate.Spheroid.SphXian80);
}
else if (SphName.Contains("BEIJING_1954") || SphName.Contains("BEIJING1954"))
{
coordinate = CoordinateFactory.CreateCoordinate(KGIS.Framework.AE.GaussCalculate.Spheroid.SphBeijing54);
}
else if (SphName.Contains("WGS_1984") || SphName.Contains("WGS1984"))
{
coordinate = CoordinateFactory.CreateCoordinate(KGIS.Framework.AE.GaussCalculate.Spheroid.SphWGS84);
}
else if (SphName.Contains("CGCS_2000") || SphName.Contains("CGCS2000"))
{
coordinate = CoordinateFactory.CreateCoordinate(KGIS.Framework.AE.GaussCalculate.Spheroid.SphCGCS2000);
}
else
{
return -1;
}
// 3、计算面积
IGeometry pGeometry = polygon as IGeometry;
double PolygonArea = 0.0;
// 4、保留两位小数
PolygonArea = Math.Round(coordinate.CalculateTerranArea(pGeometry), 2, MidpointRounding.AwayFromZero);
return PolygonArea;
}
catch (Exception ex)
{
throw ex;
}
}
private void btnCancel_Click(object sender, RoutedEventArgs e)
{
Close();
}
//不稳耕地
private IFeatureClass BWGDFeatureClass { get; set; }
//河湖范围
private IFeatureClass HHFWFeatureClass { get; set; }
//历年耕地
private IFeatureClass LNGDFeatureClass { get; set; }
private string BWGDName { get; set; }
private string HHFWName { get; set; }
private string LNGDName { get; set; }
private void btnSelectNCData_Click(object sender, RoutedEventArgs e)
{
try
{
MessageHelper.ShowTips("请选择基础数据汇总表格,如:.../基础数据包");
System.Windows.Forms.FolderBrowserDialog folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
folderBrowserDialog.Description = "请选择文件夹路径";
folderBrowserDialog.ShowNewFolderButton = true;
if (!string.IsNullOrWhiteSpace(Properties.Settings.Default.LastSelectedFolder) && System.IO.Directory.Exists(Properties.Settings.Default.LastSelectedFolder))
{
folderBrowserDialog.SelectedPath = Properties.Settings.Default.LastSelectedFolder;
}
else
{
folderBrowserDialog.RootFolder = Environment.SpecialFolder.Desktop;
}
if (folderBrowserDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
{
return;
}
Properties.Settings.Default.LastSelectedFolder = folderBrowserDialog.SelectedPath.ToString();
Properties.Settings.Default.Save();
if (string.IsNullOrWhiteSpace(folderBrowserDialog.SelectedPath))
{
return;
}
txtNCData.Text = folderBrowserDialog.SelectedPath;
}
catch (System.Exception ex)
{
LogAPI.Debug("选择年初数据表格时异常,异常原因: " + ex + " ; ");
}
}
private void btnSelectZTData_Click(object sender, RoutedEventArgs e)
{
IFeatureClass pFeatureClass = null;
try
{
this.txtBWGDData.Text = string.Empty;
KGIS.Framework.OpenData.Control.OpenDataDialog pDialog = null;
if (pDialog == null)
{
pDialog = new KGIS.Framework.OpenData.Control.OpenDataDialog();
}
KGIS.Framework.OpenData.InterFace.ISpatialDataObjectFilter pOFilter = new KGIS.Framework.OpenData.Filter.FilterShapefiles();
pDialog.AddFilter(pOFilter, true);
pOFilter = new KGIS.Framework.OpenData.Filter.FilterFeatureDatasetsAndFeatureClasses();
pDialog.AddFilter(pOFilter, true);
pDialog.Title = "选择数据源";
pDialog.RestoreLocation = true;
pDialog.StartLocation = pDialog.FinalLocation;
pDialog.AllowMultiSelect = true;
System.Windows.Forms.DialogResult dialogResult = pDialog.ShowDialog();
if (dialogResult == System.Windows.Forms.DialogResult.OK && pDialog.Selection.Count != 0)
{
foreach (KGIS.Framework.OpenData.InterFace.ISpatialDataObject distObj in pDialog.Selection)
{
if (distObj.DatasetType == ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTFeatureClass)
{
pFeatureClass = (distObj.DatasetName as ESRI.ArcGIS.esriSystem.IName).Open() as IFeatureClass;
if (pFeatureClass != null)
{
BWGDFeatureClass = pFeatureClass;
BWGDName = (pFeatureClass as FeatureClass).BrowseName;
this.txtBWGDData.Text = distObj.FullName;
break;
}
}
}
}
}
catch (Exception ex)
{
LogAPI.Debug(ex);
MessageHelper.ShowError("选择图层出现异常:" + ex.Message);
}
}
private void btnsavePath_Click(object sender, RoutedEventArgs e)
{
try
{
System.Windows.Forms.FolderBrowserDialog folderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
folderBrowserDialog.Description = "请选择文件夹路径";
folderBrowserDialog.ShowNewFolderButton = true;
if (!string.IsNullOrWhiteSpace(Properties.Settings.Default.LastSelectedFolder) && System.IO.Directory.Exists(Properties.Settings.Default.LastSelectedFolder))
{
folderBrowserDialog.SelectedPath = Properties.Settings.Default.LastSelectedFolder;
}
else
{
folderBrowserDialog.RootFolder = Environment.SpecialFolder.Desktop;
}
if (folderBrowserDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK)
{
return;
}
Properties.Settings.Default.LastSelectedFolder = folderBrowserDialog.SelectedPath.ToString();
Properties.Settings.Default.Save();
if (string.IsNullOrWhiteSpace(folderBrowserDialog.SelectedPath))
{
return;
}
txtsavePath.Text = folderBrowserDialog.SelectedPath;
}
catch (System.Exception ex)
{
LogAPI.Debug("选择导出路径异常,异常原因: " + ex + " ; ");
}
}
private void btnSelectHHFWData_Click(object sender, RoutedEventArgs e)
{
IFeatureClass pFeatureClass = null;
try
{
this.txtHHFWData.Text = string.Empty;
KGIS.Framework.OpenData.Control.OpenDataDialog pDialog = null;
if (pDialog == null)
{
pDialog = new KGIS.Framework.OpenData.Control.OpenDataDialog();
}
KGIS.Framework.OpenData.InterFace.ISpatialDataObjectFilter pOFilter = new KGIS.Framework.OpenData.Filter.FilterShapefiles();
pDialog.AddFilter(pOFilter, true);
pOFilter = new KGIS.Framework.OpenData.Filter.FilterFeatureDatasetsAndFeatureClasses();
pDialog.AddFilter(pOFilter, true);
pDialog.Title = "选择数据源";
pDialog.RestoreLocation = true;
pDialog.StartLocation = pDialog.FinalLocation;
pDialog.AllowMultiSelect = true;
System.Windows.Forms.DialogResult dialogResult = pDialog.ShowDialog();
if (dialogResult == System.Windows.Forms.DialogResult.OK && pDialog.Selection.Count != 0)
{
foreach (KGIS.Framework.OpenData.InterFace.ISpatialDataObject distObj in pDialog.Selection)
{
if (distObj.DatasetType == ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTFeatureClass)
{
pFeatureClass = (distObj.DatasetName as ESRI.ArcGIS.esriSystem.IName).Open() as IFeatureClass;
if (pFeatureClass != null)
{
HHFWFeatureClass = pFeatureClass;
HHFWName = (pFeatureClass as FeatureClass).BrowseName;
this.txtHHFWData.Text = distObj.FullName;
break;
}
}
}
}
}
catch (Exception ex)
{
LogAPI.Debug(ex);
MessageHelper.ShowError("选择图层出现异常:" + ex.Message);
}
}
private void btnSelectLNGDData_Click(object sender, RoutedEventArgs e)
{
IFeatureClass pFeatureClass = null;
try
{
this.txtLNGDData.Text = string.Empty;
KGIS.Framework.OpenData.Control.OpenDataDialog pDialog = null;
if (pDialog == null)
{
pDialog = new KGIS.Framework.OpenData.Control.OpenDataDialog();
}
KGIS.Framework.OpenData.InterFace.ISpatialDataObjectFilter pOFilter = new KGIS.Framework.OpenData.Filter.FilterShapefiles();
pDialog.AddFilter(pOFilter, true);
pOFilter = new KGIS.Framework.OpenData.Filter.FilterFeatureDatasetsAndFeatureClasses();
pDialog.AddFilter(pOFilter, true);
pDialog.Title = "选择数据源";
pDialog.RestoreLocation = true;
pDialog.StartLocation = pDialog.FinalLocation;
pDialog.AllowMultiSelect = true;
System.Windows.Forms.DialogResult dialogResult = pDialog.ShowDialog();
if (dialogResult == System.Windows.Forms.DialogResult.OK && pDialog.Selection.Count != 0)
{
foreach (KGIS.Framework.OpenData.InterFace.ISpatialDataObject distObj in pDialog.Selection)
{
if (distObj.DatasetType == ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTFeatureClass)
{
pFeatureClass = (distObj.DatasetName as ESRI.ArcGIS.esriSystem.IName).Open() as IFeatureClass;
if (pFeatureClass != null)
{
LNGDFeatureClass = pFeatureClass;
LNGDName = (pFeatureClass as FeatureClass).BrowseName;
this.txtLNGDData.Text = distObj.FullName;
break;
}
}
}
}
}
catch (Exception ex)
{
LogAPI.Debug(ex);
MessageHelper.ShowError("选择图层出现异常:" + ex.Message);
}
}
}
}