| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- 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;
- namespace WWPipeLine.MapTools.Conditions.Statistics
- {
- public partial class GDshuliang : ConditionPanel
- {
- private LayerWithDataListPanel LayerPanel;
- public bool isGeo = false;
- public GDshuliang() : base()
- {
- this.ConditionPanelName = "管点数量统计";
- this.SetSize(300, 300);
- InitializeComponent();
- }
- protected override void OnLoad(EventArgs e)
- {
- LayerPanel = new LayerWithDataListPanel();
- LayerPanel.LoadToVector(true, false);
- this.Controls.Add(LayerPanel);
- }
- public override object Do(DockPanel dockPanel = null)
- {
- if (LayerPanel.SelectLayers.Count == 0)
- {
- Sunny.UI.UIMessageTip.ShowError("请先选择需要查询的图层"); return false;
- }
- if (isGeo)
- {
- if (MapControl.Map.TrackingLayer.IndexOf(ComsStatic.ControlToolsTrackingName) == -1)
- {
- Sunny.UI.UIMessageTip.ShowError("请先绘制区域"); return false;
- }
- }
- DataTable dt = new DataTable() { TableName = "管点数量统计结果" };
- #region 一行标题,一行结果,多列
- DataRow dr;
- dt.Columns.Add("统计图层");
- foreach (Layer lyr in LayerPanel.SelectLayers)
- {
- dt.Columns.Add(lyr.Caption);
- }
- dr = dt.NewRow(); dr["统计图层"] = "管点数量";
- DatasetVector dv;
- if (isGeo)
- {
- GeoRegion geo = MapControl.Map.TrackingLayer.Get(MapControl.Map.TrackingLayer.IndexOf(ComsStatic.ControlToolsTrackingName)) as GeoRegion;
- Recordset rd = null;
- foreach (Layer lyr in LayerPanel.SelectLayers)
- {
- dv = lyr.Dataset as DatasetVector;
- rd = dv.Query(geo, 1, CursorType.Static);
- dr[lyr.Caption] = rd.RecordCount;
- }
- ComsStatic.RecordsetDispose(rd);
- }
- else
- {
- foreach (Layer lyr in LayerPanel.SelectLayers)
- {
- dv = lyr.Dataset as DatasetVector;
- dr[lyr.Caption] = dv.RecordCount;
- }
- }
- dt.Rows.Add(dr);
- #endregion
- #region 一行标题 一列结果 多行
- //DataRow dr;
- //dt.Columns.Add("统计图层"); dt.Columns.Add("管点数量");
- //DatasetVector dv;
- //foreach (Layer lyr in LayerPanel.SelectLayers)
- //{
- // dr = dt.NewRow();
- // dr["统计图层"] = lyr.Caption;
- // dv = lyr.Dataset as DatasetVector;
- // dr["管点数量"] = dv.RecordCount;
- // dt.Rows.Add(dr);
- //}
- #endregion
- return dt;
- }
- }
- }
|