RWWithDataGridViewMulti.cs 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. using Sunny.UI;
  2. using SuperMap.Analyst.NetworkAnalyst;
  3. using SuperMap.Data;
  4. using SuperMap.Mapping;
  5. using SuperMap.Plot;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. using System.Drawing;
  10. using System.Windows.Forms;
  11. namespace WWPipeLine.MapBasic.Results
  12. {
  13. public class RWWithDataGridViewMulti : ResultWindow
  14. {
  15. private UITabControl utc = new UITabControl()
  16. {
  17. Dock = DockStyle.Fill,
  18. MenuStyle = UIMenuStyle.Custom,
  19. Style = UIStyle.Custom,
  20. TabBackColor = Color.White,
  21. TabSelectedColor = Color.White,
  22. TabUnSelectedForeColor = Color.Black
  23. };
  24. private Layer m_LayerSelect = null;
  25. private string dgvTag = string.Empty;
  26. public RWWithDataGridViewMulti() : base()
  27. {
  28. Controls.Add(utc);
  29. CreateExportExcelButton();
  30. uiSymbolButtonExportToExcel.Click += UiSymbolButtonExportToExcel_Click;
  31. }
  32. private void UiSymbolButtonExportToExcel_Click(object sender, EventArgs e)
  33. {
  34. List<DataGridView> listdgv = new List<DataGridView>();
  35. foreach (Control ctr in Controls.Find("dgv", true))
  36. {
  37. DataGridView dgv = ctr as DataGridView;
  38. if (dgv == null) continue;
  39. listdgv.Add(dgv);
  40. }
  41. var errMsg = Commons.ExportDgvToExcel.ExportExcel(listdgv);
  42. if (string.IsNullOrEmpty(errMsg))
  43. {
  44. ComsStatic.ShowOKLog("导出Excel文件成功");
  45. }
  46. else
  47. {
  48. if (errMsg == Commons.ExportDgvToExcel.CANCELRESULTSTRING)
  49. return;
  50. else
  51. ComsStatic.ShowErrorLog("导出Excel文件失败,原因是" + errMsg);
  52. }
  53. }
  54. public override void ShowData(object data)
  55. {
  56. //if (!(data is List<DataTable>))
  57. // base.ShowData(data);
  58. //else
  59. //{ }
  60. var dats = data as List<DataTable>;
  61. for (int i = 0; i < dats.Count; i++)
  62. {
  63. UIPage up = new UIPage { Text = dats[i].TableName };
  64. UIDataGridView dgv = new UIDataGridView() { Name = "dgv", Tag = dats[i].TableName };
  65. up.Controls.Add(dgv);
  66. dgv.CellMouseDoubleClick += Dgv_CellMouseDoubleClick;
  67. utc.AddPage(up);
  68. ComsStatic.setUIDataGridView(dgv, dats[i]);
  69. }
  70. }
  71. private void Dgv_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)
  72. {
  73. DataGridView dgv = sender as DataGridView;
  74. if (dgv is null) return;
  75. if (dgvTag == string.Empty || dgvTag != dgv.Tag?.ToString())
  76. {
  77. dgvTag = dgv.Tag?.ToString();
  78. foreach (Layer lyr in ComsStatic.MapLayersUsed)
  79. {
  80. if (lyr.Name.Contains(dgv.Tag.ToString()) || lyr.Caption.Contains(dgv.Tag.ToString()))
  81. {
  82. m_LayerSelect = lyr; break;
  83. }
  84. }
  85. }
  86. if (dgv.SelectedRows == null || dgv.SelectedRows.Count != 1 || m_LayerSelect == null) return;
  87. int smid = ComsStatic.StringToInt(dgv.SelectedRows[0].Cells["smid"].Value);
  88. if (smid == 0) return;
  89. var fs = (m_LayerSelect.Dataset as DatasetVector).GetAllFeatures();
  90. if (!fs.ContainsKey(smid)) return;
  91. Geometry geoxy = fs[smid].GetGeometry();
  92. ComsStatic.MapControl.Map.Center = geoxy.InnerPoint;
  93. new DoTrackingPoint().Doing(geoxy.InnerPoint.X, geoxy.InnerPoint.Y);
  94. }
  95. private void InitializeComponent()
  96. {
  97. this.SuspendLayout();
  98. //
  99. // RWWithDataGridView
  100. //
  101. this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
  102. this.ClientSize = new System.Drawing.Size(800, 450);
  103. this.Name = "RWWithDataGridView";
  104. this.ResumeLayout(false);
  105. }
  106. }
  107. }