using DevExpress.XtraEditors; using NetTaste; using Yw.WinFrmUI.Phart; namespace HStation.WinFrmUI.PhartRelation { public partial class XhsValveMainPhartPanel : DocumentPage { public XhsValveMainPhartPanel() { InitializeComponent(); this.PageTitle.Caption = "阀门损失系数曲线"; this.xhsValveMainPhartListCtrl1.FocusedChangedEvent += XhsValveMainPhartListCtrl1_FocusedChangedEvent; } private long _valve_main_id; private Vmo.AssetsValveFactorVmo _xhs_phart_diagram_ex_std_dto = null; private readonly BLL.AssetsValveFactor _bll = new(); /// /// 初始化数据 /// public async void InitialDataSource(long valve_main_id) { _valve_main_id = valve_main_id; if (_valve_main_id < 1) { this.xhsValveMainPhartListCtrl1.Clear(); return; } //this.xhsValveMainPhartListCtrl1.SetBindingData(valve_main_id); var chart = await new BLL.AssetsValveFactor().GetByMainID(valve_main_id); if (chart.Count > 0) { _xhs_phart_diagram_ex_std_dto = chart.First(); this.xtrPerform2dChart1.SetBindingData(_xhs_phart_diagram_ex_std_dto.MinorLossCurve); } this.xtrPerform2dChart1.SetAxisTitle("流量", "损失系数"); } //选择曲线变换事件 private void XhsValveMainPhartListCtrl1_FocusedChangedEvent(Vmo.AssetsValveFactorVmo obj) { _xhs_phart_diagram_ex_std_dto = obj; this.xtrPerform2dChart1.SetBindingData(obj.MinorLossCurve); // InitChart(_xhs_phart_diagram_ex_std_dto); } #region 图表 //初始化图表数据 private void InitChart(Vmo.PhartDiagramRelationExtensionsVmo 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_ql = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.OL); if (graph_ql == null) { return; } List points_ql = null; points_ql = PhartPerformCurveHelper.GetFeatPointList(graph_ql.GraphType, graph_ql.GeometryInfo, 12, null); var cubic_spline_ql = new Yw.Geometry.CubicSpline2d(points_ql); var disp_paras = diagram.DispParas; var is_calc_disp_paras = string.IsNullOrWhiteSpace(disp_paras); this.xtrPerform2dChart1.SetBindingData(cubic_spline_ql.ToDbString(), disp_paras, is_calc_disp_paras); } //清空图表数据 private void ClearChart() { this.xtrPerform2dChart1.InitialChartData(); } #endregion 图表 #region 导入 //Excel 导入 private void barBtnImportByExcel_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { var dlg = new ImportValvePerform2dByExcelDlg(); // dlg.SetBindingData("阀门开度", "压力损失系数"); dlg.ReloadDataEvent += async (pt_list_json) => { var bol = await Import(pt_list_json); return bol; }; dlg.ShowDialog(); } // 导入 private async Task Import(string pt_list_json) { if (_valve_main_id < 1) { XtraMessageBox.Show("ValveMain is null!"); return false; } var model = new Vmo.AssetsValveFactorVmo(); model.MainID = _valve_main_id; model.MinorLossCurve = pt_list_json; this.xtrPerform2dChart1.SetBindingData(pt_list_json); _xhs_phart_diagram_ex_std_dto = model; return await _bll.Insert(model) > 0; } #endregion 导入 #region 操作 //编辑 private void barBtnEditChart_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { /* if (_xhs_phart_diagram_ex_std_dto == null) { return; } var diagram = _xhs_phart_diagram_ex_std_dto.Diagram; if (diagram == null) { return; } var graph_list = diagram.GraphList; if (graph_list == null || !graph_list.Any()) { return; } var graph_ql = graph_list.Find(x => x.GraphType == HStation.PhartRelation.eGraphType.ValveOL); if (graph_ql == null) { return; } Yw.Geometry.CubicSpline2d ql = null; List points_ql = null; points_ql = PhartPerformCurveHelper.GetFeatPointList(graph_ql.GraphType, graph_ql.GeometryInfo, 12, null); ql = new Yw.Geometry.CubicSpline2d(points_ql); var dlg = new ValvePerform2dEditDlg(); dlg.SetBindingData(ql); dlg.SetAxisTile("阀门开度", "压力损失系数"); dlg.ReloadDataEvent += async (new_ql) => { graph_ql.GeometryInfo = new_ql.ToDbString(); _xhs_phart_diagram_ex_std_dto.Diagram.GraphList = new List() { graph_ql }; var bol = await _bll.Update(_xhs_phart_diagram_ex_std_dto); if (bol) { InitChart(_xhs_phart_diagram_ex_std_dto); } return bol; }; dlg.ShowDialog();*/ } //别名 private void barBtnOtherName_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { /* if (_xhs_phart_diagram_ex_std_dto == null) { return; } var dlg = new SetOtherNameDlg(); dlg.SetBindingData(_xhs_phart_diagram_ex_std_dto.OtherName); dlg.VerifyValueChanged += async (value) => { _xhs_phart_diagram_ex_std_dto.OtherName = value; var bol = await _bll.Update(_xhs_phart_diagram_ex_std_dto); if (!bol) { XtraMessageBox.Show("更新失败!"); return false; } this.xhsValveMainPhartListCtrl1.UpdateOtherName(_xhs_phart_diagram_ex_std_dto.ID, value); XtraMessageBox.Show("更新成功!"); return true; }; dlg.ShowDialog();*/ } //重要度 private void barBtnUpdateimportance_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { /* var dlg = new SetImportanceDlg(); dlg.SetBindingData(_xhs_phart_diagram_ex_std_dto.Importance); dlg.VerifyValueChanged += async (value) => { _xhs_phart_diagram_ex_std_dto.Importance = value; var bol = await _bll.Update(_xhs_phart_diagram_ex_std_dto); if (!bol) { XtraMessageBox.Show("更新失败!"); return false; } this.xhsValveMainPhartListCtrl1.UpdateImportance(_xhs_phart_diagram_ex_std_dto.ID, value); XtraMessageBox.Show("更新成功!"); return true; }; dlg.ShowDialog();*/ } #region 删除 //删除 private async void barBtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { await Delete(); } //删除 private async Task Delete() { if (_xhs_phart_diagram_ex_std_dto == null) { return false; } var bol = await _bll.DeleteByID(_xhs_phart_diagram_ex_std_dto.ID); if (!bol) { XtraMessageBox.Show("删除失败!"); return false; } XtraMessageBox.Show("删除成功!"); ClearChart(); // this.xhsValveMainPhartListCtrl1.Delete(_xhs_phart_diagram_ex_std_dto.ID); return true; } #endregion 删除 #endregion 操作 } }