using Aspose.Words.Drawing.Charts;
|
using DevExpress.CodeParser;
|
using DevExpress.XtraBars.Docking;
|
using DevExpress.XtraCharts;
|
using DevExpress.XtraReports.UI;
|
using DevExpress.XtraSpreadsheet.Model;
|
using NPOI.POIFS.NIO;
|
using Org.BouncyCastle.Tls;
|
using System;
|
using System.Collections;
|
using System.ComponentModel;
|
using System.Drawing;
|
|
namespace HStation.WinFrmUI
|
{
|
public partial class XtraReport1 : DevExpress.XtraReports.UI.XtraReport
|
{
|
public XtraReport1()
|
{
|
InitializeComponent();
|
}
|
|
private SimulationPrintViewModel _printViewModel;
|
|
public void SetBingdingData(SimulationPrintViewModel viewModel)
|
{
|
_printViewModel = viewModel;
|
ininal();
|
}
|
|
private void ininal()
|
{
|
this.DataSource = _printViewModel.PumpList;
|
this.xrLabel1.DataBindings.Add("Text", _printViewModel.Project, "Name");
|
this.xrTable2.DataBindings.Add("Text", _printViewModel.PumpList, "Name");
|
this.xrTable2.DataBindings.Add("Text", _printViewModel.PumpList, "BeginGroup");
|
|
// 创建 XRChart 控件实例
|
XRChart xrChart = new XRChart();
|
foreach (var item in GenerateAllChartData(1))
|
{
|
// 创建一个系列(曲线)
|
Series series = new Series(item.SeriesName, ViewType.Spline);
|
|
// 设置系列的数据筛选条件
|
series.FilterString = $"SeriesName = '{item.SeriesName}'";
|
|
// 设置系列的数据绑定
|
series.ArgumentDataMember = "XValue";
|
series.ValueDataMembers.AddRange(new string[] { "YValue" });
|
|
// 将系列添加到图表的系列集合中
|
xrChart.Series.Add(series);
|
}
|
xrChart.DataSource = GenerateAllChartData(1);
|
//Detail1.Controls.Add(xrChart);
|
}
|
|
public class ChartDataPoint
|
{
|
public double XValue { get; set; } // 横坐标值
|
public double YValue { get; set; } // 纵坐标值
|
public string SeriesName { get; set; } // 系列名称,用于区分不同的线
|
}
|
|
public List<ChartDataPoint> GenerateAllChartData(int i)
|
{
|
List<ChartDataPoint> series1Data = new List<ChartDataPoint>();
|
foreach (var item in _printViewModel.WorkingList.First().PumpAnaly.Items[i].RatedCurveQE)
|
{
|
series1Data.Add(new ChartDataPoint
|
{
|
XValue = item.X,
|
YValue = item.Y,
|
SeriesName = _printViewModel.WorkingList.First().PumpAnaly.Items[i].Name
|
});
|
};
|
|
List<ChartDataPoint> series2Data = new List<ChartDataPoint>();
|
foreach (var item in _printViewModel.WorkingList.First().PumpAnaly.Items[i].CurrentCurveQH)
|
{
|
series2Data.Add(new ChartDataPoint
|
{
|
XValue = item.X,
|
YValue = item.Y,
|
SeriesName = _printViewModel.WorkingList.First().PumpAnaly.Items[i].Name
|
});
|
};
|
|
List<ChartDataPoint> series3Data = new List<ChartDataPoint>();
|
foreach (var item in _printViewModel.WorkingList.First().PumpAnaly.Items[i].CurrentCurveQP)
|
{
|
series3Data.Add(new ChartDataPoint
|
{
|
XValue = item.X,
|
YValue = item.Y,
|
SeriesName = _printViewModel.WorkingList.First().PumpAnaly.Items[i].Name
|
});
|
};
|
// 合并所有系列的数据
|
List<ChartDataPoint> allData = new List<ChartDataPoint>();
|
allData.AddRange(series1Data);
|
allData.AddRange(series2Data);
|
allData.AddRange(series3Data);
|
return allData;
|
}
|
|
public class Product
|
{
|
public string Name { get; set; }
|
public decimal Code { get; set; }
|
}
|
|
public List<Product> CreateSampleProductList()
|
{
|
List<Product> products = new List<Product>
|
{
|
new Product { Name = "苹果", Code = 5.99m },
|
new Product { Name = "香蕉", Code = 3.99m },
|
new Product { Name = "橙子", Code = 4.99m }
|
};
|
|
return products;
|
}
|
}
|
}
|