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.XhsValveMainPhartMappingExtensions _xhs_phart_diagram_ex_std_dto = null; private readonly BLL.XhsValveMainPhartMappingExtensions _bll_ex = new(); /// /// 初始化数据 /// public 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); } //选择曲线变换事件 private void XhsValveMainPhartListCtrl1_FocusedChangedEvent(Vmo.XhsValveMainPhartMappingExtensions obj) { _xhs_phart_diagram_ex_std_dto = obj; InitChart(_xhs_phart_diagram_ex_std_dto); } #region 图表 //初始化图表数据 private void InitChart(Vmo.XhsValveMainPhartMappingExtensions 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.ValveQL); 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, 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 Yw.WinFrmUI.Phart.ImportValvePerform2dByExcelDlg(); dlg.ReloadDataEvent += async (other_name, ql) => { var bol = await Import(other_name, ql); return bol; }; dlg.ShowDialog(); } // 导入 private async Task Import(string other_name, Yw.Geometry.CubicSpline2d ql) { if (_valve_main_id < 1) { XtraMessageBox.Show("ValveMain is null!"); return false; } var input = new Vmo.XhsValveMainPhartMappingExtensions(); input.ValveMainID = _valve_main_id; input.Importance = 0; input.OtherName = other_name; input.Diagram = new Vmo.PhartDiagramExGraphList() { DiagramType = HStation.PhartRelation.eDiagramType.Feat, Name = other_name, GraphList = new List() { new () { Name = other_name, GeometryStyle= HStation.PhartRelation.eGeometryStyle.FeatCurve, GraphType= HStation.PhartRelation.eGraphType.ValveQL, GeometryInfo=ql.ToDbString() } } }; var mapping_id = await _bll_ex.Insert(input); if (mapping_id < 1) { return false; } var xhs_phart_diagram_ex_std_dto = await _bll_ex.GetByID(mapping_id); this.xhsValveMainPhartListCtrl1.Add(xhs_phart_diagram_ex_std_dto); return true; } #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.ValveQL); 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 Yw.WinFrmUI.Phart.ValvePerform2dEditDlg(); dlg.SetBindingData(ql); 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_ex.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_ex.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_ex.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 diagramId = _xhs_phart_diagram_ex_std_dto.Diagram.ID; var bol = await _bll_ex.DeleteByDiagramID(diagramId); if (!bol) { XtraMessageBox.Show("删除失败!"); return false; } XtraMessageBox.Show("删除成功!"); ClearChart(); this.xhsValveMainPhartListCtrl1.Delete(_xhs_phart_diagram_ex_std_dto.ID); return true; } #endregion 删除 #endregion 操作 } }