GuanXianXiuGai.cs 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  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 GuanXianXiuGai : ConditionPanel
  20. {
  21. private Recordset rd = null;
  22. private Selection[] _selection;
  23. public int statusPat = 0;
  24. public GuanXianXiuGai()
  25. {
  26. this.ConditionPanelName = "管线属性修改";
  27. InitializeComponent();
  28. this.IsShowResultWindow = false;
  29. }
  30. protected override void OnLoad(EventArgs e)
  31. {
  32. ComsStatic.SetLayersIsSelectableFalse(ComsStatic.gsGuanXian.Name, true);
  33. MapControl.GeometrySelected += MapControl_GeometrySelected;
  34. MapControl.Action = SuperMap.UI.Action.Select;
  35. }
  36. private void MapControl_GeometrySelected(object sender, GeometrySelectedEventArgs e)
  37. {
  38. _selection = MapControl.Map.FindSelection(true);
  39. if (_selection.Length != 1 || _selection[0].Count != 1)
  40. {
  41. Sunny.UI.UIMessageTip.ShowError("仅可以选择一根管线进行操作"); return;
  42. }
  43. rd = _selection[0].ToRecordset();
  44. if (rd.Dataset.Name != ComsStatic.gsGuanXian.Name)
  45. {
  46. Sunny.UI.UIMessageTip.ShowError("仅可以选择供水管线图层!"); return;
  47. }
  48. rd.MoveFirst();
  49. uitb_bsm.Text = rd.GetString("bsm");
  50. uitb_zcbh.Text = rd.GetString("zcbh");
  51. uitbGdbh.Text = rd.GetString("gdbh");
  52. uitb_tz.Text = rd.GetString("tz");
  53. uitb_cz.Text = rd.GetString("cz");
  54. uitb_gj.Text = rd.GetString("gj");
  55. uitb_yl.Text = rd.GetString("yl");
  56. uitb_cd.Text = rd.GetFieldValue("cd").ToString();
  57. uitb_msfs.Text = rd.GetString("msfs");
  58. uidp_msrq.Text = rd.GetString("msrq");
  59. uitb_dzms.Text = rd.GetString("dzms");
  60. uitb_qsdw.Text = rd.GetString("qsdw");
  61. uitb_tcdw.Text = rd.GetString("tcdw");
  62. uitb_bz.Text = rd.GetString("bz");
  63. }
  64. public override object Do(DockPanel dockPanel = null)
  65. {
  66. if (rd is null || rd.RecordCount != 1)
  67. {
  68. Sunny.UI.UIMessageTip.ShowError("仅可以选择一根管线进行操作"); return false;
  69. }
  70. if (statusPat == 2)//废弃
  71. {
  72. rd.Edit();
  73. rd.SetFieldValue("enabled", 0);
  74. ComsStatic.ShowUIMessageTipOKorError(rd.Update(), "管线废弃", uitb_zcbh.Text);
  75. }
  76. if (statusPat == 1)//删除
  77. {
  78. ComsStatic.ShowUIMessageTipOKorError(rd.Delete(), "管线删除", uitb_zcbh.Text);
  79. }
  80. if (statusPat == 0)//修改
  81. {
  82. double gxcd = rd.GetDouble("cd");
  83. double shap = rd.GetDouble("shape_length");
  84. if (gxcd > shap * 1.2 || gxcd < shap * 0.8)
  85. { Sunny.UI.UIMessageTip.ShowError("请输入正确的管线长度" ); return false; }
  86. rd.Edit();
  87. rd.SetFieldValue("zcbh", uitb_zcbh.Text);
  88. rd.SetFieldValue("gdbh", uitbGdbh.Text);
  89. rd.SetFieldValue("tz", uitb_tz.Text);
  90. rd.SetFieldValue("cz", uitb_cz.Text);
  91. rd.SetFieldValue("gj", ComsStatic.StringToInt16(uitb_gj.Text));
  92. rd.SetFieldValue("yl", ComsStatic.StringToDouble(uitb_yl.Text));
  93. rd.SetFieldValue("cd", ComsStatic.StringToDouble(uitb_cd.Text));
  94. rd.SetFieldValue("msfs", uitb_msfs.Text);
  95. if (!string.IsNullOrEmpty(uidp_msrq.Text))
  96. rd.SetFieldValue("msrq", Convert.ToDateTime(uidp_msrq.Text));
  97. rd.SetFieldValue("dzms", uitb_dzms.Text);
  98. rd.SetFieldValue("qsdw", uitb_qsdw.Text);
  99. rd.SetFieldValue("tcdw", uitb_tcdw.Text);
  100. rd.SetFieldValue("bz", uitb_bz.Text);
  101. ComsStatic.ShowUIMessageTipOKorError(rd.Update(), "管线修改", uitb_zcbh.Text);
  102. }
  103. _selection[0].Clear();
  104. rd = null;
  105. MapControl.Map.Refresh();
  106. uitb_bsm.Text = ""; uitb_zcbh.Text = "";
  107. uitbGdbh.Text = ""; uitb_tz.Text = ""; uitb_cz.Text = ""; uitb_gj.Text = ""; uitb_yl.Text = ""; uitb_cd.Text = "";
  108. uitb_msfs.Text = ""; uidp_msrq.Text = ""; uitb_dzms.Text = ""; uitb_qsdw.Text = ""; uitb_tcdw.Text = ""; uitb_bz.Text = "";
  109. return null;
  110. }
  111. public override void AfterClose()
  112. {
  113. MapControl.GeometrySelected -= MapControl_GeometrySelected;
  114. ComsStatic.RecordsetDispose(rd);
  115. base.AfterClose();
  116. }
  117. }
  118. }