using SuperMap.Data; using System; using System.Collections.Generic; using System.Data; using WeifenLuo.WinFormsUI.Docking; using WWPipeLine.MapBasic.Conditions; using WWPipeLine.MapBasic; using SuperMap.Mapping; using SuperMap.UI; namespace WWPipeLine.MapTools.Conditions.Statistics { public partial class GXchangduQY : ConditionPanel { GeoRegion m_geo = null; public GXchangduQY() : base() { this.ConditionPanelName = "区域管线长度统计"; InitializeComponent(); IsLoadBtnOKClick = true; } protected override void OnLoad(EventArgs e) { int index = MapControl.Map.TrackingLayer.IndexOf("ControlToolAddGeoRegion"); if (index == -1) { Sunny.UI.UIMessageTip.ShowError("请先绘制查询区域"); this.FindForm().Close(); return; } m_geo = MapControl.Map.TrackingLayer.Get(index) as GeoRegion; if (m_geo is null || m_geo.PartCount != 1) { ComsStatic.ShowErrorLog("绘制区域PartCount参数发生错误"); this.FindForm().Close(); return; } } public override object Do(DockPanel dockPanel = null) { DataTable dt = new DataTable(); dt.Columns.Add("统计图层"); dt.Columns.Add("管线长度"); //dt.Columns.Add("管线数量"); DataRow dr; dr = dt.NewRow(); dr["统计图层"] = "供水管线"; Recordset rd = ComsStatic.dvJSLK.Query(m_geo, 1, "1=1", CursorType.Static); dr["管线长度"] = rd.Statistic("cd", StatisticMode.Sum); //dr["管线数量"] = dvJSLK_cp.RecordCount; dt.Rows.Add(dr); ComsStatic.RecordsetDispose(rd); return dt; } } }