PageChartManage.cs 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using BLL.Dto.DataDto;
  11. using BLL.Manager;
  12. using Helper;
  13. using HZY.Framework.DependencyInjection;
  14. using Sunny.UI;
  15. namespace Scada.Page
  16. {
  17. public partial class PageChartManage : UIPage, ISingletonSelfDependency
  18. {
  19. private readonly DataManager _dataManager;
  20. public PageChartManage(DataManager dataManager)
  21. {
  22. InitializeComponent();
  23. this._dataManager = dataManager;
  24. this.dtp_Start.Value = DateTime.Now.AddDays(-1);
  25. this.dtp_End.Value = DateTime.Now;
  26. UILineOption uILineOption = new UILineOption
  27. {
  28. ToolTip = { Visible = true },
  29. Title = new UITitle { Text = "" },
  30. Legend = new UILegend
  31. {
  32. Orient = UIOrient.Horizontal,
  33. Top = UITopAlignment.Top,
  34. Left = UILeftAlignment.Left,
  35. },
  36. XAxisType = UIAxisType.DateTime,
  37. XAxis = { Name = "日期", AxisLabel = { DateTimeFormat = "HH:mm:ss" } },
  38. YAxis = { Name = "数值", AxisLabel = { DecimalPlaces = 1 } }
  39. };
  40. string[] legendData = {
  41. "脱脂喷淋泵压力值",
  42. "脱脂pH值",
  43. "粗洗喷淋泵压力值",
  44. "陶化喷淋泵压力值",
  45. "精洗喷淋泵压力值",
  46. "水分炉测量温度",
  47. "固化炉测量温度"
  48. };
  49. foreach (var data in legendData)
  50. {
  51. uILineOption.Legend.AddData(data);
  52. AddSeries(uILineOption, data);
  53. }
  54. lc_Chart.SetOption(uILineOption);
  55. }
  56. protected override CreateParams CreateParams
  57. {
  58. get
  59. {
  60. CreateParams paras = base.CreateParams;
  61. paras.ExStyle |= 0x02000000;
  62. return paras;
  63. }
  64. }
  65. private void AddSeries(UILineOption uILineOption, string data)
  66. {
  67. var series = uILineOption.AddSeries(new UILineSeries(data));
  68. series.Symbol = UILinePointSymbol.Circle;
  69. series.SymbolSize = 4;
  70. series.SymbolLineWidth = 2;
  71. //series.YAxisDecimalPlaces = 1;
  72. series.Smooth = true;
  73. }
  74. private void PageChartManage_Load(object sender, EventArgs e)
  75. {
  76. }
  77. private async void btn_QueryData_Click(object sender, EventArgs e)
  78. {
  79. var t1 = this.dtp_Start.Value;
  80. var t2 = this.dtp_End.Value;
  81. if (t1 >= t2)
  82. {
  83. UIMessageBox.ShowError("开始时间不能大于或等于结束时间");
  84. return;
  85. }
  86. ClearUILineData();
  87. QueryDataDto queryDataDto = new QueryDataDto
  88. {
  89. StartTime = t1,
  90. EndTime = t2
  91. };
  92. var res = await _dataManager.GetDataListByTimeAsync(queryDataDto);
  93. if(res.Result == SystemEnums.Result.Success)
  94. {
  95. for(int i = 0;i < res.Data.Count; i++)
  96. {
  97. if(i>30)
  98. {
  99. break;
  100. }
  101. var dt = res.Data[i].InsertTime;
  102. var dataRes = res.Data[i];
  103. lc_Chart.Option.AddData("脱脂喷淋泵压力值", dt, double.Parse(dataRes.脱脂喷淋泵压力值));
  104. lc_Chart.Option.AddData("脱脂PH值", dt, double.Parse(dataRes.脱脂PH值));
  105. lc_Chart.Option.AddData("粗洗喷淋泵压力值", dt, double.Parse(dataRes.粗洗喷淋泵压力值));
  106. lc_Chart.Option.AddData("陶化喷淋泵压力值", dt, double.Parse(dataRes.陶化喷淋泵压力值));
  107. lc_Chart.Option.AddData("精洗喷淋泵压力值", dt, double.Parse(dataRes.精洗喷淋泵压力值));
  108. lc_Chart.Option.AddData("水分炉测量温度", dt, double.Parse(dataRes.水分炉测量温度));
  109. lc_Chart.Option.AddData("固化炉测量温度", dt, double.Parse(dataRes.固化炉测量温度));
  110. }
  111. }
  112. lc_Chart.Refresh();
  113. }
  114. private void ClearUILineData()
  115. {
  116. lc_Chart.Option.Clear("脱脂喷淋泵压力值");
  117. lc_Chart.Option.Clear("脱脂PH值");
  118. lc_Chart.Option.Clear("粗洗喷淋泵压力值");
  119. lc_Chart.Option.Clear("陶化喷淋泵压力值");
  120. lc_Chart.Option.Clear("精洗喷淋泵压力值");
  121. lc_Chart.Option.Clear("水分炉测量温度");
  122. lc_Chart.Option.Clear("固化炉测量温度");
  123. }
  124. }
  125. }