using HStation.WinFrmUI.PhartRelation; namespace HStation.WinFrmUI.Xhs.Core { public partial class PumpMainForm : DevExpress.XtraEditors.XtraUserControl { public PumpMainForm() { InitializeComponent(); this.gridView1.SetNormalView(); this.gridView2.SetNormalView(); } public class PhartViewModel { public long ID { get; set; } public string OtherName { get; set; } } public class CurvieInfo { public long Dbid { get; set; } public long Curveid { get; set; } public Vmo.XhsPumpMainPhartMappingExtensions Curveinfo { get; set; } } private List _allBindingList = null; private BLL.PumpMain _pumpBll = null; private List _allPhartList = null; private readonly Lazy _bll_ex = new(); private long _DbID; //泵型号ID private long _Curveid;//曲线ID private Vmo.XhsPumpMainPhartMappingExtensions _Curveinfo; //曲线详细信息 public async void SetBindingData(string Dbid, string ModelType) { _allBindingList = new List(); _pumpBll = new BLL.PumpMain(); var allPumpMain = await _pumpBll.GetAll(); foreach (var Main in allPumpMain) { _allBindingList.Add(new PumpMainChoieViewModel(Main)); } this.gridControl2.DataSource = _allBindingList; this.searchControl1.Text = ModelType; } //初始化图表数据 private void InitChart(Vmo.XhsPumpMainPhartMappingExtensions dto) { if (dto == null) { return; } var diagram = dto.Diagram; if (diagram == null) { return; } var graph_list = diagram.GraphList; if (graph_list == null || !graph_list.Any()) { return; } var graph_qh = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQH); var graph_qe = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQH); var graph_qp = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.PumpQH); if (graph_qp == null) { return; } List points_qh = null, points_qe = null, points_qp = null; points_qh = PhartPerformCurveHelper.GetFeatPointList(graph_qh.GraphType, graph_qh.GeometryInfo, 12, null); if (graph_qe != null) points_qe = PhartPerformCurveHelper.GetFeatPointList(graph_qe.GraphType, graph_qe.GeometryInfo, 12, null); if (graph_qp != null) points_qp = PhartPerformCurveHelper.GetFeatPointList(graph_qp.GraphType, graph_qp.GeometryInfo, 12, null); var cubic_spline_qh = new Yw.Geometry.CubicSpline2d(points_qh); var cubic_spline_qe = new Yw.Geometry.CubicSpline2d(points_qe); var cubic_spline_qp = new Yw.Geometry.CubicSpline2d(points_qp); var disp_paras = diagram.DispParas; var is_calc_disp_paras = string.IsNullOrWhiteSpace(disp_paras); this.xtrPerform2dChart1.SetBindingData(cubic_spline_qh, cubic_spline_qe, cubic_spline_qp, disp_paras, is_calc_disp_paras); } public CurvieInfo GetCurrentCurveinfo() { var info = new CurvieInfo { Dbid = _DbID, Curveid = _Curveid, Curveinfo = _Curveinfo }; return info; } //泵型号列表选择项切换事件 private async void gridView2_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { _allPhartList = new List(); var vm = this.gridView2.GetCurrentViewModel(_allBindingList); if (vm != null) { _DbID = vm.ID; var list = await _bll_ex.Value.GetByPumpMainID(vm.ID); if (list != null && list.Any()) { foreach (var item in list) { _allPhartList.Add(new PhartViewModel { ID = item.ID, OtherName = item.OtherName }); } } } this.gridControl1.DataSource = _allPhartList; } //曲线列表选择项切换事件 private async void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) { var vm = this.gridView1.GetCurrentViewModel(_allPhartList); if (vm != null) { _Curveid = vm.ID; var vmo = await _bll_ex.Value.GetByID(vm.ID); _Curveinfo = vmo; InitChart(vmo); } } } }