using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using WWPipeLine.MapBasic.Conditions; using WeifenLuo.WinFormsUI.Docking; using SuperMap.UI; using SuperMap.Mapping; using SuperMap.Data; using WWPipeLine.MapBasic; using Sunny.UI; namespace WWPipeLine.MapTools.Conditions.EditGuanWang { public partial class GuanXianXiuGai : ConditionPanel { private Recordset rd = null; private Selection[] _selection; public int statusPat = 0; public GuanXianXiuGai() { this.ConditionPanelName = "管线属性修改"; InitializeComponent(); this.IsShowResultWindow = false; } protected override void OnLoad(EventArgs e) { ComsStatic.SetLayersIsSelectableFalse(ComsStatic.gsGuanXian.Name, true); MapControl.GeometrySelected += MapControl_GeometrySelected; MapControl.Action = SuperMap.UI.Action.Select; } private void MapControl_GeometrySelected(object sender, GeometrySelectedEventArgs e) { _selection = MapControl.Map.FindSelection(true); if (_selection.Length != 1 || _selection[0].Count != 1) { Sunny.UI.UIMessageTip.ShowError("仅可以选择一根管线进行操作"); return; } rd = _selection[0].ToRecordset(); if (rd.Dataset.Name != ComsStatic.gsGuanXian.Name) { Sunny.UI.UIMessageTip.ShowError("仅可以选择供水管线图层!"); return; } rd.MoveFirst(); uitb_bsm.Text = rd.GetString("bsm"); uitb_zcbh.Text = rd.GetString("zcbh"); uitbGdbh.Text = rd.GetString("gdbh"); uitb_tz.Text = rd.GetString("tz"); uitb_cz.Text = rd.GetString("cz"); uitb_gj.Text = rd.GetString("gj"); uitb_yl.Text = rd.GetString("yl"); uitb_cd.Text = rd.GetFieldValue("cd").ToString(); uitb_msfs.Text = rd.GetString("msfs"); uidp_msrq.Text = rd.GetString("msrq"); uitb_dzms.Text = rd.GetString("dzms"); uitb_qsdw.Text = rd.GetString("qsdw"); uitb_tcdw.Text = rd.GetString("tcdw"); uitb_bz.Text = rd.GetString("bz"); } public override object Do(DockPanel dockPanel = null) { if (rd is null || rd.RecordCount != 1) { Sunny.UI.UIMessageTip.ShowError("仅可以选择一根管线进行操作"); return false; } if (statusPat == 2)//废弃 { rd.Edit(); rd.SetFieldValue("enabled", 0); ComsStatic.ShowUIMessageTipOKorError(rd.Update(), "管线废弃", uitb_zcbh.Text); } if (statusPat == 1)//删除 { ComsStatic.ShowUIMessageTipOKorError(rd.Delete(), "管线删除", uitb_zcbh.Text); } if (statusPat == 0)//修改 { double gxcd = rd.GetDouble("cd"); double shap = rd.GetDouble("shape_length"); if (gxcd > shap * 1.2 || gxcd < shap * 0.8) { Sunny.UI.UIMessageTip.ShowError("请输入正确的管线长度" ); return false; } rd.Edit(); rd.SetFieldValue("zcbh", uitb_zcbh.Text); rd.SetFieldValue("gdbh", uitbGdbh.Text); rd.SetFieldValue("tz", uitb_tz.Text); rd.SetFieldValue("cz", uitb_cz.Text); rd.SetFieldValue("gj", ComsStatic.StringToInt16(uitb_gj.Text)); rd.SetFieldValue("yl", ComsStatic.StringToDouble(uitb_yl.Text)); rd.SetFieldValue("cd", ComsStatic.StringToDouble(uitb_cd.Text)); rd.SetFieldValue("msfs", uitb_msfs.Text); if (!string.IsNullOrEmpty(uidp_msrq.Text)) rd.SetFieldValue("msrq", Convert.ToDateTime(uidp_msrq.Text)); rd.SetFieldValue("dzms", uitb_dzms.Text); rd.SetFieldValue("qsdw", uitb_qsdw.Text); rd.SetFieldValue("tcdw", uitb_tcdw.Text); rd.SetFieldValue("bz", uitb_bz.Text); ComsStatic.ShowUIMessageTipOKorError(rd.Update(), "管线修改", uitb_zcbh.Text); } _selection[0].Clear(); rd = null; MapControl.Map.Refresh(); uitb_bsm.Text = ""; uitb_zcbh.Text = ""; uitbGdbh.Text = ""; uitb_tz.Text = ""; uitb_cz.Text = ""; uitb_gj.Text = ""; uitb_yl.Text = ""; uitb_cd.Text = ""; uitb_msfs.Text = ""; uidp_msrq.Text = ""; uitb_dzms.Text = ""; uitb_qsdw.Text = ""; uitb_tcdw.Text = ""; uitb_bz.Text = ""; return null; } public override void AfterClose() { MapControl.GeometrySelected -= MapControl_GeometrySelected; ComsStatic.RecordsetDispose(rd); base.AfterClose(); } } }