public abstract bool Is(ModQuery prop);
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 { //获取地名地物类 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; //} //IFeatureSelection pFeatureSelection = pFeatureLayer as IFeatureSelection; //ISelectionSet pFeatSet = pFeatureSelection.SelectionSet; //pFeatSet.Search(null, true, out pCursor); //pFeatureCursor = pCursor as IFeatureCursor; IGeometry pGeo = ModDBOperate.GetSelectFeatureGeom(pMap); ISpatialFilter pSpatialFilter = new SpatialFilterClass(); pSpatialFilter.GeometryField = "SHAPE"; pSpatialFilter.Geometry = pGeo; pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects; pFeatureCursor = pZLDJFeaClass.Search(pSpatialFilter, false); } else { pFeatureCursor = pZLDJFeaClass.Search(null, false); } pExportToExcel.Export(pZLDJFeaClass, pFeatureCursor, "林地质量等级分布", "林地质量等级", strZLDJ); System.Runtime.InteropServices.Marshal.ReleaseComObject(pFeatureCursor); } if (this.WriteLog) { Plugin.LogTable.Writelog("专题图统计-林地质量等级统计"); } } catch (Exception ex) { ErrorHandle.ShowFrmErrorHandle("提示", ex.Message); } }