using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using BLL.Dto.DataDto; using BLL.Manager; using Helper; using HZY.Framework.DependencyInjection; using Sunny.UI; namespace Scada.Page { public partial class PageChartManage : UIPage, ISingletonSelfDependency { private readonly DataManager _dataManager; public PageChartManage(DataManager dataManager) { InitializeComponent(); this._dataManager = dataManager; this.dtp_Start.Value = DateTime.Now.AddDays(-1); this.dtp_End.Value = DateTime.Now; UILineOption uILineOption = new UILineOption { ToolTip = { Visible = true }, Title = new UITitle { Text = "" }, Legend = new UILegend { Orient = UIOrient.Horizontal, Top = UITopAlignment.Top, Left = UILeftAlignment.Left, }, XAxisType = UIAxisType.DateTime, XAxis = { Name = "日期", AxisLabel = { DateTimeFormat = "HH:mm:ss" } }, YAxis = { Name = "数值", AxisLabel = { DecimalPlaces = 1 } } }; string[] legendData = { "脱脂喷淋泵压力值", "脱脂pH值", "粗洗喷淋泵压力值", "陶化喷淋泵压力值", "精洗喷淋泵压力值", "水分炉测量温度", "固化炉测量温度" }; foreach (var data in legendData) { uILineOption.Legend.AddData(data); AddSeries(uILineOption, data); } lc_Chart.SetOption(uILineOption); } protected override CreateParams CreateParams { get { CreateParams paras = base.CreateParams; paras.ExStyle |= 0x02000000; return paras; } } private void AddSeries(UILineOption uILineOption, string data) { var series = uILineOption.AddSeries(new UILineSeries(data)); series.Symbol = UILinePointSymbol.Circle; series.SymbolSize = 4; series.SymbolLineWidth = 2; //series.YAxisDecimalPlaces = 1; series.Smooth = true; } private void PageChartManage_Load(object sender, EventArgs e) { } private async void btn_QueryData_Click(object sender, EventArgs e) { var t1 = this.dtp_Start.Value; var t2 = this.dtp_End.Value; if (t1 >= t2) { UIMessageBox.ShowError("开始时间不能大于或等于结束时间"); return; } ClearUILineData(); QueryDataDto queryDataDto = new QueryDataDto { StartTime = t1, EndTime = t2 }; var res = await _dataManager.GetDataListByTimeAsync(queryDataDto); if(res.Result == SystemEnums.Result.Success) { for(int i = 0;i < res.Data.Count; i++) { if(i>30) { break; } var dt = res.Data[i].InsertTime; var dataRes = res.Data[i]; lc_Chart.Option.AddData("脱脂喷淋泵压力值", dt, double.Parse(dataRes.脱脂喷淋泵压力值)); lc_Chart.Option.AddData("脱脂PH值", dt, double.Parse(dataRes.脱脂PH值)); lc_Chart.Option.AddData("粗洗喷淋泵压力值", dt, double.Parse(dataRes.粗洗喷淋泵压力值)); lc_Chart.Option.AddData("陶化喷淋泵压力值", dt, double.Parse(dataRes.陶化喷淋泵压力值)); lc_Chart.Option.AddData("精洗喷淋泵压力值", dt, double.Parse(dataRes.精洗喷淋泵压力值)); lc_Chart.Option.AddData("水分炉测量温度", dt, double.Parse(dataRes.水分炉测量温度)); lc_Chart.Option.AddData("固化炉测量温度", dt, double.Parse(dataRes.固化炉测量温度)); } } lc_Chart.Refresh(); } private void ClearUILineData() { lc_Chart.Option.Clear("脱脂喷淋泵压力值"); lc_Chart.Option.Clear("脱脂PH值"); lc_Chart.Option.Clear("粗洗喷淋泵压力值"); lc_Chart.Option.Clear("陶化喷淋泵压力值"); lc_Chart.Option.Clear("精洗喷淋泵压力值"); lc_Chart.Option.Clear("水分炉测量温度"); lc_Chart.Option.Clear("固化炉测量温度"); } } }