public override void OnClick() { if (m_Hook == null) { return; } if (m_Hook.MapControl == null) { return; } if (m_Hook.MapControl.Map == null) { return; } IMap pMap = m_Hook.MapControl.Map; if (pMap.LayerCount == 0) { return; } string strZLDJ = ""; IFeatureClass pZLDJFeaClass = null; string ZLDJLayerName = ""; SysCommon.ModSysSetting.CopyConfigXml(Plugin.ModuleCommon.TmpWorkSpace, "统计配置", ModQuery.m_StatisticsPath); //added by chulili 20111110先从业务库拷贝配置文件 try { //获取地名地物类 GeoDataCenterFunLib.ModQuery.GetPlaceNameStatisticsConfig(out pZLDJFeaClass, out ZLDJLayerName, out strZLDJ, "林业用地分布"); if (pZLDJFeaClass == null) { MessageBox.Show("林地图斑数据,请检查配置文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (pZLDJFeaClass != null) { if (pZLDJFeaClass.FindField(strZLDJ) < 0) { MessageBox.Show("找不到林地图斑数据地类属性,请检查配置文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); pZLDJFeaClass = null; return; } } frmSetStatistic pfrmSetStatistic = new frmSetStatistic(); if (pfrmSetStatistic.ShowDialog() == DialogResult.OK) { ExportToExcel pExportToExcel = new ExportToExcel(); IFeatureCursor pFeatureCursor = null;; if (pfrmSetStatistic.bIsCheck) { if (pMap.SelectionCount == 0) { MessageBox.Show("请在当前地图上选择林地图斑数!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } //IFeatureLayer pFeatureLayer = GetLayerByName(ZLDJLayerName, pMap) as IFeatureLayer; //if (pFeatureLayer == null) //{ // MessageBox.Show("找不到林地图斑数据,请先加载该数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); // return; //} IGeometry pGeo = ModDBOperate.GetSelectFeatureGeom(pMap); ISpatialFilter pSpatialFilter = new SpatialFilterClass(); pSpatialFilter.GeometryField = "SHAPE"; pSpatialFilter.Geometry = pGeo; pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; pFeatureCursor = pZLDJFeaClass.Search(pSpatialFilter, false); //IFeatureSelection pFeatureSelection = pFeatureLayer as IFeatureSelection; //ISelectionSet pFeatSet = pFeatureSelection.SelectionSet; //pFeatSet.Search(null, true, out pCursor); //pFeatureCursor = pCursor as IFeatureCursor; } else { pFeatureCursor = pZLDJFeaClass.Search(null, false); } pExportToExcel.ExportLDFB(pZLDJFeaClass, pFeatureCursor, "林业用地分布", "地类名称", strZLDJ); System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor); } if (this.WriteLog) { Plugin.LogTable.Writelog("专题图统计-林业用地统计");//ygc 2012-9-14 写日志 } } catch (Exception ex) { ErrorHandle.ShowFrmErrorHandle("提示", ex.Message); } }