GuanDianXiuGai.cs 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using WWPipeLine.MapBasic.Conditions;
  11. using WeifenLuo.WinFormsUI.Docking;
  12. using SuperMap.UI;
  13. using SuperMap.Mapping;
  14. using SuperMap.Data;
  15. using WWPipeLine.MapBasic;
  16. using Sunny.UI;
  17. namespace WWPipeLine.MapTools.Conditions.EditGuanWang
  18. {
  19. public partial class GuanDianXiuGai : ConditionPanel
  20. {
  21. private Recordset rd = null;
  22. private Selection[] _selection;
  23. public bool isDelete = false;
  24. public GuanDianXiuGai()
  25. {
  26. this.ConditionPanelName = "管点属性修改";
  27. InitializeComponent();
  28. this.SetSize(500, 500);
  29. this.IsShowResultWindow = false;
  30. }
  31. protected override void OnLoad(EventArgs e)
  32. {
  33. ComsStatic.SetLayersIsSelectableFalse(ComsStatic.gsGuanXian.Name, false);
  34. MapControl.GeometrySelected += MapControl_GeometrySelected;
  35. MapControl.Action = SuperMap.UI.Action.Select;
  36. }
  37. private void MapControl_GeometrySelected(object sender, GeometrySelectedEventArgs e)
  38. {
  39. _selection = MapControl.Map.FindSelection(true);
  40. if (_selection.Length != 1 || _selection[0].Count != 1)
  41. {
  42. Sunny.UI.UIMessageTip.ShowError("仅可以选择一个管点进行操作"); return;
  43. }
  44. rd = _selection[0].ToRecordset();
  45. rd.MoveFirst();
  46. uitb_fldm.Text = rd.GetString("fldm");
  47. uitb_bsm.Text = rd.GetString("bsm");
  48. uitb_wth.Text = rd.GetString("wth");
  49. uitb_ssbh.Text = rd.GetString("ssbh");
  50. uitb_fsw.Text = rd.GetString("fsw");
  51. uitb_tz.Text = rd.GetString("tz");
  52. uitb_xh.Text = rd.GetString("xh");
  53. uitb_gg.Text = rd.GetString("gg");
  54. uitb_cz.Text = rd.GetString("cz");
  55. uitb_gj.Text = rd.GetString("gj");
  56. uitb_kj.Text = rd.GetString("kj");
  57. uitb_yl.Text = rd.GetString("yl");
  58. uitb_dmgc.Text = rd.GetString("dmgc");
  59. uitb_ms.Text = rd.GetString("ms");
  60. uitb_msfs.Text = rd.GetString("msfs");
  61. uidp_msrq.Text = rd.GetString("msrq");
  62. uitb_dzms.Text = rd.GetString("dzms");
  63. uitb_qsdw.Text = rd.GetString("qsdw");
  64. uitb_tcdw.Text = rd.GetString("tcdw");
  65. uitb_bz.Text = rd.GetString("bz");
  66. }
  67. public override object Do(DockPanel dockPanel = null)
  68. {
  69. if (rd is null || rd.RecordCount != 1)
  70. {
  71. Sunny.UI.UIMessageTip.ShowError("仅可以选择一个管点进行操作"); return false;
  72. }
  73. string bsm = rd.GetFieldValue("bsm").ToString();
  74. string rdFLDM = rd.GetFieldValue("fldm").ToString();
  75. Recordset rdGD = ComsStatic.gsGuanDian.Query(string.Format(" bsm='{0}' ", bsm), CursorType.Dynamic);
  76. if (rdGD is null || rdGD.RecordCount != 1)
  77. {
  78. Sunny.UI.UIMessageTip.ShowError("管点信息错误"); return false;
  79. }
  80. if (isDelete)//删除
  81. {
  82. int jslkCount = ComsStatic.gsGuanXian.Query(string.Format(" qsdh='{0}' or zddh='{0}' ", bsm), CursorType.Static).RecordCount;
  83. if (jslkCount > 0)
  84. {
  85. UIMessageTip.ShowError("当前管点在管线中用到,禁止删除", 2000); return false;
  86. }
  87. if (rdGD.Delete())
  88. {
  89. Commons.LogHelper.Info(string.Format("管点删除-删除总表管点成功!删除的标识码是{0}。", bsm));
  90. if (rd.Delete())
  91. {
  92. ComsStatic.ShowOKLog(rdFLDM + "删除成功", string.Format("管点删除-删除分表管点成功!{0}。", bsm));
  93. }
  94. else
  95. {
  96. ComsStatic.ShowErrorLog(rdFLDM + "删除成功", string.Format("管点删除-删除分表管点失败!{0}。", bsm));
  97. }
  98. }
  99. else
  100. {
  101. ComsStatic.ShowErrorLog(rdFLDM + "删除失败", bsm);
  102. }
  103. }
  104. else //修改
  105. {
  106. rdGD.Edit();
  107. rdGD.SetFieldValue("wth", uitb_wth.Text);
  108. rdGD.SetFieldValue("ssbh", uitb_ssbh.Text);
  109. rdGD.SetFieldValue("fsw", uitb_fsw.Text);
  110. rdGD.SetFieldValue("tz", uitb_tz.Text);
  111. rdGD.SetFieldValue("xh", uitb_xh.Text);
  112. rdGD.SetFieldValue("gg", uitb_gg.Text);
  113. rdGD.SetFieldValue("cz", uitb_cz.Text);
  114. rdGD.SetFieldValue("gj", ComsStatic.StringToInt16(uitb_gj.Text));
  115. rdGD.SetFieldValue("kj", uitb_kj.Text);
  116. rdGD.SetFieldValue("yl", ComsStatic.StringToDouble(uitb_yl.Text));
  117. rdGD.SetFieldValue("dmgc", ComsStatic.StringToDouble(uitb_dmgc.Text));
  118. rdGD.SetFieldValue("ms", ComsStatic.StringToDouble(uitb_ms.Text));
  119. rdGD.SetFieldValue("msfs", uitb_msfs.Text);
  120. if (!string.IsNullOrEmpty(uidp_msrq.Text))
  121. rdGD.SetFieldValue("msrq", Convert.ToDateTime(uidp_msrq.Text));
  122. rdGD.SetFieldValue("dzms", uitb_dzms.Text);
  123. rdGD.SetFieldValue("qsdw", uitb_qsdw.Text);
  124. rdGD.SetFieldValue("tcdw", uitb_tcdw.Text);
  125. rdGD.SetFieldValue("bz", uitb_bz.Text);
  126. if (rdGD.Update())
  127. {
  128. ComsStatic.ShowOKLog(rdFLDM + "修改成功", bsm);
  129. DatasetVector dv = rd.Dataset as DatasetVector;
  130. if (dv.Query(string.Format(" bsm ='{0}' ", bsm), CursorType.Dynamic).Delete())
  131. dv.Append(rdGD);
  132. }
  133. else
  134. {
  135. ComsStatic.ShowErrorLog(rdFLDM + "修改失败", bsm);
  136. }
  137. }
  138. ComsStatic.RecordsetDispose(rdGD);
  139. _selection[0].Clear(); rd = null;
  140. MapControl.Map.Refresh();
  141. uitb_fldm.Text = ""; uitb_bsm.Text = ""; uitb_wth.Text = ""; uitb_ssbh.Text = ""; uitb_fsw.Text = ""; uitb_tz.Text = ""; uitb_xh.Text = ""; uitb_gg.Text = "";
  142. uitb_cz.Text = ""; uitb_gj.Text = ""; uitb_kj.Text = ""; uitb_yl.Text = ""; uitb_dmgc.Text = ""; uitb_ms.Text = "";
  143. uitb_msfs.Text = ""; uidp_msrq.Text = ""; uitb_dzms.Text = ""; uitb_qsdw.Text = ""; uitb_tcdw.Text = ""; uitb_bz.Text = "";
  144. return null;
  145. }
  146. public override void AfterClose()
  147. {
  148. MapControl.GeometrySelected -= MapControl_GeometrySelected;
  149. ComsStatic.RecordsetDispose(rd);
  150. base.AfterClose();
  151. }
  152. }
  153. }