using SuperMap.Data; using SuperMap.Mapping; using System; using System.Data; using System.Drawing; using System.Windows.Forms; using WWPipeLine.MapBasic; using WWPipeLine.MapBasic.Conditions; namespace WWPipeLine.MapTools.Conditions.AnalystToolBar { public class ChaiQian : BasicToolBar { public ChaiQian() : base() { this.ConditionPanelName = "拆迁分析"; var analystToolStripButton = new ToolStripButton() { DisplayStyle = ToolStripItemDisplayStyle.ImageAndText, Text = "拆迁分析", Name = "Analyst", AutoToolTip = false }; base.ToolStrip.Items.Add(analystToolStripButton); analystToolStripButton.Click += AnalystToolStripButton_Click; } private void AnalystToolStripButton_Click(object sender, EventArgs e) { int index = MapControl.Map.TrackingLayer.IndexOf(ComsStatic.ControlToolsTrackingName); if (index == -1) { Sunny.UI.UIMessageTip.ShowError("请先绘制区域"); return; } GeoRegion geo = MapControl.Map.TrackingLayer.Get(index) as GeoRegion; DataSet dtsLayer = new DataSet(); DatasetVector dv; Recordset ds; DataTable dt; foreach (Layer lyr in ComsStatic.MapLayersUsed) { dv = lyr.Dataset as DatasetVector; if (dv is null) continue; ds = dv.Query(geo, 0, CursorType.Static); if (ds is null) continue; dt = ComsStatic.RecordsetToDataTable(ds); if (dt.Rows.Count == 0) continue; dt.TableName = string.Format("{0} 影响{1}个", lyr.Caption, dt.Rows.Count); dtsLayer.Tables.Add(dt); } AnalystResultTabControl from = new AnalystResultTabControl(dtsLayer, "拆迁分析结果"); from.ShowDialog(); this.CloseToolBar(); } protected override void OnLoad(EventArgs e) { MapControl.Action = SuperMap.UI.Action.CreatePolygon; MapControl.Tracked += ComsStatic.MapControl_Tracked_TrackingName; } private void InitializeComponent() { this.SuspendLayout(); // // ToolsConditions // this.Name = "ToolsConditions"; this.ResumeLayout(false); } } }