using DevExpress.CodeParser;
|
using DevExpress.XtraCharts;
|
|
namespace Yw.WinFrmUI
|
{
|
public partial class HydroWorkingTotalEvaluationCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public HydroWorkingTotalEvaluationCtrl()
|
{
|
InitializeComponent();
|
}
|
|
/// <summary>
|
/// 绑定数据
|
/// </summary>
|
public void SetBindingData(List<HydroWorkingMonitorEvaluationViewModel> allEvaluationList)
|
{
|
if (allEvaluationList == null || allEvaluationList.Count < 1)
|
{
|
return;
|
}
|
|
var list = allEvaluationList.Where(x => x.EvaluateError.HasValue).ToList();
|
if (list.Count > 0)
|
{
|
var avgValue = list.Average(x => x.EvaluateError.Value);
|
var seriesView = this.chartControl1.Series[0].View as DoughnutSeriesView;
|
seriesView.TotalLabel.TextPattern = $"{Math.Round(avgValue, 1)}%";
|
}
|
|
var series = this.chartControl1.Series[0];
|
series.Points.Clear();
|
var groupList = list?.GroupBy(x => x.PropName).ToList();
|
if (groupList != null && groupList.Count > 0)
|
{
|
foreach (var group in groupList)
|
{
|
var items = group.Where(x => x.EvaluateError.HasValue).ToList();
|
if (items != null && items.Count > 0)
|
{
|
var propName = HydroVisualCalcuPropHelper.GetName(group.Key);
|
var avgValue = Math.Round(items.Average(x => x.EvaluateError.Value), 1);
|
series.Points.Add(new SeriesPoint(propName, avgValue));
|
}
|
}
|
}
|
|
}
|
|
}
|
}
|