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 GuanDianXiuGai : ConditionPanel { private Recordset rd = null; private Selection[] _selection; public bool isDelete = false; public GuanDianXiuGai() { this.ConditionPanelName = "管点属性修改"; InitializeComponent(); this.SetSize(500, 500); this.IsShowResultWindow = false; } protected override void OnLoad(EventArgs e) { ComsStatic.SetLayersIsSelectableFalse(ComsStatic.gsGuanXian.Name, false); 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(); rd.MoveFirst(); uitb_fldm.Text = rd.GetString("fldm"); uitb_bsm.Text = rd.GetString("bsm"); uitb_wth.Text = rd.GetString("wth"); uitb_ssbh.Text = rd.GetString("ssbh"); uitb_fsw.Text = rd.GetString("fsw"); uitb_tz.Text = rd.GetString("tz"); uitb_xh.Text = rd.GetString("xh"); uitb_gg.Text = rd.GetString("gg"); uitb_cz.Text = rd.GetString("cz"); uitb_gj.Text = rd.GetString("gj"); uitb_kj.Text = rd.GetString("kj"); uitb_yl.Text = rd.GetString("yl"); uitb_dmgc.Text = rd.GetString("dmgc"); uitb_ms.Text = rd.GetString("ms"); 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; } string bsm = rd.GetFieldValue("bsm").ToString(); string rdFLDM = rd.GetFieldValue("fldm").ToString(); Recordset rdGD = ComsStatic.gsGuanDian.Query(string.Format(" bsm='{0}' ", bsm), CursorType.Dynamic); if (rdGD is null || rdGD.RecordCount != 1) { Sunny.UI.UIMessageTip.ShowError("管点信息错误"); return false; } if (isDelete)//删除 { int jslkCount = ComsStatic.gsGuanXian.Query(string.Format(" qsdh='{0}' or zddh='{0}' ", bsm), CursorType.Static).RecordCount; if (jslkCount > 0) { UIMessageTip.ShowError("当前管点在管线中用到,禁止删除", 2000); return false; } if (rdGD.Delete()) { Commons.LogHelper.Info(string.Format("管点删除-删除总表管点成功!删除的标识码是{0}。", bsm)); if (rd.Delete()) { ComsStatic.ShowOKLog(rdFLDM + "删除成功", string.Format("管点删除-删除分表管点成功!{0}。", bsm)); } else { ComsStatic.ShowErrorLog(rdFLDM + "删除成功", string.Format("管点删除-删除分表管点失败!{0}。", bsm)); } } else { ComsStatic.ShowErrorLog(rdFLDM + "删除失败", bsm); } } else //修改 { rdGD.Edit(); rdGD.SetFieldValue("wth", uitb_wth.Text); rdGD.SetFieldValue("ssbh", uitb_ssbh.Text); rdGD.SetFieldValue("fsw", uitb_fsw.Text); rdGD.SetFieldValue("tz", uitb_tz.Text); rdGD.SetFieldValue("xh", uitb_xh.Text); rdGD.SetFieldValue("gg", uitb_gg.Text); rdGD.SetFieldValue("cz", uitb_cz.Text); rdGD.SetFieldValue("gj", ComsStatic.StringToInt16(uitb_gj.Text)); rdGD.SetFieldValue("kj", uitb_kj.Text); rdGD.SetFieldValue("yl", ComsStatic.StringToDouble(uitb_yl.Text)); rdGD.SetFieldValue("dmgc", ComsStatic.StringToDouble(uitb_dmgc.Text)); rdGD.SetFieldValue("ms", ComsStatic.StringToDouble(uitb_ms.Text)); rdGD.SetFieldValue("msfs", uitb_msfs.Text); if (!string.IsNullOrEmpty(uidp_msrq.Text)) rdGD.SetFieldValue("msrq", Convert.ToDateTime(uidp_msrq.Text)); rdGD.SetFieldValue("dzms", uitb_dzms.Text); rdGD.SetFieldValue("qsdw", uitb_qsdw.Text); rdGD.SetFieldValue("tcdw", uitb_tcdw.Text); rdGD.SetFieldValue("bz", uitb_bz.Text); if (rdGD.Update()) { ComsStatic.ShowOKLog(rdFLDM + "修改成功", bsm); DatasetVector dv = rd.Dataset as DatasetVector; if (dv.Query(string.Format(" bsm ='{0}' ", bsm), CursorType.Dynamic).Delete()) dv.Append(rdGD); } else { ComsStatic.ShowErrorLog(rdFLDM + "修改失败", bsm); } } ComsStatic.RecordsetDispose(rdGD); _selection[0].Clear(); rd = null; MapControl.Map.Refresh(); uitb_fldm.Text = ""; uitb_bsm.Text = ""; uitb_wth.Text = ""; uitb_ssbh.Text = ""; uitb_fsw.Text = ""; uitb_tz.Text = ""; uitb_xh.Text = ""; uitb_gg.Text = ""; uitb_cz.Text = ""; uitb_gj.Text = ""; uitb_kj.Text = ""; uitb_yl.Text = ""; uitb_dmgc.Text = ""; uitb_ms.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(); } } }