123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- using SuperMap.Data;
- using SuperMap.Mapping;
- using System;
- using System.Collections.Generic;
- using System.Data;
- using System.Drawing;
- using System.Windows.Forms;
- using WWPipeLine.MapBasic;
- using WWPipeLine.MapBasic.Conditions;
- namespace WWPipeLine.MapTools.Conditions.AnalystToolBar
- {
- public class YuJing : BasicToolBar
- {
- GeoRegion m_geo = null;
- public YuJing() : base()
- {
- this.ConditionPanelName = "预警分析";
- var startDrawToolStripButton = new ToolStripButton()
- {
- DisplayStyle = ToolStripItemDisplayStyle.ImageAndText,
- Text = "绘制预警区域",
- Name = "StartDraw",
- AutoToolTip = false
- };
- var analystToolStripButton = new ToolStripButton()
- {
- DisplayStyle = ToolStripItemDisplayStyle.ImageAndText,
- Text = "分析",
- Name = "Analyst",
- AutoToolTip = false
- };
- base.ToolStrip.Items.Add(startDrawToolStripButton);
- base.ToolStrip.Items.Add(analystToolStripButton);
- startDrawToolStripButton.Click += StartDrawToolStripButton_Click;
- analystToolStripButton.Click += AnalystToolStripButton_Click;
- }
- private void AnalystToolStripButton_Click(object sender, EventArgs e)
- {
- if (m_geo is null) { Sunny.UI.UIMessageTip.ShowError("请先绘制预警区域"); return; }
- Recordset rdJSLK = dvJSLK_cp.Query(m_geo, 1, "1=1", CursorType.Static);
- if (rdJSLK is null)
- {
- Sunny.UI.UIMessageTip.ShowError("当前图层没有查询到数据"); return;
- }
- DataTable dt = MapBasic.ComsStatic.RecordsetToDataTable(rdJSLK);
- rdJSLK.Close(); rdJSLK.Dispose();
- DataTable dtNew = dt.DefaultView.ToTable(false, new string[] { "smid", "bsm", "qsdh", "zddh", "lx", "cz", "gj", "dzms", "msfs", "msrq", "qsdw", "cd" });
- DataColumn dataColumn;
- dataColumn = new DataColumn { ColumnName = "nxyj", Caption = "预警年限" }; dtNew.Columns.Add(dataColumn); dtNew.Columns["nxyj"].SetOrdinal(0);
- dataColumn = new DataColumn { ColumnName = "nxbz", Caption = "标准使用年限" }; dtNew.Columns.Add(dataColumn); dtNew.Columns["nxbz"].SetOrdinal(1);
- DataTable dtChaoChu = dtNew.Clone();
- DataTable dtQueShao = dtNew.Clone();
- DataTable dtYuJing = dtNew.Clone();
- Dictionary<string, object> dic = ComsStatic.getGuanXianPeiZhi("年限预警配置");
- string dicKey1 = "";
- string dicKey2 = "";
- int NianXianYuJing = 0;
- int NianXianBiaoZhun = 0;
- foreach (DataRow dr in dtNew.Rows)
- {
- NianXianYuJing = 0; NianXianBiaoZhun = 0;
- dicKey1 = dr["cz"].ToString() + "_gxyjnx";
- dicKey2 = dr["cz"].ToString() + "_gxbznx";
- if (dic.ContainsKey(dicKey1)) NianXianYuJing = MapBasic.ComsStatic.StringToInt(dic[dicKey1]);
- if (dic.ContainsKey(dicKey2)) NianXianBiaoZhun = MapBasic.ComsStatic.StringToInt(dic[dicKey2]);
- if (NianXianYuJing == 0 || NianXianBiaoZhun == 0)
- {
- dtQueShao.ImportRow(dr); continue;
- }
- dr["nxyj"] = NianXianYuJing; dr["nxbz"] = NianXianBiaoZhun;
- DateTime msrq = DateTime.Parse(dr["msrq"].ToString());
- //已经超过 标准年限
- if (DateTime.Now > msrq.AddYears(NianXianBiaoZhun))
- dtChaoChu.ImportRow(dr);
- //超过预警年限 未达到标准年限
- if (DateTime.Now > msrq.AddYears(NianXianYuJing) && DateTime.Now < msrq.AddYears(NianXianBiaoZhun))
- dtYuJing.ImportRow(dr);
- }
- DataSet ds = new DataSet();
- dtYuJing.TableName = string.Format("达到预警年限 {0}根", dtYuJing.Rows.Count); ds.Tables.Add(dtYuJing);
- dtChaoChu.TableName = string.Format("超出使用年限 {0}根", dtChaoChu.Rows.Count); ds.Tables.Add(dtChaoChu);
- dtQueShao.TableName = string.Format("缺少配置预警 {0}根", dtQueShao.Rows.Count); ds.Tables.Add(dtQueShao);
- AnalystResultTabControl from = new AnalystResultTabControl(ds, "预警分析结果");
- from.ShowDialog();
- this.CloseToolBar();
- }
- private void MapControl_Tracked(object sender, SuperMap.UI.TrackedEventArgs e)
- {
- if (e.Geometry is null) return;
- m_geo = e.Geometry.Clone() as GeoRegion;
- if (m_geo is null) { Sunny.UI.UIMessageTip.ShowError("查询区域绘制失败"); return; }
- m_geo.Style = ComsStatic.geoStyle_Red_1mm_OpaqueRate;
- MapControl.Map.TrackingLayer.Clear();
- MapControl.Map.TrackingLayer.Add(m_geo, "GeoRectangle");
- MapControl.Map.Refresh();
- }
- private void StartDrawToolStripButton_Click(object sender, EventArgs e)
- {
- MapControl.Map.TrackingLayer.Clear();
- MapControl.Action = SuperMap.UI.Action.CreatePolygon;
- MapControl.Tracked += MapControl_Tracked;
- }
- public override void AfterClose()
- {
- MapControl.Tracked -= MapControl_Tracked;
- base.AfterClose();
- }
- private void InitializeComponent()
- {
- this.SuspendLayout();
- //
- // ToolsConditions
- //
- this.Name = "ToolsConditions";
- this.ResumeLayout(false);
- }
- }
- }
|