From a5b25c4f314079d293bf159ed6f0d7dcbadadbb7 Mon Sep 17 00:00:00 2001 From: duheng <2784771470@qq.com> Date: 星期三, 19 二月 2025 10:46:34 +0800 Subject: [PATCH] 冲突 --- WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.cs | 51 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-statistics/06-control/HydroLossStatisticsCategoryCtrl.Designer.cs | 2 WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/02-pipe/HydroEnergyAnalyPipeItemViewModel.cs | 49 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveViewModel.cs | 41 + WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.Designer.cs | 1 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.cs | 4 WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.cs | 44 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.cs | 89 - WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-total/HydroEnergyAnalyTotalViewModel.cs | 56 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveHelper.cs | 55 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.cs | 102 ++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.Designer.cs | 55 WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/02-pipe/HydroEnergyAnalyPipeViewModel.cs | 51 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.resx | 0 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.resx | 0 WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.resx | 0 WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyHelper.cs | 137 +++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/06-lower/HydroLossCurveLowerViewModel.cs | 36 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.Designer.cs | 6 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.Designer.cs | 255 ++++++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.resx | 4 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveItemViewModel.cs | 22 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/04-end/HydroLossCurveEndViewModel.cs | 31 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/02-elev/HydroLossCurveElevViewModel.cs | 31 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.cs | 111 ++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.cs | 304 +++++++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.cs | 114 +- WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.resx | 20 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs | 95 +- WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.Designer.cs | 133 +++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj | 36 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.Designer.cs | 24 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs | 2 WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user | 18 WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyItemViewModel.cs | 142 +++ WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.Designer.cs | 6 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/12-report/02-helper/SimulationWorkingReportCtrl.cs | 16 /dev/null | 103 -- WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/03-start/HydroLossCurveStartViewModel.cs | 31 WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.Designer.cs | 74 + WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyViewModel.cs | 29 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.resx | 0 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.resx | 4 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.Designer.cs | 8 WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/working/SimulationPrintWorkingViewModel.cs | 2 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/05-total/HydroLossCurveTotalViewModel.cs | 20 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-statistics/06-control/HydroLossStatisticsCatalogCtrl.Designer.cs | 6 WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurvePointVieModel.cs | 20 48 files changed, 1,980 insertions(+), 460 deletions(-) diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs index 145a970..97a3f43 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs @@ -415,7 +415,7 @@ barBtnWorkingLossCurve.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnWorkingLossCurve.ImageOptions.SvgImage"); barBtnWorkingLossCurve.Name = "barBtnWorkingLossCurve"; barBtnWorkingLossCurve.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.SmallWithText; - barBtnWorkingLossCurve.ItemClick += barBtnWorkingLossCurve_ItemClick; + barBtnWorkingLossCurve.ItemClick += barBtnLossCurve_ItemClick; // // barBtnWorkingLossStatistics // diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs index c1ddfc3..1f14d3d 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs @@ -2789,7 +2789,7 @@ //鎹熷け缁熻 printWorking.LossStatistics = HydroLossStatisticsHelper.Create(baseHydroInfoRhs, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); //鎹熷け鏇茬嚎 - printWorking.LossCurve = SimulationPrintLossCurveHelper.Create(baseHydroInfoRhs, working, selectedNode, calcuResult, _calcuPressModeIsHead, allEvaluationList); + printWorking.LossCurve = HydroLossCurveHelper.Create(baseHydroInfoRhs, working, selectedNode, calcuResult, _calcuPressModeIsHead, allEvaluationList); } #endregion @@ -2820,7 +2820,7 @@ //鎹熷け缁熻 printWorking.LossStatistics = HydroLossStatisticsHelper.Create(hydroInfoRhs, working, calcuResult, _calcuPressModeIsHead, allEvaluationList); //鎹熷け鏇茬嚎 - printWorking.LossCurve = SimulationPrintLossCurveHelper.Create(hydroInfoRhs, working, selectedNode, calcuResult, _calcuPressModeIsHead, allEvaluationList); + printWorking.LossCurve = HydroLossCurveHelper.Create(hydroInfoRhs, working, selectedNode, calcuResult, _calcuPressModeIsHead, allEvaluationList); } } @@ -3326,35 +3326,35 @@ #region 鎹熷け鏇茬嚎 - //鍗曞伐鍐垫崯澶辨洸绾挎帶浠� - private HydroSingleWorkingLossCurveInteropCtrl _singleWorkingLossCurveCtrl = null; + //鎹熷け鏇茬嚎浜や簰鎺т欢 + private HydroLossCurveInteropCtrl _lossCurveInteropCtrl = null; - //鑾峰彇鍗曞伐鍐垫崯澶辨洸绾挎帶浠� - private HydroSingleWorkingLossCurveInteropCtrl GetSingleWorkingLossCurveCtrl() + //鑾峰彇鎹熷け鏇茬嚎浜や簰鎺т欢 + private HydroLossCurveInteropCtrl GetLossCurveInteropCtrl() { - if (_singleWorkingLossCurveCtrl == null) + if (_lossCurveInteropCtrl == null) { - _singleWorkingLossCurveCtrl = new HydroSingleWorkingLossCurveInteropCtrl(); - _singleWorkingLossCurveCtrl.Dock = DockStyle.Fill; - _singleWorkingLossCurveCtrl.HydroClickEvent += (code) => + _lossCurveInteropCtrl = new HydroLossCurveInteropCtrl(); + _lossCurveInteropCtrl.Dock = DockStyle.Fill; + _lossCurveInteropCtrl.HydroClickEvent += (code) => { var visual = GetVisual(code); SelectVisual(visual, eSimulationVisualSource.None); }; - _singleWorkingLossCurveCtrl.HydroSpecialDisplayEvent += (list) => + _lossCurveInteropCtrl.HydroSpecialDisplayEvent += (list) => { _bimfaceCtrl?.SetLogicOutlineGlowEffect(list); }; - _singleWorkingLossCurveCtrl.HydroCancelSpecialDisplayEvent += () => + _lossCurveInteropCtrl.HydroCancelSpecialDisplayEvent += () => { _bimfaceCtrl?.RemoveLogicOutlineGlowEffect(); }; } - return _singleWorkingLossCurveCtrl; + return _lossCurveInteropCtrl; } - //鍗曞伐鍐垫崯澶辨洸绾挎帶浠舵槸鍚﹀彲瑙� - private bool IsSingleWorkingLossCurveCtrlVisible + //鎹熷け鏇茬嚎鎺т欢鏄惁鍙 + private bool IsLossCurveInteropCtrlVisible { get { @@ -3362,7 +3362,7 @@ { if (this.controlContainerBottom.Controls.Count > 0) { - if (this.controlContainerBottom.Controls[0] is HydroSingleWorkingLossCurveInteropCtrl) + if (this.controlContainerBottom.Controls[0] is HydroLossCurveInteropCtrl) { return true; } @@ -3372,43 +3372,43 @@ } } - //鏄剧ず鍗曞伐鍐垫崯澶辨洸绾挎帶浠� - private void ShowSingleWorkingLossCurveCtrl(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult, HydroVisualInfo visual) + //鏄剧ず鎹熷け鏇茬嚎鎺т欢 + private void ShowLossCurveInteropCtrl + ( + Yw.Model.HydroModelInfo hydroInfo, + HydroWorkingVmo working, + HydroNodeInfo node, + HydroCalcuResult calcuResult = null, + bool isHead = false, + List<HydroEvaluationVmo> allEvaluationList = null + ) { - var singleWorkingLossCurveCtrl = GetSingleWorkingLossCurveCtrl(); - if (!IsSingleWorkingLossCurveCtrlVisible) + var ctrl = GetLossCurveInteropCtrl(); + if (!IsLossCurveInteropCtrlVisible) { this.controlContainerBottom.Controls.Clear(); - this.controlContainerBottom.Controls.Add(singleWorkingLossCurveCtrl); + this.controlContainerBottom.Controls.Add(ctrl); this.docPnlBottom.Visibility = DevExpress.XtraBars.Docking.DockVisibility.Visible; this.docPnlBottom.Text = "鎹熷け鏇茬嚎"; this.docPnlBottom.Height = 350; } - singleWorkingLossCurveCtrl.SetBindingData(hydroInfo, calcuResult, visual); + ctrl.SetBindingData(hydroInfo, working, node, calcuResult, isHead, allEvaluationList); } //鎹熷け鏇茬嚎 - private void barBtnWorkingLossCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + private async void barBtnLossCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { - if (_visual == null) + var node = GetSelectNode(); + if (node == null) { - SelectInputSource(); - if (_visual == null) - { - TipFormHelper.ShowWarn("璇烽�夋嫨鏋勪欢鍚庨噸璇曪紒"); - return; - } - } - HydroVisualInfo visual = _visual; - if (_visual is HydroLinkInfo linkInfo) - { - var visualListHelper = GetVisualListHelper(); - visual = visualListHelper.GetVisual(linkInfo.StartCode); + return; } - var workingCheckedListHelper = GetWorkingCheckedListHelper(); - var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList(); - if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1) + var isHead = _calcuPressModeIsHead; + var allEvaluationList = await GetEvaluationList(); + + var workingList = GetCheckedWorkingList(); + if (workingList == null || workingList.Count < 1) { var workingHelper = GetWorkingHelper(); if (!workingHelper.Initialized) @@ -3416,18 +3416,13 @@ TipFormHelper.ShowWarn("璇疯绠楀悗閲嶈瘯锛�"); return; } - ShowSingleWorkingLossCurveCtrl(workingHelper.HydroInfo, workingHelper.CalcuResult, visual); + ShowLossCurveInteropCtrl(workingHelper.HydroInfo, workingHelper.Working, node, workingHelper.CalcuResult, isHead, allEvaluationList); + return; } - else - { - var dlg = new HydroMultiWorkingLossCurveDlg(); - dlg.HydroClickEvent += (code) => - { - SelectVisual(code, eSimulationVisualSource.None); - }; - dlg.SetBindingData(_hydroInfo, allCheckedWorkingList, visual); - dlg.ShowDialog(); - } + + var dlg = new HydroLossCurveMultiWorkingDlg(); + dlg.SetBindingData(_hydroInfo, workingList, node, _calcuPressModeIsHead, allEvaluationList); + dlg.ShowDialog(); } #endregion diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.Designer.cs index 5860e53..04115e0 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.Designer.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.Designer.cs @@ -193,7 +193,6 @@ private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1; private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1; private DevExpress.XtraLayout.LayoutControl layoutControl1; - private HydroSingleWorkingLossStatisticsCtrl hydroSingleWorkingLossStatisticsCtrl1; private HydroWorkingListViewCtrl hydroWorkingListViewCtrl1; private DevExpress.XtraLayout.LayoutControlGroup Root; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.Designer.cs index 14a2b87..0618ecc 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.Designer.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.Designer.cs @@ -35,9 +35,9 @@ pageForEnergy = new DevExpress.XtraBars.Navigation.TabNavigationPage(); simulationSingleWorkingEnergyCtrl1 = new SimulationSingleWorkingEnergyCtrl(); pageForLossCurve = new DevExpress.XtraBars.Navigation.TabNavigationPage(); - hydroSingleWorkingLossCurveCtrl1 = new HydroSingleWorkingLossCurveCtrl(); + hydroSingleWorkingLossCurveCtrl1 = new HydroLossCurveCtrl(); pageForLossStatistics = new DevExpress.XtraBars.Navigation.TabNavigationPage(); - hydroSingleWorkingLossStatisticsCtrl1 = new HydroSingleWorkingLossStatisticsCtrl(); + hydroSingleWorkingLossStatisticsCtrl1 = new HydroLossStatisticsCtrl(); ((ISupportInitialize)tabPane1).BeginInit(); tabPane1.SuspendLayout(); pageForEvaluation.SuspendLayout(); @@ -162,8 +162,8 @@ private DevExpress.XtraBars.Navigation.TabNavigationPage pageForLossCurve; private HydroSingleWorkingEvaluationCtrl hydroSingleWorkingEvaluationCtrl1; private SimulationSingleWorkingEnergyCtrl simulationSingleWorkingEnergyCtrl1; - private HydroSingleWorkingLossCurveCtrl hydroSingleWorkingLossCurveCtrl1; + private HydroLossCurveCtrl hydroSingleWorkingLossCurveCtrl1; private DevExpress.XtraBars.Navigation.TabNavigationPage pageForLossStatistics; - private HydroSingleWorkingLossStatisticsCtrl hydroSingleWorkingLossStatisticsCtrl1; + private HydroLossStatisticsCtrl hydroSingleWorkingLossStatisticsCtrl1; } } diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.cs index 59c3c0a..f42ab55 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.cs @@ -23,8 +23,8 @@ { this.hydroSingleWorkingEvaluationCtrl1.SetBindingData(hydroInfo, allMonitorList, working, calcuResult); this.simulationSingleWorkingEnergyCtrl1.SetBindingData(working, hydroInfo, allMonitorList, calcuResult); - this.hydroSingleWorkingLossCurveCtrl1.SetBindingData(hydroInfo, calcuResult, visual); - this.hydroSingleWorkingLossStatisticsCtrl1.SetBindingData(hydroInfo, calcuResult); + //this.hydroSingleWorkingLossCurveCtrl1.SetBindingData(hydroInfo, calcuResult, visual); + this.hydroSingleWorkingLossStatisticsCtrl1.SetBindingData(hydroInfo, working, calcuResult); } diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/12-report/02-helper/SimulationWorkingReportCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/12-report/02-helper/SimulationWorkingReportCtrl.cs index 15b651d..4af2a61 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/12-report/02-helper/SimulationWorkingReportCtrl.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/12-report/02-helper/SimulationWorkingReportCtrl.cs @@ -14,8 +14,8 @@ private SimulationProjectTitleCtrl _titleCtrl = null; private SimulationPumpSingleWorkingChartCtrl _workingChart = null; - private HydroSingleWorkingLossCurveCtrl _lossCurve = null; - private HydroSingleWorkingLossStatisticsCtrl _lossStatistics = null; + private HydroLossCurveCtrl _lossCurve = null; + private HydroLossStatisticsCtrl _lossStatistics = null; private XhsProjectVmo _project = null; private Yw.Model.HydroModelInfo _hydroInfo = null; @@ -92,8 +92,8 @@ lossCurveGroup.Expanded = false; lossCurveGroup.HeaderButtonsLocation = DevExpress.Utils.GroupElementLocation.AfterText; lossCurveGroup.ExpandOnDoubleClick = true; - _lossCurve = new HydroSingleWorkingLossCurveCtrl(); - _lossCurve.SetBindingData(hydroInfo, calcuResult, visual); + _lossCurve = new HydroLossCurveCtrl(); + //_lossCurve.SetBindingData(hydroInfo, calcuResult, visual); var lossCurveItem = lossCurveGroup.AddItem("鎹熷け鏇茬嚎", _lossCurve); lossCurveItem.TextVisible = false; lossCurveItem.Height = 250; @@ -112,8 +112,8 @@ lossStatisticsGroup.Expanded = false; lossStatisticsGroup.HeaderButtonsLocation = DevExpress.Utils.GroupElementLocation.AfterText; lossStatisticsGroup.ExpandOnDoubleClick = true; - _lossStatistics = new HydroSingleWorkingLossStatisticsCtrl(); - _lossStatistics.SetBindingData(hydroInfo, calcuResult); + _lossStatistics = new HydroLossStatisticsCtrl(); + _lossStatistics.SetBindingData(hydroInfo, working, calcuResult); var lossStatisticsItem = lossStatisticsGroup.AddItem("鎹熷け缁熻", _lossStatistics); lossStatisticsItem.TextVisible = false; lossStatisticsItem.Height = 250; @@ -207,9 +207,9 @@ vm.Working.EnergyInputImagePath = GetImageFilePath(_energyInputImageFileName); _lossStatistics.ExportInputToImage(vm.Working.EnergyInputImagePath); vm.Working.EnergyLossImagePath = GetImageFilePath(_energyLossImageFileName); - _lossStatistics.ExportLossToImage(vm.Working.EnergyLossImagePath); + _lossStatistics.ExportCatalogToImage(vm.Working.EnergyLossImagePath); vm.Working.EnergyStatisticsImagePath = GetImageFilePath(_energyStatisticsImageFileName); - _lossStatistics.ExportStatisticsToImage(vm.Working.EnergyStatisticsImagePath); + _lossStatistics.ExportCategoryToImage(vm.Working.EnergyStatisticsImagePath); vm.PumpChart = new Yw.DiagramFile.PumpChartViewModel(); diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/SimulationPrintLossCurveViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/SimulationPrintLossCurveViewModel.cs deleted file mode 100644 index c8f1047..0000000 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/SimulationPrintLossCurveViewModel.cs +++ /dev/null @@ -1,39 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace HStation.WinFrmUI -{ - /// <summary> - /// 鎹熷け鏇茬嚎 - /// </summary> - public class SimulationPrintLossCurveViewModel - { - /// <summary> - /// 鏍囬珮 - /// </summary> - public SimulationPrintLossCurveElevViewModel Elev { get; set; } - - /// <summary> - /// 寮�濮� - /// </summary> - public SimulationPrintLossCurveStartViewModel Start { get; set; } - - /// <summary> - /// 缁撴潫 - /// </summary> - public SimulationPrintLossCurveEndViewModel End { get; set; } - - /// <summary> - /// 鎬荤粨 - /// </summary> - public SimulationPrintLossCurveTotalViewModel Total { get; set; } - - /// <summary> - /// 瀛愮骇闆嗗悎 - /// </summary> - public List<SimulationPrintLossCurveItemViewModel> Items { get; set; } - } -} diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/elev/SimulationPrintLossCurveElevItemViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/elev/SimulationPrintLossCurveElevItemViewModel.cs deleted file mode 100644 index 593f485..0000000 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/elev/SimulationPrintLossCurveElevItemViewModel.cs +++ /dev/null @@ -1,39 +0,0 @@ -锘縩amespace HStation.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public class SimulationPrintLossCurveElevItemViewModel - { - /// <summary> - /// - /// </summary> - public SimulationPrintLossCurveElevItemViewModel(string code, string name, double x, double y) - { - this.Code = code; - this.Name = name; - this.X = Math.Round(x, 2); - this.Y = Math.Round(y, 2); - } - - /// <summary> - /// 缂栫爜 - /// </summary> - public string Code { get; set; } - - /// <summary> - /// 鍚嶇О - /// </summary> - public string Name { get; set; } - - /// <summary> - /// X - /// </summary> - public double X { get; set; } - - /// <summary> - /// Y - /// </summary> - public double Y { get; set; } - } -} diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/elev/SimulationPrintLossCurveElevViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/elev/SimulationPrintLossCurveElevViewModel.cs deleted file mode 100644 index 9396d42..0000000 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/elev/SimulationPrintLossCurveElevViewModel.cs +++ /dev/null @@ -1,33 +0,0 @@ -锘縰sing DevExpress.Xpo.Helpers; - -namespace HStation.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public class SimulationPrintLossCurveElevViewModel - { - /// <summary> - /// - /// </summary> - public SimulationPrintLossCurveElevViewModel() { } - - /// <summary> - /// - /// </summary> - public SimulationPrintLossCurveElevViewModel(List<SimulationPrintLossCurveItemViewModel> allItemList) - { - if (allItemList == null || allItemList.Count < 1) - { - return; - } - this.Items = allItemList?.Select(x => new SimulationPrintLossCurveElevItemViewModel(x.Code, x.Name, x.Distance, x.Elev)).ToList(); - } - - /// <summary> - /// 瀛愮骇闆嗗悎 - /// </summary> - public List<SimulationPrintLossCurveElevItemViewModel> Items { get; set; } - - } -} diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/end/SimulationPrintLossCurveEndItemViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/end/SimulationPrintLossCurveEndItemViewModel.cs deleted file mode 100644 index 2412f82..0000000 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/end/SimulationPrintLossCurveEndItemViewModel.cs +++ /dev/null @@ -1,39 +0,0 @@ -锘縩amespace HStation.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public class SimulationPrintLossCurveEndItemViewModel - { - /// <summary> - /// - /// </summary> - public SimulationPrintLossCurveEndItemViewModel(string code, string name, double x, double y) - { - this.Code = code; - this.Name = name; - this.X = Math.Round(x, 2); - this.Y = Math.Round(y, 2); - } - - /// <summary> - /// 缂栫爜 - /// </summary> - public string Code { get; set; } - - /// <summary> - /// 鍚嶇О - /// </summary> - public string Name { get; set; } - - /// <summary> - /// X - /// </summary> - public double X { get; set; } - - /// <summary> - /// Y - /// </summary> - public double Y { get; set; } - } -} diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/end/SimulationPrintLossCurveEndViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/end/SimulationPrintLossCurveEndViewModel.cs deleted file mode 100644 index 2a72b70..0000000 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/end/SimulationPrintLossCurveEndViewModel.cs +++ /dev/null @@ -1,31 +0,0 @@ -锘縩amespace HStation.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public class SimulationPrintLossCurveEndViewModel - { - /// <summary> - /// - /// </summary> - public SimulationPrintLossCurveEndViewModel() { } - - /// <summary> - /// - /// </summary> - public SimulationPrintLossCurveEndViewModel(List<SimulationPrintLossCurveItemViewModel> allItemList) - { - if (allItemList == null || allItemList.Count < 1) - { - return; - } - this.Items = allItemList?.Select(x => new SimulationPrintLossCurveEndItemViewModel(x.Code, x.Name, x.Distance, x.EndHead)).ToList(); - } - - /// <summary> - /// 瀛愮骇闆嗗悎 - /// </summary> - public List<SimulationPrintLossCurveEndItemViewModel> Items { get; set; } - - } -} diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/start/SimulationPrintLossCurveStartItemViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/start/SimulationPrintLossCurveStartItemViewModel.cs deleted file mode 100644 index ce6c7bd..0000000 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/start/SimulationPrintLossCurveStartItemViewModel.cs +++ /dev/null @@ -1,45 +0,0 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace HStation.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public class SimulationPrintLossCurveStartItemViewModel - { - /// <summary> - /// - /// </summary> - public SimulationPrintLossCurveStartItemViewModel(string code, string name, double x, double y) - { - this.Code = code; - this.Name = name; - this.X = Math.Round(x, 2); - this.Y = Math.Round(y, 2); - } - - /// <summary> - /// 缂栫爜 - /// </summary> - public string Code { get; set; } - - /// <summary> - /// 鍚嶇О - /// </summary> - public string Name { get; set; } - - /// <summary> - /// X - /// </summary> - public double X { get; set; } - - /// <summary> - /// Y - /// </summary> - public double Y { get; set; } - } -} diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/start/SimulationPrintLossCurveStartViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/start/SimulationPrintLossCurveStartViewModel.cs deleted file mode 100644 index ef24945..0000000 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/start/SimulationPrintLossCurveStartViewModel.cs +++ /dev/null @@ -1,31 +0,0 @@ -锘縩amespace HStation.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public class SimulationPrintLossCurveStartViewModel - { - /// <summary> - /// - /// </summary> - public SimulationPrintLossCurveStartViewModel() { } - - /// <summary> - /// - /// </summary> - public SimulationPrintLossCurveStartViewModel(List<SimulationPrintLossCurveItemViewModel> allItemList) - { - if (allItemList == null || allItemList.Count < 1) - { - return; - } - this.Items = allItemList?.Select(x => new SimulationPrintLossCurveStartItemViewModel(x.Code, x.Name, x.Distance, x.StartHead)).ToList(); - } - - /// <summary> - /// 瀛愮骇闆嗗悎 - /// </summary> - public List<SimulationPrintLossCurveStartItemViewModel> Items { get; set; } - - } -} diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/working/SimulationPrintWorkingViewModel.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/working/SimulationPrintWorkingViewModel.cs index 0504b7a..7a924a2 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/working/SimulationPrintWorkingViewModel.cs +++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/working/SimulationPrintWorkingViewModel.cs @@ -58,7 +58,7 @@ /// <summary> /// 鎹熷け鏇茬嚎 /// </summary> - public SimulationPrintLossCurveViewModel LossCurve { get; set; } + public HydroLossCurveViewModel LossCurve { get; set; } /// <summary> /// 鎹熷け缁熻 diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.cs deleted file mode 100644 index f3c77d1..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.cs +++ /dev/null @@ -1,94 +0,0 @@ -锘縰sing Mapster; - -namespace Yw.WinFrmUI -{ - public partial class HydroMultiWorkingLossCurveDlg : DevExpress.XtraBars.Ribbon.RibbonForm - { - public HydroMultiWorkingLossCurveDlg() - { - InitializeComponent(); - this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; - this.layoutControl1.SetupLayoutControl(); - this.hydroWorkingListViewCtrl1.SelectedChangedEvent += HydroWorkingListViewCtrl1_SelectedChangedEvent; - this.hydroSingleWorkingLossCurveCtrl1.HydroClickEvent += HydroSingleWorkingLossCurveCtrl1_HydroClickEvent; - } - - /// <summary> - /// - /// </summary> - public event Action<string> HydroClickEvent; - - private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 - private Yw.Model.HydroVisualInfo _visual = null;//鍙鏋勪欢 - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData - ( - Yw.Model.HydroModelInfo hydroInfo, - List<HydroWorkingVmo> allWorkingList, - Yw.Model.HydroVisualInfo visual - ) - { - if (hydroInfo == null) - { - return; - } - if (allWorkingList == null || allWorkingList.Count < 1) - { - return; - } - if (visual == null) - { - return; - } - _hydroInfo = hydroInfo; - _visual = visual; - this.hydroWorkingListViewCtrl1.SetBindingData(allWorkingList); - if (allWorkingList.Count < 2) - { - var working = allWorkingList[0]; - this.Text = $"鎹熷け鏇茬嚎({working.Name})"; - this.groupForWorkingList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; - this.splitter.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; - LoadWorkingLossCurve(working); - } - } - - //宸ュ喌閫夋嫨鏀瑰彉 - private void HydroWorkingListViewCtrl1_SelectedChangedEvent(HydroWorkingVmo working) - { - if (working == null) - { - return; - } - LoadWorkingLossCurve(working); - } - - //鍔犺浇宸ュ喌鎹熷け鏇茬嚎 - private void LoadWorkingLossCurve(HydroWorkingVmo working) - { - if (_hydroInfo == null) - { - return; - } - if (_visual == null) - { - return; - } - var hydroInfo = _hydroInfo.Adapt<Yw.Model.HydroModelInfo>(); - hydroInfo.UpdateWorkingInfo(working.WorkingInfo); - var calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); - this.hydroSingleWorkingLossCurveCtrl1.SetBindingData(hydroInfo, calcuResult, _visual); - } - - // - private void HydroSingleWorkingLossCurveCtrl1_HydroClickEvent(string obj) - { - this.HydroClickEvent?.Invoke(obj); - } - - - } -} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroNodeLossViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroNodeLossViewModel.cs deleted file mode 100644 index c8f0bc7..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroNodeLossViewModel.cs +++ /dev/null @@ -1,62 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public class HydroNodeLossViewModel - { - /// <summary> - /// - /// </summary> - public HydroNodeLossViewModel() { } - - /// <summary> - /// - /// </summary> - public HydroNodeLossViewModel(Yw.EPAnet.LossNode rhs, Yw.Model.HydroVisualInfo visual) - { - this.Code = rhs.Id; - this.Name = visual.Name; - this.Elev = Math.Round(rhs.Elev, 2); - this.StartHead = Math.Round(rhs.Head, 2); - this.EndHead = Math.Round(rhs.Head - rhs.MinorLoss, 2); - this.MinorLoss = rhs.MinorLoss; - this.Distance = Math.Round(rhs.Distance, 2); - } - - /// <summary> - /// 缂栫爜 - /// </summary> - public string Code { get; set; } - - /// <summary> - /// 鍚嶇О - /// </summary> - public string Name { get; set; } - - /// <summary> - /// 楂樼▼ - /// </summary> - public double Elev { get; set; } - - /// <summary> - /// 寮�濮嬫按澶� - /// </summary> - public double StartHead { get; set; } - - /// <summary> - /// 缁撴潫姘村ご - /// </summary> - public double EndHead { get; set; } - - /// <summary> - /// 灞�閮ㄦ崯澶� - /// </summary> - public double MinorLoss { get; set; } - - /// <summary> - /// 璺濈 - /// </summary> - public double Distance { get; set; } - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.cs deleted file mode 100644 index c7876e8..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.cs +++ /dev/null @@ -1,33 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - public partial class HydroSingleWorkingLossCurveDlg : DevExpress.XtraBars.Ribbon.RibbonForm - { - public HydroSingleWorkingLossCurveDlg() - { - InitializeComponent(); - this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; - this.hydroSingleWorkingLossCurveCtrl1.HydroClickEvent += HydroSingleWorkingLossCurveCtrl1_HydroClickEvent; - } - - /// <summary> - /// - /// </summary> - public event Action<string> HydroClickEvent; - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult, Yw.Model.HydroVisualInfo visual) - { - this.hydroSingleWorkingLossCurveCtrl1.SetBindingData(hydroInfo, calcuResult, visual); - } - - // - private void HydroSingleWorkingLossCurveCtrl1_HydroClickEvent(string obj) - { - this.HydroClickEvent?.Invoke(obj); - } - - - } -} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.Designer.cs deleted file mode 100644 index d46424b..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.Designer.cs +++ /dev/null @@ -1,92 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - partial class HydroCatalogLossScaleChartCtrl - { - /// <summary> - /// Required designer variable. - /// </summary> - private System.ComponentModel.IContainer components = null; - - /// <summary> - /// Clean up any resources being used. - /// </summary> - /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// <summary> - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// </summary> - private void InitializeComponent() - { - components = new Container(); - DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series(); - DevExpress.XtraCharts.DoughnutSeriesLabel doughnutSeriesLabel1 = new DevExpress.XtraCharts.DoughnutSeriesLabel(); - DevExpress.XtraCharts.DoughnutSeriesView doughnutSeriesView1 = new DevExpress.XtraCharts.DoughnutSeriesView(); - bindingSource1 = new BindingSource(components); - chartControl1 = new DevExpress.XtraCharts.ChartControl(); - ((ISupportInitialize)bindingSource1).BeginInit(); - ((ISupportInitialize)chartControl1).BeginInit(); - ((ISupportInitialize)series1).BeginInit(); - ((ISupportInitialize)doughnutSeriesLabel1).BeginInit(); - ((ISupportInitialize)doughnutSeriesView1).BeginInit(); - SuspendLayout(); - // - // bindingSource1 - // - bindingSource1.DataSource = typeof(HydroCatalogLossScaleViewModel); - // - // chartControl1 - // - chartControl1.Dock = DockStyle.Fill; - chartControl1.Legend.LegendID = -1; - chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True; - chartControl1.Location = new Point(0, 0); - chartControl1.Name = "chartControl1"; - series1.ArgumentDataMember = "CatalogName"; - series1.DataSource = bindingSource1; - doughnutSeriesLabel1.TextPattern = "{A}:{VP:P2}"; - series1.Label = doughnutSeriesLabel1; - series1.Name = "Series 1"; - series1.SeriesID = 1; - series1.ValueDataMembersSerializable = "Loss"; - doughnutSeriesView1.TotalLabel.TextPattern = "鎬绘崯澶�: {TV:#.##}kW"; - doughnutSeriesView1.TotalLabel.Visible = true; - series1.View = doughnutSeriesView1; - chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[] - { - series1 - }; - chartControl1.Size = new Size(884, 602); - chartControl1.TabIndex = 0; - // - // HydroCatalogLossScaleChartCtrl - // - AutoScaleDimensions = new SizeF(7F, 14F); - AutoScaleMode = AutoScaleMode.Font; - Controls.Add(chartControl1); - Name = "HydroCatalogLossScaleChartCtrl"; - Size = new Size(884, 602); - ((ISupportInitialize)bindingSource1).EndInit(); - ((ISupportInitialize)doughnutSeriesLabel1).EndInit(); - ((ISupportInitialize)doughnutSeriesView1).EndInit(); - ((ISupportInitialize)series1).EndInit(); - ((ISupportInitialize)chartControl1).EndInit(); - ResumeLayout(false); - } - - #endregion - - private DevExpress.XtraCharts.ChartControl chartControl1; - private BindingSource bindingSource1; - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.cs deleted file mode 100644 index f5019c2..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.cs +++ /dev/null @@ -1,51 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - public partial class HydroCatalogLossScaleChartCtrl : DevExpress.XtraEditors.XtraUserControl - { - public HydroCatalogLossScaleChartCtrl() - { - InitializeComponent(); - } - - /// <summary> - /// 杈规鍙鎬� - /// </summary> - public bool BorderVisible - { - get - { - return this.chartControl1.BorderOptions.Visibility != DevExpress.Utils.DefaultBoolean.False; - } - set - { - this.chartControl1.BorderOptions.Visibility = value ? DevExpress.Utils.DefaultBoolean.Default : DevExpress.Utils.DefaultBoolean.False; - } - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult, List<Yw.EPAnet.EnergyPoint> allEnergyList) - { - var allCatalogLossList = hydroInfo.GetAllCatalogLossScaleList(calcuResult, allEnergyList); - SetBindingData(allCatalogLossList); - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(List<HydroCatalogLossScaleViewModel> allCatalogLossList) - { - this.bindingSource1.DataSource = allCatalogLossList; - } - - /// <summary> - /// 瀵煎嚭鍥剧墖 - /// </summary> - public void ExportToImage(string filePath) - { - this.chartControl1.ExportToImage(filePath, DevExpress.Drawing.DXImageFormat.Png); - } - - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleHelper.cs deleted file mode 100644 index a00cbad..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleHelper.cs +++ /dev/null @@ -1,179 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public static class HydroCatalogLossScaleHelper - { - /// <summary> - /// 鑾峰彇鍒嗙被鎹熷け姣斾緥鍒楄〃 - /// </summary> - public static List<HydroCatalogLossScaleViewModel> GetAllCatalogLossScaleList - ( - this Yw.Model.HydroModelInfo hydroInfo, - HydroCalcuResult calcuResult, - List<Yw.EPAnet.EnergyPoint> allEnergyList - ) - { - if (hydroInfo == null) - { - return default; - } - var allCalcuResultVisualDict = calcuResult?.GetVisualDict(); - - var allScaleList = new List<HydroCatalogLossScaleViewModel>(); - - #region 姘存车 - - if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0) - { - var visualLossScale = new HydroCatalogLossScaleViewModel(); - visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Pump; - visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pump); - foreach (var pump in hydroInfo.Pumps) - { - var calcuPumpResult = allCalcuResultVisualDict?.GetValue(pump.Code) as HydroCalcuPumpResult; - if (calcuPumpResult != null) - { - if (calcuPumpResult.CalcuP.HasValue && calcuPumpResult.CalcuE.HasValue) - { - visualLossScale.Loss += calcuPumpResult.CalcuP.Value * 1000 * (1 - calcuPumpResult.CalcuE.Value / 100); - } - } - } - allScaleList.Add(visualLossScale); - } - - #endregion - - - if (allEnergyList != null && allEnergyList.Count > 0) - { - - #region 绠¢亾 - - if (hydroInfo.Pipes != null && hydroInfo.Pipes.Count > 0) - { - var allVisualIds = hydroInfo.Pipes.Select(x => x.Code).Distinct().ToList(); - var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); - var visualLossScale = new HydroCatalogLossScaleViewModel(); - visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Pipe; - visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Pipe); - visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; - allScaleList.Add(visualLossScale); - } - - #endregion - - #region 杩囨浮浠� - - if (hydroInfo.Translations != null && hydroInfo.Translations.Count > 0) - { - var allVisualIds = hydroInfo.Translations.Select(x => x.Code).Distinct().ToList(); - var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); - var visualLossScale = new HydroCatalogLossScaleViewModel(); - visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Translation; - visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Translation); - visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; - allScaleList.Add(visualLossScale); - } - - #endregion - - #region 闃�闂� - - if (hydroInfo.Valves != null && hydroInfo.Valves.Count > 0) - { - var allVisualIds = hydroInfo.Valves.Select(x => x.Code).Distinct().ToList(); - var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); - var visualLossScale = new HydroCatalogLossScaleViewModel(); - visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Valve; - visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Valve); - visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; - allScaleList.Add(visualLossScale); - } - - #endregion - - #region 寮ご - - if (hydroInfo.Elbows != null && hydroInfo.Elbows.Count > 0) - { - var allVisualIds = hydroInfo.Elbows.Select(x => x.Code).Distinct().ToList(); - var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); - var visualLossScale = new HydroCatalogLossScaleViewModel(); - visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Elbow; - visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Elbow); - visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; - allScaleList.Add(visualLossScale); - } - - #endregion - - #region 涓夐�� - - if (hydroInfo.Threelinks != null && hydroInfo.Threelinks.Count > 0) - { - var allVisualIds = hydroInfo.Threelinks.Select(x => x.Code).Distinct().ToList(); - var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); - var visualLossScale = new HydroCatalogLossScaleViewModel(); - visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Threelink; - visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Threelink); - visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; - allScaleList.Add(visualLossScale); - } - #endregion - - #region 鍥涢�� - - if (hydroInfo.Fourlinks != null && hydroInfo.Fourlinks.Count > 0) - { - var allVisualIds = hydroInfo.Fourlinks.Select(x => x.Code).Distinct().ToList(); - var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); - var visualLossScale = new HydroCatalogLossScaleViewModel(); - visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Fourlink; - visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Fourlink); - visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; - allScaleList.Add(visualLossScale); - } - - #endregion - - #region 鎹㈢儹鍣� - - if (hydroInfo.Exchangers != null && hydroInfo.Exchangers.Count > 0) - { - var allVisualIds = hydroInfo.Exchangers.Select(x => x.Code).Distinct().ToList(); - var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); - var visualLossScale = new HydroCatalogLossScaleViewModel(); - visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Exchanger; - visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Exchanger); - visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; - allScaleList.Add(visualLossScale); - } - - #endregion - - #region 鍘嬬缉鏈� - - if (hydroInfo.Compressors != null && hydroInfo.Compressors.Count > 0) - { - var allVisualIds = hydroInfo.Compressors.Select(x => x.Code).Distinct().ToList(); - var allVisualEnergyList = allEnergyList.Where(x => allVisualIds.Contains(x.Id)).ToList(); - var visualLossScale = new HydroCatalogLossScaleViewModel(); - visualLossScale.Catalog = Yw.Hydro.ParterCatalog.Compressor; - visualLossScale.CatalogName = HydroParterCatalogHelper.GetName(Yw.Hydro.ParterCatalog.Compressor); - visualLossScale.Loss = allVisualEnergyList.Count > 0 ? allVisualEnergyList.Sum(x => x.EnergyPower) : 0; - allScaleList.Add(visualLossScale); - } - - #endregion - - } - allScaleList?.ForEach(x => x.Loss = Math.Round(x.Loss / 1000f, 1)); - return allScaleList; - } - - - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleViewModel.cs deleted file mode 100644 index 897c5ab..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleViewModel.cs +++ /dev/null @@ -1,24 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public class HydroCatalogLossScaleViewModel - { - /// <summary> - /// 鍒嗙被 - /// </summary> - public string Catalog { get; set; } - - /// <summary> - /// 鍒嗙被鍚嶇О - /// </summary> - public string CatalogName { get; set; } - - /// <summary> - /// 鎹熷け - /// </summary> - public double Loss { get; set; } - - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.Designer.cs deleted file mode 100644 index 9bd374b..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.Designer.cs +++ /dev/null @@ -1,95 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - partial class HydroInputEnergyScaleChartCtrl - { - /// <summary> - /// Required designer variable. - /// </summary> - private System.ComponentModel.IContainer components = null; - - /// <summary> - /// Clean up any resources being used. - /// </summary> - /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// <summary> - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// </summary> - private void InitializeComponent() - { - components = new Container(); - DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series(); - DevExpress.XtraCharts.DoughnutSeriesLabel doughnutSeriesLabel1 = new DevExpress.XtraCharts.DoughnutSeriesLabel(); - DevExpress.XtraCharts.DoughnutSeriesView doughnutSeriesView1 = new DevExpress.XtraCharts.DoughnutSeriesView(); - bindingSource1 = new BindingSource(components); - chartControl1 = new DevExpress.XtraCharts.ChartControl(); - ((ISupportInitialize)bindingSource1).BeginInit(); - ((ISupportInitialize)chartControl1).BeginInit(); - ((ISupportInitialize)series1).BeginInit(); - ((ISupportInitialize)doughnutSeriesLabel1).BeginInit(); - ((ISupportInitialize)doughnutSeriesView1).BeginInit(); - SuspendLayout(); - // - // bindingSource1 - // - bindingSource1.DataSource = typeof(HydroInputEnergyScaleViewModel); - // - // chartControl1 - // - chartControl1.Dock = DockStyle.Fill; - chartControl1.Legend.AlignmentHorizontal = DevExpress.XtraCharts.LegendAlignmentHorizontal.Center; - chartControl1.Legend.AlignmentVertical = DevExpress.XtraCharts.LegendAlignmentVertical.BottomOutside; - chartControl1.Legend.Direction = DevExpress.XtraCharts.LegendDirection.LeftToRight; - chartControl1.Legend.LegendID = -1; - chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.True; - chartControl1.Location = new Point(0, 0); - chartControl1.Name = "chartControl1"; - series1.ArgumentDataMember = "EnergyName"; - series1.DataSource = bindingSource1; - doughnutSeriesLabel1.TextPattern = "{A}:{VP:P2}"; - series1.Label = doughnutSeriesLabel1; - series1.Name = "Series 1"; - series1.SeriesID = 1; - series1.ValueDataMembersSerializable = "EnergyValue"; - doughnutSeriesView1.TotalLabel.TextPattern = "鎬昏兘閲�: {TV:#.##}kW"; - doughnutSeriesView1.TotalLabel.Visible = true; - series1.View = doughnutSeriesView1; - chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[] - { - series1 - }; - chartControl1.Size = new Size(884, 602); - chartControl1.TabIndex = 0; - // - // HydroInputEnergyScaleChartCtrl - // - AutoScaleDimensions = new SizeF(7F, 14F); - AutoScaleMode = AutoScaleMode.Font; - Controls.Add(chartControl1); - Name = "HydroInputEnergyScaleChartCtrl"; - Size = new Size(884, 602); - ((ISupportInitialize)bindingSource1).EndInit(); - ((ISupportInitialize)doughnutSeriesLabel1).EndInit(); - ((ISupportInitialize)doughnutSeriesView1).EndInit(); - ((ISupportInitialize)series1).EndInit(); - ((ISupportInitialize)chartControl1).EndInit(); - ResumeLayout(false); - } - - #endregion - - private DevExpress.XtraCharts.ChartControl chartControl1; - private BindingSource bindingSource1; - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.cs deleted file mode 100644 index 4afe800..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.cs +++ /dev/null @@ -1,51 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - public partial class HydroInputEnergyScaleChartCtrl : DevExpress.XtraEditors.XtraUserControl - { - public HydroInputEnergyScaleChartCtrl() - { - InitializeComponent(); - } - - /// <summary> - /// 杈规鍙鎬� - /// </summary> - public bool BorderVisible - { - get - { - return this.chartControl1.BorderOptions.Visibility != DevExpress.Utils.DefaultBoolean.False; - } - set - { - this.chartControl1.BorderOptions.Visibility = value ? DevExpress.Utils.DefaultBoolean.Default : DevExpress.Utils.DefaultBoolean.False; - } - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult, List<Yw.EPAnet.EnergyPoint> allEnergyList) - { - var allEnergyScaleList = hydroInfo.GetAllInputEnergyScaleList(calcuResult, allEnergyList); - SetBindingData(allEnergyScaleList); - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(List<HydroInputEnergyScaleViewModel> allEnergyScaleList) - { - this.bindingSource1.DataSource = allEnergyScaleList; - } - - /// <summary> - /// 瀵煎嚭鍥剧墖 - /// </summary> - public void ExportToImage(string filePath) - { - this.chartControl1.ExportToImage(filePath, DevExpress.Drawing.DXImageFormat.Png); - } - - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.resx deleted file mode 100644 index e3e911f..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.resx +++ /dev/null @@ -1,123 +0,0 @@ -锘�<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>17, 17</value> - </metadata> -</root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleHelper.cs deleted file mode 100644 index b4aeb00..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleHelper.cs +++ /dev/null @@ -1,58 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public static class HydroInputEnergyScaleHelper - { - /// <summary> - /// 鑾峰彇鍒嗙被鎹熷け姣斾緥鍒楄〃 - /// </summary> - public static List<HydroInputEnergyScaleViewModel> GetAllInputEnergyScaleList - ( - this Yw.Model.HydroModelInfo hydroInfo, - HydroCalcuResult calcuResult, - List<Yw.EPAnet.EnergyPoint> allEnergyList - ) - { - if (hydroInfo == null) - { - return default; - } - var allScaleList = new List<HydroInputEnergyScaleViewModel>(); - if (allEnergyList != null && allEnergyList.Count > 0) - { - var allInputEnergyList = allEnergyList.Where(x => x.EnergyType == EPAnet.eEnergyType.Input).ToList(); - var inputEnergyScale = new HydroInputEnergyScaleViewModel() - { - EnergyName = "鍒濆鍔胯兘", - EnergyValue = allInputEnergyList.Count > 0 ? allInputEnergyList.Sum(x => x.EnergyPower) : 0 - }; - allScaleList.Add(inputEnergyScale); - } - if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0) - { - var allCalcuResultVisualDict = calcuResult?.GetVisualDict(); - var inputEnergyScale = new HydroInputEnergyScaleViewModel() { EnergyName = "姘存车鎻愬崌" }; - foreach (var pump in hydroInfo.Pumps) - { - var calcuPumpResult = allCalcuResultVisualDict?.GetValue(pump.Code) as HydroCalcuPumpResult; - if (calcuPumpResult != null) - { - if (calcuPumpResult.CalcuP.HasValue) - { - inputEnergyScale.EnergyValue += calcuPumpResult.CalcuP.Value * 1000; - } - } - } - allScaleList.Add(inputEnergyScale); - } - - allScaleList?.ForEach(x => x.EnergyValue = Math.Round(x.EnergyValue / 1000f, 1)); - - return allScaleList; - } - - - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleViewModel.cs deleted file mode 100644 index ed0e317..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleViewModel.cs +++ /dev/null @@ -1,19 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public class HydroInputEnergyScaleViewModel - { - /// <summary> - /// 鑳介噺鍚嶇О - /// </summary> - public string EnergyName { get; set; } - - /// <summary> - /// 鑳介噺锛堢劍鑰矹=w*s锛� - /// </summary> - public double EnergyValue { get; set; } - - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.Designer.cs deleted file mode 100644 index 6db2d0b..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.Designer.cs +++ /dev/null @@ -1,189 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - partial class HydroMultiWorkingLossStatisticsDlg - { - /// <summary> - /// Required designer variable. - /// </summary> - private System.ComponentModel.IContainer components = null; - - /// <summary> - /// Clean up any resources being used. - /// </summary> - /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// <summary> - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// </summary> - private void InitializeComponent() - { - ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl(); - ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage(); - ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); - layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); - hydroSingleWorkingLossStatisticsCtrl1 = new HydroSingleWorkingLossStatisticsCtrl(); - hydroWorkingListViewCtrl1 = new HydroWorkingListViewCtrl(); - Root = new DevExpress.XtraLayout.LayoutControlGroup(); - groupForWorkingList = new DevExpress.XtraLayout.LayoutControlGroup(); - layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); - splitter = new DevExpress.XtraLayout.SplitterItem(); - layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); - ((ISupportInitialize)ribbon).BeginInit(); - ((ISupportInitialize)layoutControl1).BeginInit(); - layoutControl1.SuspendLayout(); - ((ISupportInitialize)Root).BeginInit(); - ((ISupportInitialize)groupForWorkingList).BeginInit(); - ((ISupportInitialize)layoutControlItem1).BeginInit(); - ((ISupportInitialize)splitter).BeginInit(); - ((ISupportInitialize)layoutControlItem2).BeginInit(); - SuspendLayout(); - // - // ribbon - // - ribbon.ExpandCollapseItem.Id = 0; - ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem }); - ribbon.Location = new Point(0, 0); - ribbon.MaxItemId = 1; - ribbon.Name = "ribbon"; - ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 }); - ribbon.RibbonCaptionAlignment = DevExpress.XtraBars.Ribbon.RibbonCaptionAlignment.Left; - ribbon.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False; - ribbon.Size = new Size(994, 32); - // - // ribbonPage1 - // - ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 }); - ribbonPage1.Name = "ribbonPage1"; - ribbonPage1.Text = "ribbonPage1"; - // - // ribbonPageGroup1 - // - ribbonPageGroup1.Name = "ribbonPageGroup1"; - ribbonPageGroup1.Text = "ribbonPageGroup1"; - // - // layoutControl1 - // - layoutControl1.Controls.Add(hydroSingleWorkingLossStatisticsCtrl1); - layoutControl1.Controls.Add(hydroWorkingListViewCtrl1); - layoutControl1.Dock = DockStyle.Fill; - layoutControl1.Location = new Point(0, 32); - layoutControl1.Name = "layoutControl1"; - layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(719, 346, 650, 400); - layoutControl1.Root = Root; - layoutControl1.Size = new Size(994, 573); - layoutControl1.TabIndex = 1; - layoutControl1.Text = "layoutControl1"; - // - // hydroSingleWorkingLossStatisticsCtrl1 - // - hydroSingleWorkingLossStatisticsCtrl1.Location = new Point(177, 2); - hydroSingleWorkingLossStatisticsCtrl1.Name = "hydroSingleWorkingLossStatisticsCtrl1"; - hydroSingleWorkingLossStatisticsCtrl1.Size = new Size(815, 569); - hydroSingleWorkingLossStatisticsCtrl1.TabIndex = 2; - // - // hydroWorkingListViewCtrl1 - // - hydroWorkingListViewCtrl1.BorderVisible = false; - hydroWorkingListViewCtrl1.Location = new Point(3, 24); - hydroWorkingListViewCtrl1.Name = "hydroWorkingListViewCtrl1"; - hydroWorkingListViewCtrl1.Size = new Size(159, 546); - hydroWorkingListViewCtrl1.TabIndex = 0; - // - // Root - // - Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; - Root.GroupBordersVisible = false; - Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { groupForWorkingList, splitter, layoutControlItem2 }); - Root.Name = "Root"; - Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - Root.Size = new Size(994, 573); - Root.TextVisible = false; - // - // groupForWorkingList - // - groupForWorkingList.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 }); - groupForWorkingList.Location = new Point(0, 0); - groupForWorkingList.Name = "groupForWorkingList"; - groupForWorkingList.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - groupForWorkingList.Size = new Size(165, 573); - groupForWorkingList.Text = "宸ュ喌鍒楄〃"; - // - // layoutControlItem1 - // - layoutControlItem1.Control = hydroWorkingListViewCtrl1; - layoutControlItem1.Location = new Point(0, 0); - layoutControlItem1.Name = "layoutControlItem1"; - layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - layoutControlItem1.Size = new Size(159, 546); - layoutControlItem1.TextSize = new Size(0, 0); - layoutControlItem1.TextVisible = false; - // - // splitter - // - splitter.AllowHotTrack = true; - splitter.Location = new Point(165, 0); - splitter.Name = "splitter"; - splitter.Size = new Size(10, 573); - // - // layoutControlItem2 - // - layoutControlItem2.Control = hydroSingleWorkingLossStatisticsCtrl1; - layoutControlItem2.Location = new Point(175, 0); - layoutControlItem2.Name = "layoutControlItem2"; - layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - layoutControlItem2.Size = new Size(819, 573); - layoutControlItem2.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); - layoutControlItem2.TextSize = new Size(0, 0); - layoutControlItem2.TextVisible = false; - // - // HydroMultiWorkingLossStatisticsDlg - // - AutoScaleDimensions = new SizeF(7F, 14F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(994, 605); - Controls.Add(layoutControl1); - Controls.Add(ribbon); - FormBorderStyle = FormBorderStyle.SizableToolWindow; - Name = "HydroMultiWorkingLossStatisticsDlg"; - Ribbon = ribbon; - RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden; - StartPosition = FormStartPosition.CenterParent; - Text = "鎹熷け缁熻"; - ((ISupportInitialize)ribbon).EndInit(); - ((ISupportInitialize)layoutControl1).EndInit(); - layoutControl1.ResumeLayout(false); - ((ISupportInitialize)Root).EndInit(); - ((ISupportInitialize)groupForWorkingList).EndInit(); - ((ISupportInitialize)layoutControlItem1).EndInit(); - ((ISupportInitialize)splitter).EndInit(); - ((ISupportInitialize)layoutControlItem2).EndInit(); - ResumeLayout(false); - PerformLayout(); - } - - #endregion - - private DevExpress.XtraBars.Ribbon.RibbonControl ribbon; - private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1; - private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1; - private DevExpress.XtraLayout.LayoutControl layoutControl1; - private HydroSingleWorkingLossStatisticsCtrl hydroSingleWorkingLossStatisticsCtrl1; - private HydroWorkingListViewCtrl hydroWorkingListViewCtrl1; - private DevExpress.XtraLayout.LayoutControlGroup Root; - private DevExpress.XtraLayout.LayoutControlGroup groupForWorkingList; - private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; - private DevExpress.XtraLayout.SplitterItem splitter; - private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; - } -} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.cs deleted file mode 100644 index 1823557..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.cs +++ /dev/null @@ -1,68 +0,0 @@ -锘縰sing Mapster; - -namespace Yw.WinFrmUI -{ - public partial class HydroMultiWorkingLossStatisticsDlg : DevExpress.XtraBars.Ribbon.RibbonForm - { - public HydroMultiWorkingLossStatisticsDlg() - { - InitializeComponent(); - this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; - this.layoutControl1.SetupLayoutControl(); - this.hydroWorkingListViewCtrl1.SelectedChangedEvent += HydroWorkingListViewCtrl1_SelectedChangedEvent; - } - - - private Yw.Model.HydroModelInfo _hydroInfo = null; - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, List<HydroWorkingVmo> allWorkingList) - { - if (hydroInfo == null) - { - return; - } - if (allWorkingList == null || allWorkingList.Count < 1) - { - return; - } - _hydroInfo = hydroInfo; - this.hydroWorkingListViewCtrl1.SetBindingData(allWorkingList); - if (allWorkingList.Count < 2) - { - var working = allWorkingList[0]; - this.Text = $"鎹熷け缁熻({working.Name})"; - this.groupForWorkingList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; - this.splitter.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; - LoadWorkingLossStatistics(working); - } - } - - //宸ュ喌閫夋嫨鏀瑰彉 - private void HydroWorkingListViewCtrl1_SelectedChangedEvent(HydroWorkingVmo working) - { - if (working == null) - { - return; - } - LoadWorkingLossStatistics(working); - } - - //鍔犺浇宸ュ喌缁熻 - private void LoadWorkingLossStatistics(HydroWorkingVmo working) - { - if (_hydroInfo == null) - { - return; - } - var hydroInfo = _hydroInfo.Adapt<Yw.Model.HydroModelInfo>(); - hydroInfo.UpdateWorkingInfo(working.WorkingInfo); - var calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); - this.hydroSingleWorkingLossStatisticsCtrl1.SetBindingData(hydroInfo, calcuResult); - } - - - } -} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.resx deleted file mode 100644 index af32865..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.resx +++ /dev/null @@ -1,120 +0,0 @@ -锘�<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> -</root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.Designer.cs deleted file mode 100644 index f1d68aa..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.Designer.cs +++ /dev/null @@ -1,200 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - partial class HydroSingleWorkingLossStatisticsCtrl - { - /// <summary> - /// Required designer variable. - /// </summary> - private System.ComponentModel.IContainer components = null; - - /// <summary> - /// Clean up any resources being used. - /// </summary> - /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// <summary> - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// </summary> - private void InitializeComponent() - { - layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); - hydroInputEnergyScaleChartCtrl1 = new HydroInputEnergyScaleChartCtrl(); - hydroEnergyStatisticsBarCtrl1 = new HydroEnergyStatisticsBarCtrl(); - hydroCatalogLossScaleChartCtrl1 = new HydroCatalogLossScaleChartCtrl(); - Root = new DevExpress.XtraLayout.LayoutControlGroup(); - layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup(); - layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); - layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup(); - layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); - layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup(); - layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); - ((ISupportInitialize)layoutControl1).BeginInit(); - layoutControl1.SuspendLayout(); - ((ISupportInitialize)Root).BeginInit(); - ((ISupportInitialize)layoutControlGroup1).BeginInit(); - ((ISupportInitialize)layoutControlItem3).BeginInit(); - ((ISupportInitialize)layoutControlGroup2).BeginInit(); - ((ISupportInitialize)layoutControlItem1).BeginInit(); - ((ISupportInitialize)layoutControlGroup3).BeginInit(); - ((ISupportInitialize)layoutControlItem2).BeginInit(); - SuspendLayout(); - // - // layoutControl1 - // - layoutControl1.Controls.Add(hydroInputEnergyScaleChartCtrl1); - layoutControl1.Controls.Add(hydroEnergyStatisticsBarCtrl1); - layoutControl1.Controls.Add(hydroCatalogLossScaleChartCtrl1); - layoutControl1.Dock = DockStyle.Fill; - layoutControl1.Location = new Point(0, 0); - layoutControl1.Name = "layoutControl1"; - layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(564, 341, 650, 423); - layoutControl1.Root = Root; - layoutControl1.Size = new Size(918, 674); - layoutControl1.TabIndex = 9; - layoutControl1.Text = "layoutControl1"; - // - // hydroInputEnergyScaleChartCtrl1 - // - hydroInputEnergyScaleChartCtrl1.BorderVisible = false; - hydroInputEnergyScaleChartCtrl1.Location = new Point(2, 23); - hydroInputEnergyScaleChartCtrl1.Name = "hydroInputEnergyScaleChartCtrl1"; - hydroInputEnergyScaleChartCtrl1.Size = new Size(377, 425); - hydroInputEnergyScaleChartCtrl1.TabIndex = 4; - // - // hydroEnergyStatisticsBarCtrl1 - // - hydroEnergyStatisticsBarCtrl1.BorderVisible = false; - hydroEnergyStatisticsBarCtrl1.Location = new Point(2, 473); - hydroEnergyStatisticsBarCtrl1.Name = "hydroEnergyStatisticsBarCtrl1"; - hydroEnergyStatisticsBarCtrl1.Size = new Size(914, 199); - hydroEnergyStatisticsBarCtrl1.TabIndex = 2; - // - // hydroCatalogLossScaleChartCtrl1 - // - hydroCatalogLossScaleChartCtrl1.BorderVisible = false; - hydroCatalogLossScaleChartCtrl1.Location = new Point(383, 23); - hydroCatalogLossScaleChartCtrl1.Name = "hydroCatalogLossScaleChartCtrl1"; - hydroCatalogLossScaleChartCtrl1.Size = new Size(533, 425); - hydroCatalogLossScaleChartCtrl1.TabIndex = 0; - // - // Root - // - Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; - Root.GroupBordersVisible = false; - Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlGroup1, layoutControlGroup2, layoutControlGroup3 }); - Root.Name = "Root"; - Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - Root.Size = new Size(918, 674); - Root.TextVisible = false; - // - // layoutControlGroup1 - // - layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem3 }); - layoutControlGroup1.Location = new Point(0, 0); - layoutControlGroup1.Name = "layoutControlGroup1"; - layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - layoutControlGroup1.Size = new Size(381, 450); - layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); - layoutControlGroup1.Text = "鑳介噺杈撳叆"; - // - // layoutControlItem3 - // - layoutControlItem3.Control = hydroInputEnergyScaleChartCtrl1; - layoutControlItem3.Location = new Point(0, 0); - layoutControlItem3.MinSize = new Size(1, 1); - layoutControlItem3.Name = "layoutControlItem3"; - layoutControlItem3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - layoutControlItem3.Size = new Size(377, 425); - layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; - layoutControlItem3.TextSize = new Size(0, 0); - layoutControlItem3.TextVisible = false; - // - // layoutControlGroup2 - // - layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 }); - layoutControlGroup2.Location = new Point(381, 0); - layoutControlGroup2.Name = "layoutControlGroup2"; - layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - layoutControlGroup2.Size = new Size(537, 450); - layoutControlGroup2.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); - layoutControlGroup2.Text = "鑳介噺鎹熷け"; - // - // layoutControlItem1 - // - layoutControlItem1.Control = hydroCatalogLossScaleChartCtrl1; - layoutControlItem1.Location = new Point(0, 0); - layoutControlItem1.Name = "layoutControlItem1"; - layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - layoutControlItem1.Size = new Size(533, 425); - layoutControlItem1.Text = "鍒嗙被缁熻"; - layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top; - layoutControlItem1.TextSize = new Size(0, 0); - layoutControlItem1.TextVisible = false; - // - // layoutControlGroup3 - // - layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2 }); - layoutControlGroup3.Location = new Point(0, 450); - layoutControlGroup3.Name = "layoutControlGroup3"; - layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - layoutControlGroup3.Size = new Size(918, 224); - layoutControlGroup3.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1); - layoutControlGroup3.Text = "鑳介噺缁熻"; - // - // layoutControlItem2 - // - layoutControlItem2.Control = hydroEnergyStatisticsBarCtrl1; - layoutControlItem2.Location = new Point(0, 0); - layoutControlItem2.Name = "layoutControlItem2"; - layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - layoutControlItem2.Size = new Size(914, 199); - layoutControlItem2.Text = "鑳介噺缁熻"; - layoutControlItem2.TextLocation = DevExpress.Utils.Locations.Top; - layoutControlItem2.TextSize = new Size(0, 0); - layoutControlItem2.TextVisible = false; - // - // HydroSingleWorkingLossStatisticsCtrl - // - AutoScaleDimensions = new SizeF(7F, 14F); - AutoScaleMode = AutoScaleMode.Font; - Controls.Add(layoutControl1); - Name = "HydroSingleWorkingLossStatisticsCtrl"; - Size = new Size(918, 674); - ((ISupportInitialize)layoutControl1).EndInit(); - layoutControl1.ResumeLayout(false); - ((ISupportInitialize)Root).EndInit(); - ((ISupportInitialize)layoutControlGroup1).EndInit(); - ((ISupportInitialize)layoutControlItem3).EndInit(); - ((ISupportInitialize)layoutControlGroup2).EndInit(); - ((ISupportInitialize)layoutControlItem1).EndInit(); - ((ISupportInitialize)layoutControlGroup3).EndInit(); - ((ISupportInitialize)layoutControlItem2).EndInit(); - ResumeLayout(false); - } - - #endregion - - private DevExpress.XtraLayout.LayoutControl layoutControl1; - private HydroEnergyStatisticsBarCtrl hydroEnergyStatisticsBarCtrl1; - private HydroCatalogLossScaleChartCtrl hydroCatalogLossScaleChartCtrl1; - private DevExpress.XtraLayout.LayoutControlGroup Root; - private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; - private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; - private HydroInputEnergyScaleChartCtrl hydroInputEnergyScaleChartCtrl1; - private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; - private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup1; - private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup2; - private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup3; - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.cs deleted file mode 100644 index 8d4b12a..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.cs +++ /dev/null @@ -1,77 +0,0 @@ -锘縰sing Yw.EPAnet; -using Yw.Hydro; -namespace Yw.WinFrmUI -{ - public partial class HydroSingleWorkingLossStatisticsCtrl : DevExpress.XtraEditors.XtraUserControl - { - public HydroSingleWorkingLossStatisticsCtrl() - { - InitializeComponent(); - this.layoutControl1.SetupLayoutControl(); - } - - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult) - { - if (hydroInfo == null) - { - return; - } - List<Yw.EPAnet.EnergyPoint> allEnergyList = null; - var network = hydroInfo.ToNetwork(); - if (network != null) - { - if (calcuResult != null) - { - if (calcuResult.EPAnetCalcuResult != null) - { - allEnergyList = network.AnalyzeEnergy(calcuResult.EPAnetCalcuResult); - } - } - } - SetBindingData(hydroInfo, calcuResult, allEnergyList); - } - - /// <summary> - /// - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult, List<Yw.EPAnet.EnergyPoint> allEnergyList) - { - if (hydroInfo == null) - { - return; - } - this.hydroInputEnergyScaleChartCtrl1.SetBindingData(hydroInfo, calcuResult, allEnergyList); - this.hydroCatalogLossScaleChartCtrl1.SetBindingData(hydroInfo, calcuResult, allEnergyList); - this.hydroEnergyStatisticsBarCtrl1.SetBindingData(hydroInfo, calcuResult, allEnergyList); - } - - /// <summary> - /// 瀵煎嚭鑳介噺杈撳叆鍥剧墖 - /// </summary> - public void ExportInputToImage(string filePath) - { - this.hydroInputEnergyScaleChartCtrl1.ExportToImage(filePath); - } - - /// <summary> - /// 瀵煎嚭鎹熷け鍥剧墖 - /// </summary> - public void ExportLossToImage(string filePath) - { - this.hydroCatalogLossScaleChartCtrl1.ExportToImage(filePath); - } - - /// <summary> - /// 瀵煎嚭缁熻鍥剧墖 - /// </summary> - public void ExportStatisticsToImage(string filePath) - { - this.hydroEnergyStatisticsBarCtrl1.ExportToImage(filePath); - } - - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.resx deleted file mode 100644 index af32865..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.resx +++ /dev/null @@ -1,120 +0,0 @@ -锘�<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> -</root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.Designer.cs deleted file mode 100644 index 0972a56..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.Designer.cs +++ /dev/null @@ -1,94 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - partial class HydroSingleWorkingLossStatisticsDlg - { - /// <summary> - /// Required designer variable. - /// </summary> - private System.ComponentModel.IContainer components = null; - - /// <summary> - /// Clean up any resources being used. - /// </summary> - /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// <summary> - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// </summary> - private void InitializeComponent() - { - ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl(); - ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage(); - ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); - hydroSingleWorkingLossStatisticsCtrl1 = new HydroSingleWorkingLossStatisticsCtrl(); - ((ISupportInitialize)ribbon).BeginInit(); - SuspendLayout(); - // - // ribbon - // - ribbon.ExpandCollapseItem.Id = 0; - ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem }); - ribbon.Location = new Point(0, 0); - ribbon.MaxItemId = 1; - ribbon.Name = "ribbon"; - ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 }); - ribbon.RibbonCaptionAlignment = DevExpress.XtraBars.Ribbon.RibbonCaptionAlignment.Left; - ribbon.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False; - ribbon.Size = new Size(997, 32); - // - // ribbonPage1 - // - ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 }); - ribbonPage1.Name = "ribbonPage1"; - ribbonPage1.Text = "ribbonPage1"; - // - // ribbonPageGroup1 - // - ribbonPageGroup1.Name = "ribbonPageGroup1"; - ribbonPageGroup1.Text = "ribbonPageGroup1"; - // - // hydroSingleLossScaleCtrl1 - // - hydroSingleWorkingLossStatisticsCtrl1.Dock = DockStyle.Fill; - hydroSingleWorkingLossStatisticsCtrl1.Location = new Point(0, 32); - hydroSingleWorkingLossStatisticsCtrl1.Name = "hydroSingleLossScaleCtrl1"; - hydroSingleWorkingLossStatisticsCtrl1.Size = new Size(997, 591); - hydroSingleWorkingLossStatisticsCtrl1.TabIndex = 1; - // - // HydroSingleLossScaleDlg - // - AutoScaleDimensions = new SizeF(7F, 14F); - AutoScaleMode = AutoScaleMode.Font; - ClientSize = new Size(997, 623); - Controls.Add(hydroSingleWorkingLossStatisticsCtrl1); - Controls.Add(ribbon); - FormBorderStyle = FormBorderStyle.SizableToolWindow; - Name = "HydroSingleLossScaleDlg"; - Ribbon = ribbon; - RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden; - StartPosition = FormStartPosition.CenterParent; - Text = "鎹熷け姣斾緥"; - ((ISupportInitialize)ribbon).EndInit(); - ResumeLayout(false); - PerformLayout(); - } - - #endregion - - private DevExpress.XtraBars.Ribbon.RibbonControl ribbon; - private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1; - private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1; - private HydroSingleWorkingLossStatisticsCtrl hydroSingleWorkingLossStatisticsCtrl1; - } -} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.cs deleted file mode 100644 index 82ab707..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.cs +++ /dev/null @@ -1,52 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - public partial class HydroSingleWorkingLossStatisticsDlg : DevExpress.XtraBars.Ribbon.RibbonForm - { - public HydroSingleWorkingLossStatisticsDlg() - { - InitializeComponent(); - this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo) - { - if (hydroInfo == null) - { - return; - } - var calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss); - SetBindingData(hydroInfo, calcuResult); - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult) - { - if (hydroInfo == null) - { - return; - } - this.hydroSingleWorkingLossStatisticsCtrl1.SetBindingData(hydroInfo, calcuResult); - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult, List<Yw.EPAnet.EnergyPoint> allEnergyList) - { - if (hydroInfo == null) - { - return; - } - this.hydroSingleWorkingLossStatisticsCtrl1.SetBindingData(hydroInfo, calcuResult, allEnergyList); - } - - - - - } -} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.resx deleted file mode 100644 index af32865..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.resx +++ /dev/null @@ -1,120 +0,0 @@ -锘�<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> -</root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.Designer.cs deleted file mode 100644 index 32a2c36..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.Designer.cs +++ /dev/null @@ -1,97 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - partial class HydroEnergyStatisticsBarCtrl - { - /// <summary> - /// Required designer variable. - /// </summary> - private System.ComponentModel.IContainer components = null; - - /// <summary> - /// Clean up any resources being used. - /// </summary> - /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// <summary> - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// </summary> - private void InitializeComponent() - { - components = new Container(); - DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram(); - DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series(); - DevExpress.XtraCharts.SideBySideBarSeriesLabel sideBySideBarSeriesLabel1 = new DevExpress.XtraCharts.SideBySideBarSeriesLabel(); - bindingSource1 = new BindingSource(components); - chartControl1 = new DevExpress.XtraCharts.ChartControl(); - ((ISupportInitialize)bindingSource1).BeginInit(); - ((ISupportInitialize)chartControl1).BeginInit(); - ((ISupportInitialize)xyDiagram1).BeginInit(); - ((ISupportInitialize)series1).BeginInit(); - ((ISupportInitialize)sideBySideBarSeriesLabel1).BeginInit(); - SuspendLayout(); - // - // bindingSource1 - // - bindingSource1.DataSource = typeof(HydroEnergyStatisticsItemViewModel); - // - // chartControl1 - // - xyDiagram1.AxisX.VisibleInPanesSerializable = "-1"; - xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; - xyDiagram1.AxisY.WholeRange.AutoSideMargins = false; - xyDiagram1.AxisY.WholeRange.EndSideMargin = 0.94000000000000006D; - xyDiagram1.AxisY.WholeRange.StartSideMargin = 0D; - chartControl1.Diagram = xyDiagram1; - chartControl1.Dock = DockStyle.Fill; - chartControl1.Legend.AlignmentHorizontal = DevExpress.XtraCharts.LegendAlignmentHorizontal.Center; - chartControl1.Legend.LegendID = -1; - chartControl1.Legend.Visibility = DevExpress.Utils.DefaultBoolean.False; - chartControl1.Location = new Point(0, 0); - chartControl1.Name = "chartControl1"; - series1.ArgumentDataMember = "EnergyName"; - series1.DataSource = bindingSource1; - sideBySideBarSeriesLabel1.TextPattern = "{V}kW"; - series1.Label = sideBySideBarSeriesLabel1; - series1.LabelsVisibility = DevExpress.Utils.DefaultBoolean.True; - series1.Name = "Series 1"; - series1.SeriesID = 0; - series1.ValueDataMembersSerializable = "EnergyValue"; - chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[] - { - series1 - }; - chartControl1.Size = new Size(1005, 485); - chartControl1.TabIndex = 0; - // - // HydroEnergyStatisticsBarCtrl - // - AutoScaleDimensions = new SizeF(7F, 14F); - AutoScaleMode = AutoScaleMode.Font; - Controls.Add(chartControl1); - Name = "HydroEnergyStatisticsBarCtrl"; - Size = new Size(1005, 485); - ((ISupportInitialize)bindingSource1).EndInit(); - ((ISupportInitialize)xyDiagram1).EndInit(); - ((ISupportInitialize)sideBySideBarSeriesLabel1).EndInit(); - ((ISupportInitialize)series1).EndInit(); - ((ISupportInitialize)chartControl1).EndInit(); - ResumeLayout(false); - } - - #endregion - - private DevExpress.XtraCharts.ChartControl chartControl1; - private BindingSource bindingSource1; - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.cs deleted file mode 100644 index 24b44a9..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.cs +++ /dev/null @@ -1,52 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - public partial class HydroEnergyStatisticsBarCtrl : DevExpress.XtraEditors.XtraUserControl - { - public HydroEnergyStatisticsBarCtrl() - { - InitializeComponent(); - } - - /// <summary> - /// 杈规鍙鎬� - /// </summary> - public bool BorderVisible - { - get - { - return this.chartControl1.BorderOptions.Visibility != DevExpress.Utils.DefaultBoolean.False; - } - set - { - this.chartControl1.BorderOptions.Visibility = value ? DevExpress.Utils.DefaultBoolean.Default : DevExpress.Utils.DefaultBoolean.False; - } - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult, List<Yw.EPAnet.EnergyPoint> allEnergyList) - { - var allStatisticsList = hydroInfo.GetStatisticsList(calcuResult, allEnergyList); - SetBindingData(allStatisticsList); - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(List<HydroEnergyStatisticsItemViewModel> allStatisticsList) - { - this.bindingSource1.DataSource = allStatisticsList; - this.bindingSource1.ResetBindings(false); - } - - /// <summary> - /// 瀵煎嚭鍥剧墖 - /// </summary> - public void ExportToImage(string filePath) - { - this.chartControl1.ExportToImage(filePath, DevExpress.Drawing.DXImageFormat.Png); - } - - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.resx deleted file mode 100644 index e3e911f..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.resx +++ /dev/null @@ -1,123 +0,0 @@ -锘�<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>17, 17</value> - </metadata> -</root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsHelper.cs deleted file mode 100644 index 035bea7..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsHelper.cs +++ /dev/null @@ -1,114 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public static class HydroEnergyStatisticsHelper - { - - /// <summary> - /// 鑾峰彇缁熻鍒楄〃 - /// </summary> - public static List<HydroEnergyStatisticsItemViewModel> GetStatisticsList - (this Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult, List<Yw.EPAnet.EnergyPoint> allEnergyList) - { - if (hydroInfo == null) - { - return default; - } - var allStatisticsList = allEnergyList.GetStatisticsList(); - if (allStatisticsList == null || allStatisticsList.Count < 1) - { - return default; - } - - double pumpLoss = 0; - if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0) - { - var allCalcuResultVisualDict = calcuResult?.GetVisualDict(); - foreach (var pump in hydroInfo.Pumps) - { - var calcuPumpResult = allCalcuResultVisualDict?.GetValue(pump.Code) as HydroCalcuPumpResult; - if (calcuPumpResult != null) - { - if (calcuPumpResult.CalcuP.HasValue && calcuPumpResult.CalcuE.HasValue) - { - pumpLoss += calcuPumpResult.CalcuP.Value * 1000 * (1 - calcuPumpResult.CalcuE.Value / 100); - } - } - } - } - - var promoteEnergy = allStatisticsList.Find(x => x.EnergyType == eEnergyType.Promote); - if (promoteEnergy != null) - { - promoteEnergy.EnergyValue += pumpLoss; - } - - var minorLossEnergy = allStatisticsList.Find(x => x.EnergyType == eEnergyType.MinorLoss); - if (minorLossEnergy != null) - { - minorLossEnergy.EnergyValue += pumpLoss; - } - - allStatisticsList.ForEach(x => x.EnergyValue = Math.Round(x.EnergyValue / 1000f, 1)); - - return allStatisticsList; - } - - /// <summary> - /// 鑾峰彇缁熻鍒楄〃 - /// </summary> - public static List<HydroEnergyStatisticsItemViewModel> GetStatisticsList(this List<Yw.EPAnet.EnergyPoint> allEnergyList) - { - var allStatisticsList = new List<HydroEnergyStatisticsItemViewModel>(); - if (allEnergyList != null && allEnergyList.Count > 0) - { - var allEnergyGroupList = allEnergyList.GroupBy(x => x.EnergyType).ToList(); - foreach (var energyGroup in allEnergyGroupList) - { - var item = new HydroEnergyStatisticsItemViewModel(); - switch (energyGroup.Key) - { - case EPAnet.eEnergyType.Input: - { - item.EnergyType = eEnergyType.Input; - item.EnergyName = eEnergyType.Input.GetDisplayText(); - } - break; - case EPAnet.eEnergyType.Output: - { - item.EnergyType = eEnergyType.Output; - item.EnergyName = eEnergyType.Output.GetDisplayText(); - } - break; - case EPAnet.eEnergyType.Promote: - { - item.EnergyType = eEnergyType.Promote; - item.EnergyName = eEnergyType.Promote.GetDisplayText(); - } - break; - case EPAnet.eEnergyType.MinorLoss: - { - item.EnergyType = eEnergyType.MinorLoss; - item.EnergyName = eEnergyType.MinorLoss.GetDisplayText(); - } - break; - case EPAnet.eEnergyType.FrictionalLoss: - { - item.EnergyType = eEnergyType.FrictionalLoss; - item.EnergyName = eEnergyType.FrictionalLoss.GetDisplayText(); - } - break; - default: break; - } - item.EnergyValue = Math.Round(energyGroup.Sum(x => x.EnergyPower), 2); - allStatisticsList.Add(item); - } - } - return allStatisticsList.OrderBy(x => x.EnergyType).ToList(); - } - - - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsItemViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsItemViewModel.cs deleted file mode 100644 index 24c1c7d..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsItemViewModel.cs +++ /dev/null @@ -1,23 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - /// <summary> - /// - /// </summary> - public class HydroEnergyStatisticsItemViewModel - { - /// <summary> - /// 鑳介噺绫诲瀷 - /// </summary> - public eEnergyType EnergyType { get; set; } - - /// <summary> - /// 鑳介噺鍚嶇О - /// </summary> - public string EnergyName { get; set; } - - /// <summary> - /// 鑳介噺鍊� - /// </summary> - public double EnergyValue { get; set; } - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.cs deleted file mode 100644 index 9831665..0000000 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.cs +++ /dev/null @@ -1,103 +0,0 @@ -锘縩amespace Yw.WinFrmUI -{ - public partial class HydroEnergyTotalViewCtrl : DevExpress.XtraEditors.XtraUserControl - { - public HydroEnergyTotalViewCtrl() - { - InitializeComponent(); - this.layoutControl1.SetupLayoutControl(); - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult) - { - if (hydroInfo == null) - { - return; - } - if (calcuResult == null) - { - return; - } - if (!calcuResult.Succeed) - { - return; - } - - var allCalcuResultVisualDict = calcuResult.GetVisualDict(); - SetBindingData(hydroInfo, allCalcuResultVisualDict); - } - - /// <summary> - /// 缁戝畾鏁版嵁 - /// </summary> - public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, Dictionary<string, HydroCalcuVisualResult> allCalcuResultVisualDict) - { - if (hydroInfo == null) - { - return; - } - if (allCalcuResultVisualDict == null || allCalcuResultVisualDict.Count < 1) - { - return; - } - - double? totalQ = null; - double? totalP = null; - var allEfficiList = new List<double>(); - if (hydroInfo.Pumps != null && hydroInfo.Pumps.Count > 0) - { - foreach (var pump in hydroInfo.Pumps) - { - if (!allCalcuResultVisualDict.ContainsKey(pump.Code)) - { - continue; - } - var calcuResult = allCalcuResultVisualDict[pump.Code] as HydroCalcuPumpResult; - if (calcuResult == null) - { - continue; - } - if (pump.LinkStatus == Yw.Hydro.PumpStatus.Open) - { - if (calcuResult.CalcuQ.HasValue) - { - if (!totalQ.HasValue) - { - totalQ = 0; - } - totalQ += calcuResult.CalcuQ.Value; - } - if (calcuResult.CalcuP.HasValue) - { - if (!totalP.HasValue) - { - totalP = 0; - } - totalP += calcuResult.CalcuP.Value; - } - if (calcuResult.CalcuE.HasValue) - { - allEfficiList.Add(calcuResult.CalcuE.Value); - } - } - } - } - if (totalQ.HasValue) - { - this.txtQ.EditValue = $"{Math.Round(totalQ.Value, 1)}m鲁/h"; - } - if (totalP.HasValue) - { - this.txtP.EditValue = $"{Math.Round(totalP.Value, 1)}kW"; - } - if (allEfficiList.Count > 0) - { - this.txtE.EditValue = $"{Math.Round(allEfficiList.Average(), 1)}%"; - } - } - - } -} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj index 4c568ea..1d2e77d 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj @@ -237,24 +237,6 @@ <Compile Update="17-warning\HydroCalcuWarningCtrl.cs"> <SubType>UserControl</SubType> </Compile> - <Compile Update="18-loss\01-curve\HydroMultiWorkingLossCurveDlg.cs"> - <SubType>Form</SubType> - </Compile> - <Compile Update="18-loss\01-curve\HydroSingleWorkingLossCurveInteropCtrl.cs"> - <SubType>UserControl</SubType> - </Compile> - <Compile Update="18-loss\01-curve\HydroSingleWorkingLossCurveDlg.cs"> - <SubType>Form</SubType> - </Compile> - <Compile Update="18-loss\02-scale\02-input\HydroInputEnergyScaleChartCtrl.cs"> - <SubType>UserControl</SubType> - </Compile> - <Compile Update="18-loss\03-statistics\HydroMultiWorkingLossStatisticsDlg.cs"> - <SubType>Form</SubType> - </Compile> - <Compile Update="18-loss\03-statistics\HydroSingleWorkingLossStatisticsDlg.cs"> - <SubType>Form</SubType> - </Compile> <Compile Update="19-pump\02-extend\01-single\HydroSinglePumpListExtendGridCtrl.cs"> <SubType>UserControl</SubType> </Compile> @@ -407,6 +389,24 @@ <Compile Update="accuracy\scale\HydroAccuracyScaleChartCtrl.cs"> <SubType>UserControl</SubType> </Compile> + <Compile Update="energy-analy\03-control\HydroEnergyAnalyTotalCtrl.cs"> + <SubType>UserControl</SubType> + </Compile> + <Compile Update="loss-curve\07-control\HydroLossCurveCtrl.cs"> + <SubType>UserControl</SubType> + </Compile> + <Compile Update="loss-curve\07-control\HydroLossCurveInteropCtrl.cs"> + <SubType>UserControl</SubType> + </Compile> + <Compile Update="loss-curve\08-dlg\HydroLossCurveDlg.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Update="loss-curve\09-working\HydroLossCurveMultiWorkingDlg.cs"> + <SubType>Form</SubType> + </Compile> + <Compile Update="loss-curve\09-working\HydroLossCurveWorkingDlg.cs"> + <SubType>Form</SubType> + </Compile> <Compile Update="loss-statistics\06-control\HydroLossStatisticsCategoryCtrl.cs"> <SubType>UserControl</SubType> </Compile> diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user index cfd63b1..e20e653 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user @@ -58,15 +58,6 @@ <Compile Update="16-evaluation\03-total\HydroWorkingTotalEvaluationCtrl.cs"> <SubType>UserControl</SubType> </Compile> - <Compile Update="18-loss\01-curve\HydroSingleWorkingLossCurveCtrl.cs"> - <SubType>UserControl</SubType> - </Compile> - <Compile Update="18-loss\02-scale\01-catalog\HydroCatalogLossScaleChartCtrl.cs"> - <SubType>UserControl</SubType> - </Compile> - <Compile Update="18-loss\03-statistics\HydroSingleWorkingLossStatisticsCtrl.cs"> - <SubType>UserControl</SubType> - </Compile> <Compile Update="19-pump\01-list\HydroPumpListViewCtrl.cs"> <SubType>UserControl</SubType> </Compile> @@ -86,12 +77,6 @@ <SubType>UserControl</SubType> </Compile> <Compile Update="19-pump\08-energy\HydroPumpGroupEnergyListCtrl.cs"> - <SubType>UserControl</SubType> - </Compile> - <Compile Update="20-energy\01-statistics\HydroEnergyStatisticsBarCtrl.cs"> - <SubType>UserControl</SubType> - </Compile> - <Compile Update="20-energy\02-total\HydroEnergyTotalViewCtrl.cs"> <SubType>UserControl</SubType> </Compile> <Compile Update="21-curve\HydroCurveEditCtrl.cs"> @@ -133,5 +118,8 @@ <Compile Update="06-visual\01-reservoir\SetHydroReservoirDlg.cs"> <SubType>Form</SubType> </Compile> + <Compile Update="loss-curve\07-control\HydroLossCurveCompareCtrl.cs"> + <SubType>UserControl</SubType> + </Compile> </ItemGroup> </Project> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyHelper.cs new file mode 100644 index 0000000..568a70e --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyHelper.cs @@ -0,0 +1,137 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鑳芥晥鍒嗘瀽杈呭姪绫� + /// </summary> + public class HydroEnergyAnalyHelper + { + /// <summary> + /// 鍒涘缓 + /// </summary> + public static HydroEnergyAnalyViewModel Create + ( + Yw.Model.HydroModelInfo hydroInfo, + Yw.Vmo.HydroWorkingVmo working, + HydroCalcuResult calcuResult = null, + bool isHead = false, + List<Yw.Vmo.HydroEvaluationVmo> allEvaluationList = null + ) + { + //楠岃瘉 + if (hydroInfo == null) + { + return default; + } + if (hydroInfo.Pumps == null || hydroInfo.Pumps.Count < 1) + { + return default; + } + if (working == null) + { + return default; + } + + var vm = new HydroEnergyAnalyViewModel(); + + //璁$畻缁撴灉 + if (calcuResult == null) + { + hydroInfo.UpdateWorkingInfo(working.WorkingInfo); + calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead, allEvaluationList); + if (!calcuResult.Succeed) + { + return vm; + } + } + var allCalcuVisualDict = calcuResult.GetVisualDict(); + + //閬嶅巻姘存车 + vm.Items = new List<HydroEnergyAnalyItemViewModel>(); + foreach (var pump in hydroInfo.Pumps) + { + var item = new HydroEnergyAnalyItemViewModel(); + vm.Items.Add(item); + item.BeginGroup = string.IsNullOrEmpty(pump.BeginGroup) ? string.Empty : pump.BeginGroup; + item.Name = pump.Name; + item.Code = pump.Code; + item.RatedQ = pump.RatedQ; + item.RatedH = pump.RatedH; + item.RatedP = pump.RatedP; + item.RatedN = pump.RatedN; + item.RatedHz = pump.RatedHz; + var curveqh = hydroInfo.Curves?.Find(x => x.Code == pump.CurveQH); + if (curveqh != null) + { + var qh_pts = curveqh.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList(); + if (qh_pts != null && qh_pts.Count > 3) + { + item.RatedCurveQH = qh_pts; + } + } + var curveqp = hydroInfo.Curves?.Find(x => x.Code == pump.CurveQP); + if (curveqp != null) + { + var qp_pts = curveqp.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList(); + if (qp_pts != null && qp_pts.Count > 3) + { + item.RatedCurveQP = qp_pts; + } + } + var curveqe = hydroInfo.Curves?.Find(x => x.Code == pump.CurveQE); + if (curveqe != null) + { + var qe_pts = curveqe.CurveData?.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList(); + if (qe_pts != null && qe_pts.Count > 3) + { + item.RatedCurveQE = qe_pts; + } + } + + item.LinkStatus = pump.LinkStatus; + if (item.LinkStatus == Yw.Hydro.LinkStatus.Open) + { + item.CurrentColor = HydroPumpCurveColorHelper.GetRandomColor(hydroInfo.Pumps.IndexOf(pump)); + item.CurrentN = Math.Round(item.RatedN * pump.SpeedRatio, 1); + item.CurrentHz = Math.Round(item.RatedHz * pump.SpeedRatio, 1); + var calcuPumpResult = allCalcuVisualDict?.GetValue(pump.Code) as HydroCalcuPumpResult; + if (calcuPumpResult != null) + { + item.CurrentQ = calcuPumpResult.CalcuQ; + item.CurrentH = calcuPumpResult.CalcuH; + item.CurrentPr1 = calcuPumpResult.CalcuPr1; + item.CurrentPr2 = calcuPumpResult.CalcuPr2; + item.CurrentP = calcuPumpResult.CalcuP; + item.CurrentE = calcuPumpResult.CalcuE; + } + if (item.RatedCurveQH != null) + { + var qh_pts = item.RatedCurveQH; + var qh_run_pts = qh_pts.GetQHPointListByN(item.RatedHz, item.CurrentHz); + item.CurrentCurveQH = qh_run_pts; + } + + if (item.RatedCurveQP != null) + { + var qp_pts = item.RatedCurveQP; + var qp_run_pts = qp_pts.GetQPPointListByN(item.RatedHz, item.CurrentHz); + item.CurrentCurveQP = qp_pts; + } + + if (item.RatedCurveQE != null) + { + var qe_pts = item.RatedCurveQE; + var qe_run_pts = qe_pts.GetQEPointListByN(item.RatedHz, item.CurrentHz); + item.CurrentCurveQE = qe_run_pts; + } + } + } + + vm.Total = new HydroEnergyAnalyTotalViewModel(vm.Items); + vm.Pipe = new HydroEnergyAnalyPipeViewModel(hydroInfo, allCalcuVisualDict); + + return vm; + } + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyItemViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyItemViewModel.cs new file mode 100644 index 0000000..68fb2d9 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyItemViewModel.cs @@ -0,0 +1,142 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鑳芥晥鍒嗘瀽椤硅鍥� + /// </summary> + public class HydroEnergyAnalyItemViewModel + { + /// <summary> + /// + /// </summary> + public HydroEnergyAnalyItemViewModel() { } + + /// <summary> + /// 鍒嗙粍 + /// </summary> + public string BeginGroup { get; set; } + + /// <summary> + /// 鍚嶇О + /// </summary> + public string Name { get; set; } + + /// <summary> + /// 缂栫爜 + /// </summary> + public string Code { get; set; } + + /// <summary> + /// 鍨嬪彿 + /// </summary> + public string ModelType { get; set; } + + /// <summary> + /// 棰濆畾娴侀噺 + /// </summary> + public double RatedQ { get; set; } + + /// <summary> + /// 棰濆畾鎵▼ + /// </summary> + public double RatedH { get; set; } + + /// <summary> + /// 棰濆畾鍔熺巼 + /// </summary> + public double RatedP { get; set; } + + /// <summary> + /// 棰濆畾杞�� + /// </summary> + public double RatedN { get; set; } + + /// <summary> + /// 棰濆畾棰戠巼 + /// </summary> + public double RatedHz { get; set; } + + + /// <summary> + /// 棰濆畾娴侀噺鎵▼绾� + /// </summary> + public List<Yw.Geometry.Point2d> RatedCurveQH { get; set; } + + /// <summary> + /// 棰濆畾娴侀噺鏁堢巼绾� + /// </summary> + public List<Yw.Geometry.Point2d> RatedCurveQE { get; set; } + + /// <summary> + /// 棰濆畾娴侀噺鍔熺巼绾� + /// </summary> + public List<Yw.Geometry.Point2d> RatedCurveQP { get; set; } + + /// <summary> + /// 杩愯鐘舵�� + /// </summary> + public string LinkStatus { get; set; } + + /// <summary> + /// 杩愯棰滆壊 + /// </summary> + public Color CurrentColor { get; set; } + + /// <summary> + /// 杩愯杞�� + /// </summary> + public double CurrentN { get; set; } + + /// <summary> + /// 杩愯棰戠巼 + /// </summary> + public double CurrentHz { get; set; } + + /// <summary> + /// 杩愯娴侀噺 + /// </summary> + public double? CurrentQ { get; set; } + + /// <summary> + /// 杩愯鎵▼ + /// </summary> + public double? CurrentH { get; set; } + + /// <summary> + /// 杩涘彛鍘嬪姏 + /// </summary> + public double? CurrentPr1 { get; set; } + + /// <summary> + /// 鍑哄彛鍘嬪姏 + /// </summary> + public double? CurrentPr2 { get; set; } + + /// <summary> + /// 杩愯鍔熺巼 + /// </summary> + public double? CurrentP { get; set; } + + /// <summary> + /// 杩愯鏁堢巼 + /// </summary> + public double? CurrentE { get; set; } + + /// <summary> + /// 杩愯娴侀噺鎵▼绾� + /// </summary> + public List<Yw.Geometry.Point2d> CurrentCurveQH { get; set; } + + /// <summary> + /// 杩愯娴侀噺鏁堢巼绾� + /// </summary> + public List<Yw.Geometry.Point2d> CurrentCurveQE { get; set; } + + /// <summary> + /// 杩愯娴侀噺鍔熺巼绾� + /// </summary> + public List<Yw.Geometry.Point2d> CurrentCurveQP { get; set; } + + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyViewModel.cs new file mode 100644 index 0000000..639371f --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-core/HydroEnergyAnalyViewModel.cs @@ -0,0 +1,29 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鑳借�楄鍥� + /// </summary> + public class HydroEnergyAnalyViewModel + { + + /// <summary> + /// 姹囨�� + /// </summary> + public HydroEnergyAnalyTotalViewModel Total { get; set; } + + /// <summary> + /// 绠¢亾 + /// </summary> + public HydroEnergyAnalyPipeViewModel Pipe { get; set; } + + /// <summary> + /// 瀛愮骇鍒楄〃 + /// </summary> + public List<HydroEnergyAnalyItemViewModel> Items { get; set; } + + + + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-total/HydroEnergyAnalyTotalViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-total/HydroEnergyAnalyTotalViewModel.cs new file mode 100644 index 0000000..4bf9766 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/01-total/HydroEnergyAnalyTotalViewModel.cs @@ -0,0 +1,56 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鑳借�楀垎鏋愭�昏鍥� + /// </summary> + public class HydroEnergyAnalyTotalViewModel + { + /// <summary> + /// + /// </summary> + public HydroEnergyAnalyTotalViewModel() { } + + /// <summary> + /// + /// </summary> + public HydroEnergyAnalyTotalViewModel(List<HydroEnergyAnalyItemViewModel> allItemList) + { + if (allItemList == null || allItemList.Count < 1) + { + return; + } + var qs = allItemList.Where(x => x.CurrentQ.HasValue).ToList(); + if (qs != null && qs.Count > 0) + { + this.TotalQ = qs.Sum(x => x.CurrentQ.Value); + } + var ps = allItemList.Where(x => x.CurrentP.HasValue).ToList(); + if (ps != null && ps.Count > 0) + { + this.TotalP = ps.Sum(x => x.CurrentP.Value); + } + var es = allItemList.Where(x => x.CurrentE.HasValue).ToList(); + if (es != null && es.Count > 0) + { + this.TotalE = es.Average(x => x.CurrentE.Value); + } + } + + /// <summary> + /// 鎬绘祦閲� + /// </summary> + public double? TotalQ { get; set; } + + /// <summary> + /// 鎬诲姛鐜� + /// </summary> + public double? TotalP { get; set; } + + /// <summary> + /// 鎬绘晥鐜� + /// </summary> + public double? TotalE { get; set; } + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/02-pipe/HydroEnergyAnalyPipeItemViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/02-pipe/HydroEnergyAnalyPipeItemViewModel.cs new file mode 100644 index 0000000..1ed5e66 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/02-pipe/HydroEnergyAnalyPipeItemViewModel.cs @@ -0,0 +1,49 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鑳芥晥鍒嗘瀽绠¢亾椤硅鍥� + /// </summary> + public class HydroEnergyAnalyPipeItemViewModel + { + /// <summary> + /// + /// </summary> + public HydroEnergyAnalyPipeItemViewModel() { } + + /// <summary> + /// + /// </summary> + public HydroEnergyAnalyPipeItemViewModel + ( + Yw.Model.HydroModelInfo hydroInfo, + Dictionary<string, HydroCalcuVisualResult> allCalcuVisualDict, + string beginGroup + ) + { + this.BeginGroup = string.IsNullOrEmpty(beginGroup) ? string.Empty : beginGroup; + this.StartH = hydroInfo.GetHead(); + this.PipeQ = hydroInfo.GetPipeQ(allCalcuVisualDict); + this.PipeH = hydroInfo.GetPipeHead(allCalcuVisualDict); + } + + /// <summary> + /// 鍒嗙粍 + /// </summary> + public string BeginGroup { get; set; } + + /// <summary> + /// 寮�濮嬫壃绋� + /// </summary> + public double StartH { get; set; } + + /// <summary> + /// 绠¢亾娴侀噺 + /// </summary> + public double? PipeQ { get; set; } + + /// <summary> + /// 绠¢亾鎵▼ + /// </summary> + public double? PipeH { get; set; } + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/02-pipe/HydroEnergyAnalyPipeViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/02-pipe/HydroEnergyAnalyPipeViewModel.cs new file mode 100644 index 0000000..a41294f --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/02-pipe/HydroEnergyAnalyPipeViewModel.cs @@ -0,0 +1,51 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鑳芥晥鍒嗘瀽绠¢亾瑙嗗浘 + /// </summary> + public class HydroEnergyAnalyPipeViewModel + { + /// <summary> + /// + /// </summary> + public HydroEnergyAnalyPipeViewModel() { } + + /// <summary> + /// + /// </summary> + public HydroEnergyAnalyPipeViewModel + ( + Yw.Model.HydroModelInfo hydroInfo, + Dictionary<string, HydroCalcuVisualResult> allCalcuVisualDict + ) + { + if (hydroInfo == null) + { + return; + } + if (hydroInfo.Pumps == null || hydroInfo.Pumps.Count < 1) + { + return; + } + var beginGroups = hydroInfo.Pumps.Select(x => string.IsNullOrEmpty(x.BeginGroup) ? string.Empty : x.BeginGroup).Distinct().ToList(); + this.Items = new List<HydroEnergyAnalyPipeItemViewModel>(); + foreach (var beginGroup in beginGroups) + { + var item = new HydroEnergyAnalyPipeItemViewModel + ( + hydroInfo, + allCalcuVisualDict, + beginGroup + ); + this.Items.Add(item); + } + } + + /// <summary> + /// 瀛愮骇鍒楄〃 + /// </summary> + public List<HydroEnergyAnalyPipeItemViewModel> Items { get; set; } + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.Designer.cs similarity index 78% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.Designer.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.Designer.cs index 5fdc204..1f4c220 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.Designer.cs @@ -1,6 +1,6 @@ 锘縩amespace Yw.WinFrmUI { - partial class HydroEnergyTotalViewCtrl + partial class HydroEnergyAnalyTotalCtrl { /// <summary> /// Required designer variable. @@ -34,9 +34,9 @@ txtQ = new DevExpress.XtraEditors.TextEdit(); Root = new DevExpress.XtraLayout.LayoutControlGroup(); layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); - emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem(); layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem(); + emptySpaceItem1 = new DevExpress.XtraLayout.EmptySpaceItem(); ((ISupportInitialize)layoutControl1).BeginInit(); layoutControl1.SuspendLayout(); ((ISupportInitialize)txtE.Properties).BeginInit(); @@ -44,9 +44,9 @@ ((ISupportInitialize)txtQ.Properties).BeginInit(); ((ISupportInitialize)Root).BeginInit(); ((ISupportInitialize)layoutControlItem1).BeginInit(); - ((ISupportInitialize)emptySpaceItem1).BeginInit(); ((ISupportInitialize)layoutControlItem2).BeginInit(); ((ISupportInitialize)layoutControlItem3).BeginInit(); + ((ISupportInitialize)emptySpaceItem1).BeginInit(); SuspendLayout(); // // layoutControl1 @@ -57,38 +57,39 @@ layoutControl1.Dock = DockStyle.Fill; layoutControl1.Location = new Point(0, 0); layoutControl1.Name = "layoutControl1"; + layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(1177, 0, 650, 400); layoutControl1.Root = Root; - layoutControl1.Size = new Size(238, 78); + layoutControl1.Size = new Size(707, 33); layoutControl1.TabIndex = 0; layoutControl1.Text = "layoutControl1"; // // txtE // - txtE.Location = new Point(54, 50); + txtE.Location = new Point(414, 6); txtE.Name = "txtE"; txtE.Properties.ReadOnly = true; txtE.Properties.UseReadOnlyAppearance = false; - txtE.Size = new Size(182, 20); + txtE.Size = new Size(124, 20); txtE.StyleController = layoutControl1; txtE.TabIndex = 6; // // txtP // - txtP.Location = new Point(54, 26); + txtP.Location = new Point(234, 6); txtP.Name = "txtP"; txtP.Properties.ReadOnly = true; txtP.Properties.UseReadOnlyAppearance = false; - txtP.Size = new Size(182, 20); + txtP.Size = new Size(124, 20); txtP.StyleController = layoutControl1; txtP.TabIndex = 5; // // txtQ // - txtQ.Location = new Point(54, 2); + txtQ.Location = new Point(54, 6); txtQ.Name = "txtQ"; txtQ.Properties.ReadOnly = true; txtQ.Properties.UseReadOnlyAppearance = false; - txtQ.Size = new Size(182, 20); + txtQ.Size = new Size(124, 20); txtQ.StyleController = layoutControl1; txtQ.TabIndex = 4; // @@ -96,10 +97,10 @@ // Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; Root.GroupBordersVisible = false; - Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, emptySpaceItem1, layoutControlItem2, layoutControlItem3 }); + Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1, layoutControlItem2, layoutControlItem3, emptySpaceItem1 }); Root.Name = "Root"; Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - Root.Size = new Size(238, 78); + Root.Size = new Size(707, 33); Root.TextVisible = false; // // layoutControlItem1 @@ -107,28 +108,24 @@ layoutControlItem1.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; layoutControlItem1.Control = txtQ; layoutControlItem1.Location = new Point(0, 0); + layoutControlItem1.MaxSize = new Size(180, 24); + layoutControlItem1.MinSize = new Size(180, 24); layoutControlItem1.Name = "layoutControlItem1"; - layoutControlItem1.Size = new Size(238, 24); + layoutControlItem1.Size = new Size(180, 33); + layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; layoutControlItem1.Text = "鎬绘祦閲�:"; layoutControlItem1.TextSize = new Size(40, 14); - // - // emptySpaceItem1 - // - emptySpaceItem1.AllowHotTrack = false; - emptySpaceItem1.Location = new Point(0, 72); - emptySpaceItem1.MinSize = new Size(1, 1); - emptySpaceItem1.Name = "emptySpaceItem1"; - emptySpaceItem1.Size = new Size(238, 6); - emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; - emptySpaceItem1.TextSize = new Size(0, 0); // // layoutControlItem2 // layoutControlItem2.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; layoutControlItem2.Control = txtP; - layoutControlItem2.Location = new Point(0, 24); + layoutControlItem2.Location = new Point(180, 0); + layoutControlItem2.MaxSize = new Size(180, 24); + layoutControlItem2.MinSize = new Size(180, 24); layoutControlItem2.Name = "layoutControlItem2"; - layoutControlItem2.Size = new Size(238, 24); + layoutControlItem2.Size = new Size(180, 33); + layoutControlItem2.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; layoutControlItem2.Text = "鎬诲姛鐜�:"; layoutControlItem2.TextSize = new Size(40, 14); // @@ -136,19 +133,32 @@ // layoutControlItem3.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center; layoutControlItem3.Control = txtE; - layoutControlItem3.Location = new Point(0, 48); + layoutControlItem3.Location = new Point(360, 0); + layoutControlItem3.MaxSize = new Size(180, 24); + layoutControlItem3.MinSize = new Size(180, 24); layoutControlItem3.Name = "layoutControlItem3"; - layoutControlItem3.Size = new Size(238, 24); + layoutControlItem3.Size = new Size(180, 33); + layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; layoutControlItem3.Text = "鎬绘晥鐜�:"; layoutControlItem3.TextSize = new Size(40, 14); // - // HydroEnergyTotalViewCtrl + // emptySpaceItem1 + // + emptySpaceItem1.AllowHotTrack = false; + emptySpaceItem1.Location = new Point(540, 0); + emptySpaceItem1.MinSize = new Size(1, 1); + emptySpaceItem1.Name = "emptySpaceItem1"; + emptySpaceItem1.Size = new Size(167, 33); + emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; + emptySpaceItem1.TextSize = new Size(0, 0); + // + // HydroEnergyAnalyTotalCtrl // AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; Controls.Add(layoutControl1); - Name = "HydroEnergyTotalViewCtrl"; - Size = new Size(238, 78); + Name = "HydroEnergyAnalyTotalCtrl"; + Size = new Size(707, 33); ((ISupportInitialize)layoutControl1).EndInit(); layoutControl1.ResumeLayout(false); ((ISupportInitialize)txtE.Properties).EndInit(); @@ -156,9 +166,9 @@ ((ISupportInitialize)txtQ.Properties).EndInit(); ((ISupportInitialize)Root).EndInit(); ((ISupportInitialize)layoutControlItem1).EndInit(); - ((ISupportInitialize)emptySpaceItem1).EndInit(); ((ISupportInitialize)layoutControlItem2).EndInit(); ((ISupportInitialize)layoutControlItem3).EndInit(); + ((ISupportInitialize)emptySpaceItem1).EndInit(); ResumeLayout(false); } @@ -169,9 +179,9 @@ private DevExpress.XtraEditors.TextEdit txtQ; private DevExpress.XtraLayout.LayoutControlGroup Root; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; - private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; private DevExpress.XtraEditors.TextEdit txtE; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3; + private DevExpress.XtraLayout.EmptySpaceItem emptySpaceItem1; } } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.cs new file mode 100644 index 0000000..f2f9c79 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.cs @@ -0,0 +1,44 @@ +锘縩amespace Yw.WinFrmUI +{ + public partial class HydroEnergyAnalyTotalCtrl : DevExpress.XtraEditors.XtraUserControl + { + public HydroEnergyAnalyTotalCtrl() + { + InitializeComponent(); + this.layoutControl1.SetupLayoutControl(); + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(List<HydroEnergyAnalyItemViewModel> items) + { + var vm = new HydroEnergyAnalyTotalViewModel(items); + SetBindingData(vm); + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(HydroEnergyAnalyTotalViewModel vm) + { + if (vm == null) + { + return; + } + if (vm.TotalQ.HasValue) + { + this.txtQ.EditValue = $"{Math.Round(vm.TotalQ.Value, 1)}m鲁/h"; + } + if (vm.TotalP.HasValue) + { + this.txtP.EditValue = $"{Math.Round(vm.TotalP.Value, 1)}kW"; + } + if (vm.TotalE.HasValue) + { + this.txtE.EditValue = $"{Math.Round(vm.TotalE.Value, 1)}%"; + } + } + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.resx similarity index 100% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/02-total/HydroEnergyTotalViewCtrl.resx rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/energy-analy/03-control/HydroEnergyAnalyTotalCtrl.resx diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/helper/SimulationPrintLossCurveHelper.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveHelper.cs similarity index 60% rename from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/helper/SimulationPrintLossCurveHelper.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveHelper.cs index 0745633..f8f42d5 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/helper/SimulationPrintLossCurveHelper.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveHelper.cs @@ -1,54 +1,48 @@ -锘縰sing Mapster; -using Yw.EPAnet; +锘縰sing Yw.EPAnet; using Yw.Hydro; using Yw.Model; -using Yw.Vmo; -namespace HStation.WinFrmUI +namespace Yw.WinFrmUI { /// <summary> /// /// </summary> - public class SimulationPrintLossCurveHelper + public class HydroLossCurveHelper { /// <summary> - /// + /// 鍒涘缓 /// </summary> - /// <returns></returns> - public static SimulationPrintLossCurveViewModel Create + public static HydroLossCurveViewModel Create ( Yw.Model.HydroModelInfo hydroInfo, HydroWorkingVmo working, - HydroVisualInfo visual, + HydroNodeInfo node, HydroCalcuResult calcuResult = null, bool isHead = false, List<HydroEvaluationVmo> allEvaluationList = null ) { - var vm = new SimulationPrintLossCurveViewModel(); - //楠岃瘉 if (hydroInfo == null) { - return vm; + return default; } if (working == null) { - return vm; + return default; } - if (visual == null) + if (node == null) { - return vm; + return default; } - //璧嬪�兼ā鍨嬩俊鎭紝閬垮厤骞叉壈 - //var newHydroInfo = hydroInfo.Adapt<Yw.Model.HydroModelInfo>(); - //newHydroInfo.UpdateWorkingInfo(working.WorkingInfo); + var vm = new HydroLossCurveViewModel(); //璁$畻缁撴灉 if (calcuResult == null) { + hydroInfo.UpdateWorkingInfo(working.WorkingInfo); calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead, allEvaluationList); if (!calcuResult.Succeed) { @@ -57,25 +51,24 @@ } var allCalcuVisualDict = calcuResult.GetVisualDict(); - - + //绠$嚎 var network = hydroInfo.ToNetwork(); if (network == null) { return vm; } - var node = network.GetAllNodes()?.Find(x => x.Id == visual.Code); - if (node == null) + var epaNode = network.GetAllNodes()?.Find(x => x.Id == node.Code); + if (epaNode == null) { return vm; } - var allStartPathList = network.AnalyzeUpstreamPath(node, calcuResult.EPAnetCalcuResult); + var allStartPathList = network.AnalyzeUpstreamPath(epaNode, calcuResult.EPAnetCalcuResult); if (allStartPathList == null) { allStartPathList = new List<Link>(); } - var allEndPathList = network.AnalyzeDownstreamPath(node, calcuResult.EPAnetCalcuResult); + var allEndPathList = network.AnalyzeDownstreamPath(epaNode, calcuResult.EPAnetCalcuResult); if (allEndPathList == null) { allEndPathList = new List<Link>(); @@ -88,23 +81,25 @@ return vm; } var allVisualDict = hydroInfo.GetVisualDict(); - vm.Items = new List<SimulationPrintLossCurveItemViewModel>(); + vm.Items = new List<HydroLossCurveItemViewModel>(); foreach (var epaLoss in allEpaLossList) { var visualNode = allVisualDict.GetValue(epaLoss.Id); if (visualNode != null) { - var item = new SimulationPrintLossCurveItemViewModel(epaLoss, visualNode); + var item = new HydroLossCurveItemViewModel(epaLoss, visualNode); vm.Items.Add(item); } } - vm.Elev = new SimulationPrintLossCurveElevViewModel(vm.Items); - vm.Start = new SimulationPrintLossCurveStartViewModel(vm.Items); - vm.End = new SimulationPrintLossCurveEndViewModel(vm.Items); - vm.Total = new SimulationPrintLossCurveTotalViewModel(vm.Items); + vm.Elev = new HydroLossCurveElevViewModel(vm.Items); + vm.Start = new HydroLossCurveStartViewModel(vm.Items); + vm.End = new HydroLossCurveEndViewModel(vm.Items); + vm.Total = new HydroLossCurveTotalViewModel(vm.Items); + vm.Lower = new HydroLossCurveLowerViewModel(vm.Items); return vm; + } diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/item/SimulationPrintLossCurveItemViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveItemViewModel.cs similarity index 84% rename from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/item/SimulationPrintLossCurveItemViewModel.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveItemViewModel.cs index 832c604..257c333 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/item/SimulationPrintLossCurveItemViewModel.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveItemViewModel.cs @@ -4,26 +4,26 @@ using System.Text; using System.Threading.Tasks; -namespace HStation.WinFrmUI +namespace Yw.WinFrmUI { /// <summary> - /// + /// 鎹熷け鏇茬嚎椤硅鍥� /// </summary> - public class SimulationPrintLossCurveItemViewModel + public class HydroLossCurveItemViewModel { /// <summary> /// /// </summary> - public SimulationPrintLossCurveItemViewModel() { } + public HydroLossCurveItemViewModel() { } /// <summary> /// /// </summary> - public SimulationPrintLossCurveItemViewModel(Yw.EPAnet.LossNode rhs, Yw.Model.HydroVisualInfo visual) + public HydroLossCurveItemViewModel(Yw.EPAnet.LossNode rhs, Yw.Model.HydroVisualInfo visual) { - this.Code = rhs.Id; this.Name = visual.Name; + this.Code = rhs.Id; this.Elev = Math.Round(rhs.Elev, 2); this.StartHead = Math.Round(rhs.Head, 2); this.EndHead = Math.Round(rhs.Head - rhs.MinorLoss, 2); @@ -32,16 +32,16 @@ } /// <summary> - /// 缂栫爜 - /// </summary> - public string Code { get; set; } - - /// <summary> /// 鍚嶇О /// </summary> public string Name { get; set; } /// <summary> + /// 缂栫爜 + /// </summary> + public string Code { get; set; } + + /// <summary> /// 楂樼▼ /// </summary> public double Elev { get; set; } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/00-core/HydroLossCurvePointVieModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurvePointVieModel.cs similarity index 82% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/00-core/HydroLossCurvePointVieModel.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurvePointVieModel.cs index 52fc7a9..804db75 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/00-core/HydroLossCurvePointVieModel.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurvePointVieModel.cs @@ -14,31 +14,31 @@ /// <summary> /// /// </summary> - public HydroLossCurvePointVieModel(string code, string name, double x, double y) + public HydroLossCurvePointVieModel(string name, string code, double x, double y) { - this.Code = code; this.Name = name; + this.Code = code; this.X = Math.Round(x, 2); this.Y = Math.Round(y, 2); } /// <summary> - /// - /// </summary> - public string Code { get; set; } - - /// <summary> - /// + /// 鍚嶇О /// </summary> public string Name { get; set; } /// <summary> - /// + /// 缂栫爜 + /// </summary> + public string Code { get; set; } + + /// <summary> + /// X鍧愭爣 /// </summary> public double X { get; set; } /// <summary> - /// Y + /// Y鍧愭爣 /// </summary> public double Y { get; set; } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveViewModel.cs new file mode 100644 index 0000000..da52e98 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/01-core/HydroLossCurveViewModel.cs @@ -0,0 +1,41 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鎹熷け鏇茬嚎瑙嗗浘 + /// </summary> + public class HydroLossCurveViewModel + { + /// <summary> + /// 鏍囬珮 + /// </summary> + public HydroLossCurveElevViewModel Elev { get; set; } + + /// <summary> + /// 寮�濮� + /// </summary> + public HydroLossCurveStartViewModel Start { get; set; } + + /// <summary> + /// 缁撴潫 + /// </summary> + public HydroLossCurveEndViewModel End { get; set; } + + /// <summary> + /// 鎬荤粨 + /// </summary> + public HydroLossCurveTotalViewModel Total { get; set; } + + /// <summary> + /// 闄嶄綆 + /// </summary> + public HydroLossCurveLowerViewModel Lower { get; set; } + + /// <summary> + /// 瀛愮骇闆嗗悎 + /// </summary> + public List<HydroLossCurveItemViewModel> Items { get; set; } + + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/02-elev/HydroLossCurveElevViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/02-elev/HydroLossCurveElevViewModel.cs new file mode 100644 index 0000000..267ba1e --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/02-elev/HydroLossCurveElevViewModel.cs @@ -0,0 +1,31 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鎹熷け鏇茬嚎鏍囬珮瑙嗗浘 + /// </summary> + public class HydroLossCurveElevViewModel + { + /// <summary> + /// + /// </summary> + public HydroLossCurveElevViewModel() { } + + /// <summary> + /// + /// </summary> + public HydroLossCurveElevViewModel(List<HydroLossCurveItemViewModel> allItemList) + { + if (allItemList == null || allItemList.Count < 1) + { + return; + } + this.Items = allItemList?.Select(x => new HydroLossCurvePointVieModel(x.Name, x.Code, x.Distance, x.Elev)).ToList(); + } + + /// <summary> + /// 瀛愮骇闆嗗悎 + /// </summary> + public List<HydroLossCurvePointVieModel> Items { get; set; } + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/03-start/HydroLossCurveStartViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/03-start/HydroLossCurveStartViewModel.cs new file mode 100644 index 0000000..e387cde --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/03-start/HydroLossCurveStartViewModel.cs @@ -0,0 +1,31 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鎹熷け鏇茬嚎寮�濮嬭鍥� + /// </summary> + public class HydroLossCurveStartViewModel + { + /// <summary> + /// + /// </summary> + public HydroLossCurveStartViewModel() { } + + /// <summary> + /// + /// </summary> + public HydroLossCurveStartViewModel(List<HydroLossCurveItemViewModel> allItemList) + { + if (allItemList == null || allItemList.Count < 1) + { + return; + } + this.Items = allItemList?.Select(x => new HydroLossCurvePointVieModel(x.Name, x.Code, x.Distance, x.StartHead)).ToList(); + } + + /// <summary> + /// 瀛愮骇闆嗗悎 + /// </summary> + public List<HydroLossCurvePointVieModel> Items { get; set; } + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/04-end/HydroLossCurveEndViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/04-end/HydroLossCurveEndViewModel.cs new file mode 100644 index 0000000..a711ff6 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/04-end/HydroLossCurveEndViewModel.cs @@ -0,0 +1,31 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鎹熷け鏇茬嚎缁撴潫瑙嗗浘 + /// </summary> + public class HydroLossCurveEndViewModel + { + /// <summary> + /// + /// </summary> + public HydroLossCurveEndViewModel() { } + + /// <summary> + /// + /// </summary> + public HydroLossCurveEndViewModel(List<HydroLossCurveItemViewModel> allItemList) + { + if (allItemList == null || allItemList.Count < 1) + { + return; + } + this.Items = allItemList?.Select(x => new HydroLossCurvePointVieModel(x.Name, x.Code, x.Distance, x.EndHead)).ToList(); + } + + /// <summary> + /// 瀛愮骇闆嗗悎 + /// </summary> + public List<HydroLossCurvePointVieModel> Items { get; set; } + + } +} diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/total/SimulationPrintLossCurveTotalViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/05-total/HydroLossCurveTotalViewModel.cs similarity index 61% rename from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/total/SimulationPrintLossCurveTotalViewModel.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/05-total/HydroLossCurveTotalViewModel.cs index f07d451..32de334 100644 --- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/13-print/loss-curve/total/SimulationPrintLossCurveTotalViewModel.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/05-total/HydroLossCurveTotalViewModel.cs @@ -1,26 +1,20 @@ -锘縰sing System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace HStation.WinFrmUI +锘縩amespace Yw.WinFrmUI { /// <summary> /// /// </summary> - public class SimulationPrintLossCurveTotalViewModel + public class HydroLossCurveTotalViewModel { /// <summary> /// /// </summary> - public SimulationPrintLossCurveTotalViewModel() { } + public HydroLossCurveTotalViewModel() { } /// <summary> /// /// </summary> - public SimulationPrintLossCurveTotalViewModel(List<SimulationPrintLossCurveItemViewModel> allItemList) + public HydroLossCurveTotalViewModel(List<HydroLossCurveItemViewModel> allItemList) { if (allItemList == null || allItemList.Count < 1) { @@ -36,17 +30,17 @@ /// <summary> /// 姘村ご鎹熷け /// </summary> - public double? HeadLoss { get; set; } + public double HeadLoss { get; set; } /// <summary> /// 灞�閮ㄦ崯澶� /// </summary> - public double? MinorLoss { get; set; } + public double MinorLoss { get; set; } /// <summary> /// 娌跨▼鎹熷け /// </summary> - public double? FrictionLoss { get; set; } + public double FrictionLoss { get; set; } } } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/06-lower/HydroLossCurveLowerViewModel.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/06-lower/HydroLossCurveLowerViewModel.cs new file mode 100644 index 0000000..6c63eff --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/06-lower/HydroLossCurveLowerViewModel.cs @@ -0,0 +1,36 @@ +锘縩amespace Yw.WinFrmUI +{ + /// <summary> + /// 鎹熷け鏇茬嚎涓嬮檷瑙嗗浘 + /// </summary> + public class HydroLossCurveLowerViewModel + { + /// <summary> + /// + /// </summary> + public HydroLossCurveLowerViewModel() { } + + /// <summary> + /// + /// </summary> + public HydroLossCurveLowerViewModel(List<HydroLossCurveItemViewModel> allItemList) + { + if (allItemList == null || allItemList.Count < 1) + { + return; + } + this.Items = new List<HydroLossCurvePointVieModel>(); + foreach (var item in allItemList) + { + this.Items.Add(new HydroLossCurvePointVieModel(item.Name, item.Code, item.Distance, item.StartHead)); + this.Items.Add(new HydroLossCurvePointVieModel(item.Name, item.Code, item.Distance, item.EndHead)); + } + } + + /// <summary> + /// 瀛愮骇闆嗗悎 + /// </summary> + public List<HydroLossCurvePointVieModel> Items { get; set; } + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.Designer.cs new file mode 100644 index 0000000..359327e --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.Designer.cs @@ -0,0 +1,133 @@ +锘縩amespace Yw.WinFrmUI +{ + partial class HydroLossCurveCompareCtrl + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Component Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + components = new Container(); + DevExpress.XtraCharts.XYDiagram xyDiagram1 = new DevExpress.XtraCharts.XYDiagram(); + DevExpress.XtraCharts.Series series1 = new DevExpress.XtraCharts.Series(); + DevExpress.XtraCharts.AreaSeriesView areaSeriesView1 = new DevExpress.XtraCharts.AreaSeriesView(); + elevBindingSource = new BindingSource(components); + chartControl1 = new DevExpress.XtraCharts.ChartControl(); + ((ISupportInitialize)elevBindingSource).BeginInit(); + ((ISupportInitialize)chartControl1).BeginInit(); + ((ISupportInitialize)xyDiagram1).BeginInit(); + ((ISupportInitialize)series1).BeginInit(); + ((ISupportInitialize)areaSeriesView1).BeginInit(); + SuspendLayout(); + // + // elevBindingSource + // + elevBindingSource.DataSource = typeof(HydroLossCurvePointVieModel); + // + // chartControl1 + // + chartControl1.CrosshairOptions.ContentShowMode = DevExpress.XtraCharts.CrosshairContentShowMode.Label; + chartControl1.CrosshairOptions.ShowArgumentLabels = true; + chartControl1.CrosshairOptions.ShowValueLabels = true; + chartControl1.CrosshairOptions.ShowValueLine = true; + xyDiagram1.AxisX.CrosshairAxisLabelOptions.Visibility = DevExpress.Utils.DefaultBoolean.True; + xyDiagram1.AxisX.GridLines.Visible = true; + xyDiagram1.AxisX.MinorCount = 1; + xyDiagram1.AxisX.NumericScaleOptions.AutoGrid = false; + xyDiagram1.AxisX.Tickmarks.MinorVisible = false; + xyDiagram1.AxisX.Title.Text = "璺濈"; + xyDiagram1.AxisX.Visibility = DevExpress.Utils.DefaultBoolean.True; + xyDiagram1.AxisX.VisibleInPanesSerializable = "-1"; + xyDiagram1.AxisX.WholeRange.EndSideMargin = 0D; + xyDiagram1.AxisX.WholeRange.StartSideMargin = 0D; + xyDiagram1.AxisY.GridLines.Visible = false; + xyDiagram1.AxisY.MinorCount = 1; + xyDiagram1.AxisY.NumericScaleOptions.AutoGrid = false; + xyDiagram1.AxisY.Tickmarks.MinorVisible = false; + xyDiagram1.AxisY.VisibleInPanesSerializable = "-1"; + xyDiagram1.EnableAxisXScrolling = true; + xyDiagram1.EnableAxisXZooming = true; + chartControl1.Diagram = xyDiagram1; + chartControl1.Dock = DockStyle.Fill; + chartControl1.Legend.AlignmentHorizontal = DevExpress.XtraCharts.LegendAlignmentHorizontal.Center; + chartControl1.Legend.Direction = DevExpress.XtraCharts.LegendDirection.LeftToRight; + chartControl1.Legend.LegendID = -1; + chartControl1.Legend.MarkerMode = DevExpress.XtraCharts.LegendMarkerMode.CheckBox; + chartControl1.Location = new Point(0, 0); + chartControl1.Name = "chartControl1"; + chartControl1.Padding.Bottom = 10; + chartControl1.Padding.Left = 20; + chartControl1.Padding.Right = 10; + chartControl1.Padding.Top = 10; + series1.ArgumentDataMember = "X"; + series1.CrosshairEnabled = DevExpress.Utils.DefaultBoolean.True; + series1.CrosshairHighlightPoints = DevExpress.Utils.DefaultBoolean.True; + series1.CrosshairLabelPattern = "楂樼▼:{V:N1}m"; + series1.CrosshairLabelVisibility = DevExpress.Utils.DefaultBoolean.True; + series1.CrosshairTextOptions.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True; + series1.DataSource = elevBindingSource; + series1.LegendTextPattern = "楂樼▼"; + series1.Name = "SeriesElev"; + series1.SeriesID = 1; + series1.ToolTipHintDataMember = "Name"; + series1.ToolTipSeriesPattern = ""; + series1.ValueDataMembersSerializable = "Y"; + areaSeriesView1.Color = Color.FromArgb(79, 129, 189); + areaSeriesView1.EmptyPointOptions.FillStyle.FillMode = DevExpress.XtraCharts.FillMode.Solid; + areaSeriesView1.Transparency = 0; + series1.View = areaSeriesView1; + chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[] + { + series1 + }; + chartControl1.SeriesTemplate.ArgumentDataMember = "X"; + chartControl1.SeriesTemplate.ToolTipHintDataMember = "Name"; + chartControl1.SeriesTemplate.ValueDataMembersSerializable = "Y"; + chartControl1.Size = new Size(861, 581); + chartControl1.TabIndex = 1; + chartControl1.ToolTipEnabled = DevExpress.Utils.DefaultBoolean.True; + chartControl1.ToolTipOptions.ShowForSeries = true; + chartControl1.CustomPaint += chartControl1_CustomPaint; + // + // HydroLossCurveCompareCtrl + // + AutoScaleDimensions = new SizeF(7F, 14F); + AutoScaleMode = AutoScaleMode.Font; + Controls.Add(chartControl1); + Name = "HydroLossCurveCompareCtrl"; + Size = new Size(861, 581); + ((ISupportInitialize)elevBindingSource).EndInit(); + ((ISupportInitialize)xyDiagram1).EndInit(); + ((ISupportInitialize)areaSeriesView1).EndInit(); + ((ISupportInitialize)series1).EndInit(); + ((ISupportInitialize)chartControl1).EndInit(); + ResumeLayout(false); + } + + #endregion + + private DevExpress.XtraCharts.ChartControl chartControl1; + private BindingSource elevBindingSource; + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.cs new file mode 100644 index 0000000..4f9c4a0 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.cs @@ -0,0 +1,304 @@ +锘縰sing DevExpress.Charts.Native; +using DevExpress.Pdf.Native; +using DevExpress.Utils.Drawing; +using DevExpress.XtraCharts; +using DevExpress.XtraCharts.Native; +using DevExpress.XtraEditors; +using Dm.Config; +using Mapster; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace Yw.WinFrmUI +{ + public partial class HydroLossCurveCompareCtrl : DevExpress.XtraEditors.XtraUserControl + { + public HydroLossCurveCompareCtrl() + { + InitializeComponent(); + } + + /// <summary> + /// 姘村姏鐐瑰嚮浜嬩欢 + /// </summary> + public event Action<string> HydroClickEvent; + + private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 + private Dictionary<HydroWorkingVmo, HydroCalcuResult> _calcuWorkingDict = null;//宸ュ喌璁$畻瀛楀吀 + private Yw.Model.HydroNodeInfo _node = null;//鑺傜偣 + + /// <summary> + /// 缁戝畾鏁版嵁 + /// 璁$畻涓嶄細鏀瑰彉鍘熸湁姘村姏淇℃伅 + /// </summary> + public void SetBindingData + ( + Yw.Model.HydroModelInfo hydroInfo, + List<HydroWorkingVmo> allWorkingList, + Yw.Model.HydroNodeInfo node, + bool isHead = false, + List<HydroEvaluationVmo> allEvaluationList = null + ) + { + if (hydroInfo == null) + { + return; + } + if (allWorkingList == null || allWorkingList.Count < 1) + { + return; + } + if (node == null) + { + return; + } + var rhs = hydroInfo.Adapt<Yw.Model.HydroModelInfo>(); + + var calcuWorkingDict = new Dictionary<HydroWorkingVmo, HydroCalcuResult>(); + foreach (var working in allWorkingList) + { + rhs.UpdateWorkingInfo(working.WorkingInfo); + var calcuResult = rhs.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead, allEvaluationList); + calcuWorkingDict.Add(working, calcuResult); + } + SetBindingData(rhs, calcuWorkingDict, node); + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData + ( + Yw.Model.HydroModelInfo hydroInfo, + Dictionary<HydroWorkingVmo, HydroCalcuResult> calcuWorkingDict, + Yw.Model.HydroNodeInfo node + ) + { + if (hydroInfo == null) + { + return; + } + if (calcuWorkingDict == null || calcuWorkingDict.Count < 1) + { + return; + } + if (node == null) + { + return; + } + _hydroInfo = hydroInfo; + _calcuWorkingDict = calcuWorkingDict; + _node = node; + List<HydroLossCurvePointVieModel> elevList = null; + foreach (var calcuWorking in calcuWorkingDict) + { + var vm = HydroLossCurveHelper.Create(hydroInfo, calcuWorking.Key, node, calcuWorking.Value); + if (vm == null) + { + continue; + } + if (elevList == null) + { + elevList = vm.Elev?.Items; + if (elevList != null && elevList.Count > 0) + { + this.elevBindingSource.DataSource = elevList; + this.elevBindingSource.ResetBindings(false); + } + } + var series = new DevExpress.XtraCharts.Series(); + var lineSeriesView = new DevExpress.XtraCharts.LineSeriesView(); + series.View = lineSeriesView; + series.LegendTextPattern = calcuWorking.Key.Name; + series.Name = calcuWorking.Key.Name; + series.CrosshairEnabled = DevExpress.Utils.DefaultBoolean.True; + series.CrosshairHighlightPoints = DevExpress.Utils.DefaultBoolean.True; + series.CrosshairLabelPattern = calcuWorking.Key.Name + "鎬绘按澶�:{V:N1}m"; + series.CrosshairLabelVisibility = DevExpress.Utils.DefaultBoolean.True; + series.CrosshairTextOptions.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True; + series.ToolTipSeriesPattern = ""; + this.chartControl1.Series.Add(series); + if (vm.Lower != null && vm.Lower.Items != null && vm.Lower.Items.Count > 0) + { + foreach (var item in vm.Lower.Items) + { + var seriesPoint = new SeriesPoint(item.X, item.Y); + seriesPoint.Tag = item; + series.Points.Add(seriesPoint); + } + } + AutoFitAxisesY(vm.Items); + } + AutoFitAxisesX(elevList); + + } + + //鑷�傚簲鍒诲害X + private void AutoFitAxisesX(List<HydroLossCurvePointVieModel> items) + { + if (items == null || items.Count < 1) + { + return; + } + var diagram = this.chartControl1.Diagram as XYDiagram; + + #region X杞� + + var allDistances = items.Select(x => x.X).Distinct().ToList(); + var distanceMax = allDistances.Max(); + diagram.AxisX.Tickmarks.MinorVisible = false; + diagram.AxisX.WholeRange.SideMarginsValue = 0; + if (distanceMax <= 10) + { + var maxValue = Math.Ceiling(distanceMax); + diagram.AxisX.WholeRange.MinValue = 0; + diagram.AxisX.WholeRange.MaxValue = maxValue; + diagram.AxisX.NumericScaleOptions.GridSpacing = 1; + } + else if (distanceMax <= 50) + { + var maxValue = Math.Ceiling(distanceMax / 10); + diagram.AxisX.WholeRange.MinValue = 0; + diagram.AxisX.WholeRange.MaxValue = maxValue * 10; + diagram.AxisX.NumericScaleOptions.GridSpacing = 5; + } + else if (distanceMax <= 100) + { + var maxValue = Math.Ceiling(distanceMax / 10); + diagram.AxisX.WholeRange.MinValue = 0; + diagram.AxisX.WholeRange.MaxValue = maxValue * 10; + diagram.AxisX.NumericScaleOptions.GridSpacing = 10; + } + else if (distanceMax <= 500) + { + var maxValue = Math.Ceiling(distanceMax / 100); + diagram.AxisX.WholeRange.MinValue = 0; + diagram.AxisX.WholeRange.MaxValue = maxValue * 100; + diagram.AxisX.NumericScaleOptions.GridSpacing = 50; + } + else if (distanceMax <= 3000) + { + var maxValue = Math.Ceiling(distanceMax / 100); + diagram.AxisX.WholeRange.MinValue = 0; + diagram.AxisX.WholeRange.MaxValue = maxValue * 100; + diagram.AxisX.NumericScaleOptions.GridSpacing = 100; + } + else if (distanceMax <= 5000) + { + var maxValue = Math.Ceiling(distanceMax / 1000); + diagram.AxisX.WholeRange.MinValue = 0; + diagram.AxisX.WholeRange.MaxValue = maxValue * 1000; + diagram.AxisX.NumericScaleOptions.GridSpacing = 200; + } + else if (distanceMax <= 10000) + { + var maxValue = Math.Ceiling(distanceMax / 1000); + diagram.AxisX.WholeRange.MinValue = 0; + diagram.AxisX.WholeRange.MaxValue = maxValue * 1000; + diagram.AxisX.NumericScaleOptions.GridSpacing = 1000; + } + else + { + + } + + #endregion + } + + //鑷�傚簲鍒诲害Y + private void AutoFitAxisesY(List<HydroLossCurveItemViewModel> items) + { + if (items == null || items.Count < 1) + { + return; + } + var diagram = this.chartControl1.Diagram as XYDiagram; + + + #region 鍘嬪姏 + + var allPressMinList = items.Select(x => Math.Min(Math.Min(x.StartHead, x.EndHead), x.Elev)).ToList(); + var allPressMaxList = items.Select(x => Math.Max(Math.Max(x.StartHead, x.EndHead), x.Elev)).ToList(); + + var pressMin = allPressMinList.Min(); + pressMin = Math.Min(pressMin, (double)diagram.AxisY.WholeRange.MinValue); + var pressMax = allPressMaxList.Max(); + pressMax = Math.Max(pressMax, (double)diagram.AxisY.WholeRange.MaxValue); + + diagram.AxisY.Tickmarks.MinorVisible = false; + diagram.AxisY.WholeRange.SideMarginsValue = 0; + diagram.AxisY.CrosshairAxisLabelOptions.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.True; + if (pressMax <= 10) + { + diagram.AxisY.WholeRange.MinValue = Math.Floor(pressMin); + diagram.AxisY.WholeRange.MaxValue = 10; + diagram.AxisY.NumericScaleOptions.GridSpacing = 1; + diagram.AxisY.VisualRange.SetMinMaxValues(0, 10); + } + else if (pressMax <= 100) + { + var maxValue = Math.Ceiling(pressMax / 10); + diagram.AxisY.WholeRange.MinValue = Math.Floor(pressMin); + diagram.AxisY.WholeRange.MaxValue = maxValue * 10; + diagram.AxisY.NumericScaleOptions.GridSpacing = 5; + diagram.AxisY.VisualRange.SetMinMaxValues(0, maxValue * 10); + } + else if (pressMax <= 3000) + { + var maxValue = Math.Ceiling(pressMax / 100); + diagram.AxisY.WholeRange.MinValue = Math.Floor(pressMin); + diagram.AxisY.WholeRange.MaxValue = maxValue * 100; + diagram.AxisY.NumericScaleOptions.GridSpacing = 50; + diagram.AxisY.VisualRange.SetMinMaxValues(0, maxValue * 100); + } + else if (pressMax <= 6000) + { + var maxValue = Math.Ceiling(pressMax / 1000); + diagram.AxisY.WholeRange.MinValue = Math.Floor(pressMin); + diagram.AxisY.WholeRange.MaxValue = maxValue * 1000; + diagram.AxisY.NumericScaleOptions.GridSpacing = 100; + diagram.AxisY.VisualRange.SetMinMaxValues(0, maxValue * 1000); + } + else + { + + } + + #endregion + } + + //鑷畾涔夌粯鐢� + private void chartControl1_CustomPaint(object sender, DevExpress.XtraCharts.CustomPaintEventArgs e) + { + DXCustomPaintEventArgs args = e as DXCustomPaintEventArgs; + if (args == null) + { + return; + } + GraphicsCache g = args.Cache; + + var series = this.chartControl1.Series; + var lineSeries = series?.Where(x => x.SeriesView is LineSeriesView).ToList(); + if (lineSeries == null || lineSeries.Count < 2) + { + return; + } + + + + + + + } + + + } +} diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.resx similarity index 96% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.resx rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.resx index e3e911f..6087d2e 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.resx +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCompareCtrl.resx @@ -117,7 +117,7 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> - <metadata name="bindingSource1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> - <value>17, 17</value> + <metadata name="elevBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> + <value>47, 30</value> </metadata> </root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.Designer.cs similarity index 97% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.Designer.cs index 5022f4c..391d011 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.Designer.cs @@ -1,6 +1,6 @@ 锘縩amespace Yw.WinFrmUI { - partial class HydroSingleWorkingLossCurveCtrl + partial class HydroLossCurveCtrl { /// <summary> /// Required designer variable. @@ -155,12 +155,12 @@ chartControl1.CustomDrawCrosshair += chartControl1_CustomDrawCrosshair; chartControl1.MouseClick += chartControl1_MouseClick; // - // HydroSingleWorkingLossCurveCtrl + // HydroLossCurveCtrl // AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; Controls.Add(chartControl1); - Name = "HydroSingleWorkingLossCurveCtrl"; + Name = "HydroLossCurveCtrl"; Size = new Size(848, 569); ((ISupportInitialize)lossBindingSource).EndInit(); ((ISupportInitialize)elevBindingSource).EndInit(); diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.cs similarity index 72% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.cs index 6bd3d08..0527ef9 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.cs @@ -3,18 +3,19 @@ using System.Data; using Yw.EPAnet; using Yw.Hydro; +using Yw.Model; namespace Yw.WinFrmUI { - public partial class HydroSingleWorkingLossCurveCtrl : DevExpress.XtraEditors.XtraUserControl + public partial class HydroLossCurveCtrl : DevExpress.XtraEditors.XtraUserControl { - public HydroSingleWorkingLossCurveCtrl() + public HydroLossCurveCtrl() { InitializeComponent(); } /// <summary> - /// + /// 姘村姏鐐瑰嚮浜嬩欢 /// </summary> public event Action<string> HydroClickEvent; @@ -24,68 +25,33 @@ public void SetBindingData ( Yw.Model.HydroModelInfo hydroInfo, - HydroCalcuResult calcuResult, - Yw.Model.HydroVisualInfo visual + HydroWorkingVmo working, + HydroNodeInfo node, + HydroCalcuResult calcuResult = null, + bool isHead = false, + List<Yw.Vmo.HydroEvaluationVmo> allEvaluationList = null ) { - if (hydroInfo == null) - { - return; - } - var allVisualDict = hydroInfo.GetVisualDict(); - var network = hydroInfo.ToNetwork(); - if (network == null) - { - return; - } - var node = network.GetAllNodes()?.Find(x => x.Id == visual.Code); - if (node == null) - { - return; - } - var allPathList1 = network.AnalyzeUpstreamPath(node, calcuResult.EPAnetCalcuResult); - var allPathList2 = network.AnalyzeDownstreamPath(node, calcuResult.EPAnetCalcuResult); - var allPathList = allPathList1.Concat(allPathList2).ToList(); - var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, calcuResult.EPAnetCalcuResult); - var allNodeLossList = new List<HydroNodeLossViewModel>(); - allEpaLossList?.ForEach(x => - { - var visualNode = allVisualDict?.GetValue(x.Id); - if (visualNode != null) - { - allNodeLossList.Add(new HydroNodeLossViewModel(x, visualNode)); - } - }); - SetBindingData(allNodeLossList); + var vm = HydroLossCurveHelper.Create(hydroInfo, working, node, calcuResult, isHead, allEvaluationList); + SetBindingData(vm); } /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public void SetBindingData(List<HydroNodeLossViewModel> allNodeLossList) + public void SetBindingData(HydroLossCurveViewModel vm) { - AutoFitAxises(allNodeLossList); - var allElevList = allNodeLossList?.Select(x => new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.Elev)).ToList(); - this.elevBindingSource.DataSource = allElevList; - var allLossList = new List<HydroLossCurvePointVieModel>(); - allNodeLossList?.ForEach(x => + AutoFitAxises(vm?.Items); + this.elevBindingSource.DataSource = vm?.Elev?.Items; + this.elevBindingSource.ResetBindings(false); + this.lossBindingSource.DataSource = vm?.Lower?.Items; + this.lossBindingSource.ResetBindings(false); + if (vm?.Total != null) { - allLossList.Add(new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.StartHead)); - allLossList.Add(new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.EndHead)); - }); - this.lossBindingSource.DataSource = allLossList; - - if (allNodeLossList != null && allNodeLossList.Count > 0) - { - var startHead = allNodeLossList.Max(x => x.StartHead); - var endHead = allNodeLossList.Min(x => x.EndHead); - var allHeadLoss = startHead - endHead; - var allMinorLoss = allNodeLossList.Sum(x => x.MinorLoss); - var allForLoss = allHeadLoss - allMinorLoss; var sb = new StringBuilder(); - sb.AppendLine($"姘村ご鎹熷け:{allHeadLoss:N2}m"); - sb.AppendLine($"灞�閮ㄦ崯澶�:{allMinorLoss:N2}m"); - sb.AppendLine($"娌跨▼鎹熷け:{allForLoss:N2}m"); + sb.AppendLine($"姘村ご鎹熷け:{vm?.Total.HeadLoss:N2}m"); + sb.AppendLine($"灞�閮ㄦ崯澶�:{vm?.Total.MinorLoss:N2}m"); + sb.AppendLine($"娌跨▼鎹熷け:{vm?.Total.FrictionLoss:N2}m"); var anno = this.chartControl1.AnnotationRepository[0] as DevExpress.XtraCharts.TextAnnotation; anno.Text = sb.ToString(); anno.AutoSize = true; @@ -93,9 +59,9 @@ } //鑷姩閫傚簲鍒诲害 - private void AutoFitAxises(List<HydroNodeLossViewModel> allNodeLossList) + private void AutoFitAxises(List<HydroLossCurveItemViewModel> items) { - if (allNodeLossList == null || allNodeLossList.Count < 1) + if (items == null || items.Count < 1) { return; } @@ -103,7 +69,7 @@ #region X杞� - var allDistances = allNodeLossList.Select(x => x.Distance).Distinct().ToList(); + var allDistances = items.Select(x => x.Distance).Distinct().ToList(); var distanceMax = allDistances.Max(); diagram.AxisX.Tickmarks.MinorVisible = false; diagram.AxisX.WholeRange.SideMarginsValue = 0; @@ -165,8 +131,8 @@ #region 鍘嬪姏 - var allPressMinList = allNodeLossList.Select(x => Math.Min(Math.Min(x.StartHead, x.EndHead), x.Elev)).ToList(); - var allPressMaxList = allNodeLossList.Select(x => Math.Max(Math.Max(x.StartHead, x.EndHead), x.Elev)).ToList(); + var allPressMinList = items.Select(x => Math.Min(Math.Min(x.StartHead, x.EndHead), x.Elev)).ToList(); + var allPressMaxList = items.Select(x => Math.Max(Math.Max(x.StartHead, x.EndHead), x.Elev)).ToList(); var pressMin = allPressMinList.Min(); var pressMax = allPressMaxList.Max(); @@ -222,13 +188,11 @@ e.CrosshairLineElement.LineStyle.DashStyle = DashStyle.DashDot; e.CrosshairLineElement.LineStyle.Thickness = 3; - // Specify the back color for the crosshair argument axis label. foreach (CrosshairAxisLabelElement axisLabelElement in e.CrosshairAxisLabelElements) { axisLabelElement.BackColor = Color.Blue; axisLabelElement.Text = $"{axisLabelElement.AxisValue:N2}"; - } foreach (CrosshairElementGroup group in e.CrosshairElementGroups) @@ -253,7 +217,6 @@ { ele.AxisLabelElement.Text = $"{ele.AxisLabelElement.AxisValue:N1}"; ele.AxisLabelElement.DXFont = new DXFont(this.Font.Name, 6); - //ele.AxisLabelElement.Visible = false; } diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.resx similarity index 100% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.resx rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveCtrl.resx diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.Designer.cs similarity index 98% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.Designer.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.Designer.cs index 003048c..004b28e 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.Designer.cs @@ -1,6 +1,6 @@ 锘縩amespace Yw.WinFrmUI { - partial class HydroSingleWorkingLossCurveInteropCtrl + partial class HydroLossCurveInteropCtrl { /// <summary> /// Required designer variable. @@ -298,12 +298,12 @@ emptySpaceItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom; emptySpaceItem1.TextSize = new Size(0, 0); // - // HydroSingleWorkingLossCurveInteropCtrl + // HydroLossCurveInteropCtrl // AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; Controls.Add(layoutControl1); - Name = "HydroSingleWorkingLossCurveInteropCtrl"; + Name = "HydroLossCurveInteropCtrl"; Size = new Size(993, 731); ((ISupportInitialize)lossBindingSource).EndInit(); ((ISupportInitialize)elevBindingSource).EndInit(); diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.cs similarity index 79% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.cs index 2b42627..9c04b0e 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.cs @@ -5,12 +5,13 @@ using Yw.DAL.Basic; using Yw.EPAnet; using Yw.Hydro; +using Yw.Model; namespace Yw.WinFrmUI { - public partial class HydroSingleWorkingLossCurveInteropCtrl : DevExpress.XtraEditors.XtraUserControl + public partial class HydroLossCurveInteropCtrl : DevExpress.XtraEditors.XtraUserControl { - public HydroSingleWorkingLossCurveInteropCtrl() + public HydroLossCurveInteropCtrl() { InitializeComponent(); this.layoutControl1.SetupLayoutControl(); @@ -31,10 +32,10 @@ /// </summary> public event Action HydroCancelSpecialDisplayEvent; - private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 + private HydroWorkingVmo _working = null;//宸ュ喌 + private Yw.Model.HydroNodeInfo _node = null;//鑺傜偣 private HydroCalcuResult _calcuResult = null;//璁$畻缁撴灉 - private Yw.Model.HydroVisualInfo _visual = null;//鍙鏋勪欢 /// <summary> /// 缁戝畾鏁版嵁 @@ -42,46 +43,53 @@ public void SetBindingData ( Yw.Model.HydroModelInfo hydroInfo, - HydroCalcuResult calcuResult, - Yw.Model.HydroVisualInfo visual + HydroWorkingVmo working, + HydroNodeInfo node, + HydroCalcuResult calcuResult = null, + bool isHead = false, + List<Yw.Vmo.HydroEvaluationVmo> allEvaluationList = null ) { + if (hydroInfo == null) + { + return; + } + if (working == null) + { + return; + } + if (node == null) + { + return; + } _hydroInfo = hydroInfo; + _working = working; + _node = node; + if (calcuResult == null) + { + hydroInfo.UpdateWorkingInfo(working.WorkingInfo); + calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead, allEvaluationList); + } _calcuResult = calcuResult; - _visual = visual; - Analy(); } /// <summary> /// 缁戝畾鏁版嵁 /// </summary> - public void SetBindingData(List<HydroNodeLossViewModel> allNodeLossList) + private void SetBindingData(HydroLossCurveViewModel vm) { - AutoFitAxises(allNodeLossList); - var allElevList = allNodeLossList?.Select(x => new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.Elev)).ToList(); - this.elevBindingSource.DataSource = allElevList; + AutoFitAxises(vm?.Items); + this.elevBindingSource.DataSource = vm?.Elev?.Items; this.elevBindingSource.ResetBindings(false); - var allLossList = new List<HydroLossCurvePointVieModel>(); - allNodeLossList?.ForEach(x => - { - allLossList.Add(new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.StartHead)); - allLossList.Add(new HydroLossCurvePointVieModel(x.Code, x.Name, x.Distance, x.EndHead)); - }); - this.lossBindingSource.DataSource = allLossList; + this.lossBindingSource.DataSource = vm?.Lower?.Items; this.lossBindingSource.ResetBindings(false); - - if (allNodeLossList != null && allNodeLossList.Count > 0) + if (vm?.Total != null) { - var startHead = allNodeLossList.Max(x => x.StartHead); - var endHead = allNodeLossList.Min(x => x.EndHead); - var allHeadLoss = startHead - endHead; - var allMinorLoss = allNodeLossList.Sum(x => x.MinorLoss); - var allForLoss = allHeadLoss - allMinorLoss; var sb = new StringBuilder(); - sb.AppendLine($"姘村ご鎹熷け:{allHeadLoss:N2}m"); - sb.AppendLine($"灞�閮ㄦ崯澶�:{allMinorLoss:N2}m"); - sb.AppendLine($"娌跨▼鎹熷け:{allForLoss:N2}m"); + sb.AppendLine($"姘村ご鎹熷け:{vm?.Total.HeadLoss:N2}m"); + sb.AppendLine($"灞�閮ㄦ崯澶�:{vm?.Total.MinorLoss:N2}m"); + sb.AppendLine($"娌跨▼鎹熷け:{vm?.Total.FrictionLoss:N2}m"); var anno = this.chartControl1.AnnotationRepository[0] as DevExpress.XtraCharts.TextAnnotation; anno.Text = sb.ToString(); anno.AutoSize = true; @@ -89,9 +97,9 @@ } //鑷姩閫傚簲鍒诲害 - private void AutoFitAxises(List<HydroNodeLossViewModel> allNodeLossList) + private void AutoFitAxises(List<HydroLossCurveItemViewModel> items) { - if (allNodeLossList == null || allNodeLossList.Count < 1) + if (items == null || items.Count < 1) { return; } @@ -99,7 +107,7 @@ #region X杞� - var allDistances = allNodeLossList.Select(x => x.Distance).Distinct().ToList(); + var allDistances = items.Select(x => x.Distance).Distinct().ToList(); var distanceMax = allDistances.Max(); diagram.AxisX.Tickmarks.MinorVisible = false; diagram.AxisX.WholeRange.SideMarginsValue = 0; @@ -161,8 +169,8 @@ #region 鍘嬪姏 - var allPressMinList = allNodeLossList.Select(x => Math.Min(Math.Min(x.StartHead, x.EndHead), x.Elev)).ToList(); - var allPressMaxList = allNodeLossList.Select(x => Math.Max(Math.Max(x.StartHead, x.EndHead), x.Elev)).ToList(); + var allPressMinList = items.Select(x => Math.Min(Math.Min(x.StartHead, x.EndHead), x.Elev)).ToList(); + var allPressMaxList = items.Select(x => Math.Max(Math.Max(x.StartHead, x.EndHead), x.Elev)).ToList(); var pressMin = allPressMinList.Min(); var pressMax = allPressMaxList.Max(); @@ -224,7 +232,6 @@ { axisLabelElement.BackColor = Color.Blue; axisLabelElement.Text = $"{axisLabelElement.AxisValue:N2}"; - } foreach (CrosshairElementGroup group in e.CrosshairElementGroups) @@ -249,7 +256,6 @@ { ele.AxisLabelElement.Text = $"{ele.AxisLabelElement.AxisValue:N1}"; ele.AxisLabelElement.DXFont = new DXFont(this.Font.Name, 6); - //ele.AxisLabelElement.Visible = false; } @@ -322,20 +328,32 @@ { return; } + if (_working == null) + { + return; + } + if (_node == null) + { + return; + } + if (_calcuResult == null) + { + return; + } var network = _hydroInfo.ToNetwork(); if (network == null) { return; } - var node = network.GetAllNodes()?.Find(x => x.Id == _visual?.Code); - if (node == null) + var epaNode = network.GetAllNodes()?.Find(x => x.Id == _node.Code); + if (epaNode == null) { return; } var allStartPathList = new List<Link>(); if (this.ckStart.Checked) { - allStartPathList = network.AnalyzeUpstreamPath(node, _calcuResult?.EPAnetCalcuResult); + allStartPathList = network.AnalyzeUpstreamPath(epaNode, _calcuResult?.EPAnetCalcuResult); if (allStartPathList == null) { allStartPathList = new List<Link>(); @@ -344,7 +362,7 @@ var allEndPathList = new List<Link>(); if (this.ckEnd.Checked) { - allEndPathList = network.AnalyzeDownstreamPath(node, _calcuResult?.EPAnetCalcuResult); + allEndPathList = network.AnalyzeDownstreamPath(epaNode, _calcuResult?.EPAnetCalcuResult); if (allEndPathList == null) { allEndPathList = new List<Link>(); @@ -353,22 +371,30 @@ var allPathList = allStartPathList.Concat(allEndPathList).ToList(); var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, _calcuResult?.EPAnetCalcuResult); var allVisualDict = _hydroInfo.GetVisualDict(); - var allNodeLossList = new List<HydroNodeLossViewModel>(); + + var vm = new HydroLossCurveViewModel(); + vm.Items = new List<HydroLossCurveItemViewModel>(); allEpaLossList?.ForEach(x => { var visualNode = allVisualDict?.GetValue(x.Id); if (visualNode != null) { - allNodeLossList.Add(new HydroNodeLossViewModel(x, visualNode)); + vm.Items.Add(new HydroLossCurveItemViewModel(x, visualNode)); } }); - SetBindingData(allNodeLossList); + vm.Elev = new HydroLossCurveElevViewModel(vm.Items); + vm.Start = new HydroLossCurveStartViewModel(vm.Items); + vm.End = new HydroLossCurveEndViewModel(vm.Items); + vm.Lower = new HydroLossCurveLowerViewModel(vm.Items); + vm.Total = new HydroLossCurveTotalViewModel(vm.Items); + + SetBindingData(vm); if (this.ckSpecial.Checked) { var allCodeList = new List<string>(); allPathList?.ForEach(x => allCodeList.Add(x.Id)); - allNodeLossList?.ForEach(x => allCodeList.Add(x.Code)); + vm.Items?.ForEach(x => allCodeList.Add(x.Code)); this.HydroSpecialDisplayEvent?.Invoke(allCodeList); } else diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.resx similarity index 98% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.resx rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.resx index e760b41..9471e03 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveInteropCtrl.resx +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/07-control/HydroLossCurveInteropCtrl.resx @@ -1,7 +1,7 @@ 锘�<?xml version="1.0" encoding="utf-8"?> <root> <!-- - Microsoft ResX Schema + Microsoft ResX Schema Version 2.0 @@ -48,7 +48,7 @@ value : The object must be serialized with : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter : and then encoded with base64 encoding. - + mimetype: application/x-microsoft.net.object.soap.base64 value : The object must be serialized with : System.Runtime.Serialization.Formatters.Soap.SoapFormatter diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.Designer.cs similarity index 80% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.Designer.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.Designer.cs index 577c1b3..20246ac 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.Designer.cs @@ -1,6 +1,6 @@ 锘縩amespace Yw.WinFrmUI { - partial class HydroSingleWorkingLossCurveDlg + partial class HydroLossCurveDlg { /// <summary> /// Required designer variable. @@ -31,7 +31,7 @@ ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl(); ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage(); ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); - hydroSingleWorkingLossCurveCtrl1 = new HydroSingleWorkingLossCurveCtrl(); + hydroLossCurveCtrl1 = new HydroLossCurveCtrl(); ((ISupportInitialize)ribbon).BeginInit(); SuspendLayout(); // @@ -58,23 +58,23 @@ ribbonPageGroup1.Name = "ribbonPageGroup1"; ribbonPageGroup1.Text = "ribbonPageGroup1"; // - // hydroSingleLossCurveCtrl1 + // hydroLossCurveCtrl1 // - hydroSingleWorkingLossCurveCtrl1.Dock = DockStyle.Fill; - hydroSingleWorkingLossCurveCtrl1.Location = new Point(0, 32); - hydroSingleWorkingLossCurveCtrl1.Name = "hydroSingleLossCurveCtrl1"; - hydroSingleWorkingLossCurveCtrl1.Size = new Size(886, 555); - hydroSingleWorkingLossCurveCtrl1.TabIndex = 4; + hydroLossCurveCtrl1.Dock = DockStyle.Fill; + hydroLossCurveCtrl1.Location = new Point(0, 32); + hydroLossCurveCtrl1.Name = "hydroLossCurveCtrl1"; + hydroLossCurveCtrl1.Size = new Size(886, 555); + hydroLossCurveCtrl1.TabIndex = 6; // - // HydroSingleLossCurveDlg + // HydroLossCurveDlg // AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; ClientSize = new Size(886, 587); - Controls.Add(hydroSingleWorkingLossCurveCtrl1); + Controls.Add(hydroLossCurveCtrl1); Controls.Add(ribbon); FormBorderStyle = FormBorderStyle.SizableToolWindow; - Name = "HydroSingleLossCurveDlg"; + Name = "HydroLossCurveDlg"; Ribbon = ribbon; RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden; StartPosition = FormStartPosition.CenterParent; @@ -89,6 +89,6 @@ private DevExpress.XtraBars.Ribbon.RibbonControl ribbon; private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1; private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1; - private HydroSingleWorkingLossCurveCtrl hydroSingleWorkingLossCurveCtrl1; + private HydroLossCurveCtrl hydroLossCurveCtrl1; } } \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.cs new file mode 100644 index 0000000..a7eb1c6 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.cs @@ -0,0 +1,51 @@ +锘縰sing Yw.Model; + +namespace Yw.WinFrmUI +{ + public partial class HydroLossCurveDlg : DevExpress.XtraBars.Ribbon.RibbonForm + { + public HydroLossCurveDlg() + { + InitializeComponent(); + this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; + this.hydroLossCurveCtrl1.HydroClickEvent += HydroLossCurveCtrl1_HydroClickEvent; ; + } + + /// <summary> + /// 姘村姏鐐瑰嚮浜嬩欢 + /// </summary> + public event Action<string> HydroClickEvent; + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData + ( + Yw.Model.HydroModelInfo hydroInfo, + HydroWorkingVmo working, + HydroNodeInfo node, + HydroCalcuResult calcuResult = null, + bool isHead = false, + List<Yw.Vmo.HydroEvaluationVmo> allEvaluationList = null + ) + { + this.hydroLossCurveCtrl1.SetBindingData(hydroInfo, working, node, calcuResult, isHead, allEvaluationList); + } + + /// <summary> + /// 缁戝畾鏁版嵁 + /// </summary> + public void SetBindingData(HydroLossCurveViewModel vm) + { + this.hydroLossCurveCtrl1.SetBindingData(vm); + } + + //姘村姏鐐瑰嚮浜嬩欢 + private void HydroLossCurveCtrl1_HydroClickEvent(string obj) + { + this.HydroClickEvent?.Invoke(obj); + } + + + } +} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.resx similarity index 100% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.resx rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/08-dlg/HydroLossCurveDlg.resx diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.Designer.cs new file mode 100644 index 0000000..3dbc5f9 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.Designer.cs @@ -0,0 +1,255 @@ +锘縩amespace Yw.WinFrmUI +{ + partial class HydroLossCurveMultiWorkingDlg + { + /// <summary> + /// Required designer variable. + /// </summary> + private System.ComponentModel.IContainer components = null; + + /// <summary> + /// Clean up any resources being used. + /// </summary> + /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + ComponentResourceManager resources = new ComponentResourceManager(typeof(HydroLossCurveMultiWorkingDlg)); + ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl(); + ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage(); + ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); + layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); + hydroLossCurveCtrl1 = new HydroLossCurveCtrl(); + hydroWorkingListViewCtrl1 = new HydroWorkingListViewCtrl(); + Root = new DevExpress.XtraLayout.LayoutControlGroup(); + groupForWorkingList = new DevExpress.XtraLayout.LayoutControlGroup(); + layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); + splitter = new DevExpress.XtraLayout.SplitterItem(); + itemForLossCurve = new DevExpress.XtraLayout.LayoutControlItem(); + navigationFrame1 = new DevExpress.XtraBars.Navigation.NavigationFrame(); + navigationPage1 = new DevExpress.XtraBars.Navigation.NavigationPage(); + navigationPage2 = new DevExpress.XtraBars.Navigation.NavigationPage(); + hydroLossCurveCompareCtrl1 = new HydroLossCurveCompareCtrl(); + barBtnChange = new DevExpress.XtraBars.BarButtonItem(); + ((ISupportInitialize)ribbon).BeginInit(); + ((ISupportInitialize)layoutControl1).BeginInit(); + layoutControl1.SuspendLayout(); + ((ISupportInitialize)Root).BeginInit(); + ((ISupportInitialize)groupForWorkingList).BeginInit(); + ((ISupportInitialize)layoutControlItem1).BeginInit(); + ((ISupportInitialize)splitter).BeginInit(); + ((ISupportInitialize)itemForLossCurve).BeginInit(); + ((ISupportInitialize)navigationFrame1).BeginInit(); + navigationFrame1.SuspendLayout(); + navigationPage1.SuspendLayout(); + navigationPage2.SuspendLayout(); + SuspendLayout(); + // + // ribbon + // + ribbon.CaptionBarItemLinks.Add(barBtnChange); + ribbon.ExpandCollapseItem.Id = 0; + ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem, barBtnChange }); + ribbon.Location = new Point(0, 0); + ribbon.MaxItemId = 2; + ribbon.Name = "ribbon"; + ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 }); + ribbon.RibbonCaptionAlignment = DevExpress.XtraBars.Ribbon.RibbonCaptionAlignment.Left; + ribbon.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False; + ribbon.Size = new Size(994, 32); + // + // ribbonPage1 + // + ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 }); + ribbonPage1.Name = "ribbonPage1"; + ribbonPage1.Text = "ribbonPage1"; + // + // ribbonPageGroup1 + // + ribbonPageGroup1.Name = "ribbonPageGroup1"; + ribbonPageGroup1.Text = "ribbonPageGroup1"; + // + // layoutControl1 + // + layoutControl1.Controls.Add(hydroLossCurveCtrl1); + layoutControl1.Controls.Add(hydroWorkingListViewCtrl1); + layoutControl1.Dock = DockStyle.Fill; + layoutControl1.Location = new Point(0, 0); + layoutControl1.Name = "layoutControl1"; + layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(551, 346, 650, 400); + layoutControl1.Root = Root; + layoutControl1.Size = new Size(994, 573); + layoutControl1.TabIndex = 1; + layoutControl1.Text = "layoutControl1"; + // + // hydroLossCurveCtrl1 + // + hydroLossCurveCtrl1.Location = new Point(177, 2); + hydroLossCurveCtrl1.Name = "hydroLossCurveCtrl1"; + hydroLossCurveCtrl1.Size = new Size(815, 569); + hydroLossCurveCtrl1.TabIndex = 5; + // + // hydroWorkingListViewCtrl1 + // + hydroWorkingListViewCtrl1.BorderVisible = false; + hydroWorkingListViewCtrl1.Location = new Point(3, 24); + hydroWorkingListViewCtrl1.Name = "hydroWorkingListViewCtrl1"; + hydroWorkingListViewCtrl1.Size = new Size(159, 546); + hydroWorkingListViewCtrl1.TabIndex = 0; + // + // Root + // + Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; + Root.GroupBordersVisible = false; + Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { groupForWorkingList, splitter, itemForLossCurve }); + Root.Name = "Root"; + Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + Root.Size = new Size(994, 573); + Root.TextVisible = false; + // + // groupForWorkingList + // + groupForWorkingList.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 }); + groupForWorkingList.Location = new Point(0, 0); + groupForWorkingList.Name = "groupForWorkingList"; + groupForWorkingList.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + groupForWorkingList.Size = new Size(165, 573); + groupForWorkingList.Text = "宸ュ喌鍒楄〃"; + // + // layoutControlItem1 + // + layoutControlItem1.Control = hydroWorkingListViewCtrl1; + layoutControlItem1.Location = new Point(0, 0); + layoutControlItem1.Name = "layoutControlItem1"; + layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + layoutControlItem1.Size = new Size(159, 546); + layoutControlItem1.TextSize = new Size(0, 0); + layoutControlItem1.TextVisible = false; + // + // splitter + // + splitter.AllowHotTrack = true; + splitter.Location = new Point(165, 0); + splitter.Name = "splitter"; + splitter.Size = new Size(10, 573); + // + // itemForLossCurve + // + itemForLossCurve.Control = hydroLossCurveCtrl1; + itemForLossCurve.Location = new Point(175, 0); + itemForLossCurve.Name = "itemForLossCurve"; + itemForLossCurve.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + itemForLossCurve.Size = new Size(819, 573); + itemForLossCurve.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + itemForLossCurve.TextSize = new Size(0, 0); + itemForLossCurve.TextVisible = false; + // + // navigationFrame1 + // + navigationFrame1.Controls.Add(navigationPage1); + navigationFrame1.Controls.Add(navigationPage2); + navigationFrame1.Dock = DockStyle.Fill; + navigationFrame1.Location = new Point(0, 32); + navigationFrame1.Name = "navigationFrame1"; + navigationFrame1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { navigationPage1, navigationPage2 }); + navigationFrame1.SelectedPage = navigationPage1; + navigationFrame1.Size = new Size(994, 573); + navigationFrame1.TabIndex = 3; + navigationFrame1.Text = "navigationFrame1"; + // + // navigationPage1 + // + navigationPage1.Caption = "navigationPage1"; + navigationPage1.Controls.Add(layoutControl1); + navigationPage1.Name = "navigationPage1"; + navigationPage1.Size = new Size(994, 573); + // + // navigationPage2 + // + navigationPage2.Caption = "navigationPage2"; + navigationPage2.Controls.Add(hydroLossCurveCompareCtrl1); + navigationPage2.Name = "navigationPage2"; + navigationPage2.Size = new Size(994, 573); + // + // hydroLossCurveCompareCtrl1 + // + hydroLossCurveCompareCtrl1.Dock = DockStyle.Fill; + hydroLossCurveCompareCtrl1.Location = new Point(0, 0); + hydroLossCurveCompareCtrl1.Name = "hydroLossCurveCompareCtrl1"; + hydroLossCurveCompareCtrl1.Size = new Size(994, 573); + hydroLossCurveCompareCtrl1.TabIndex = 0; + // + // barBtnChange + // + barBtnChange.Caption = "鍒囨崲"; + barBtnChange.Hint = "鍒囨崲"; + barBtnChange.Id = 1; + barBtnChange.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("barBtnChange.ImageOptions.SvgImage"); + barBtnChange.Name = "barBtnChange"; + barBtnChange.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.SmallWithText; + barBtnChange.ItemClick += barBtnChange_ItemClick; + // + // HydroLossCurveMultiWorkingDlg + // + AutoScaleDimensions = new SizeF(7F, 14F); + AutoScaleMode = AutoScaleMode.Font; + ClientSize = new Size(994, 605); + Controls.Add(navigationFrame1); + Controls.Add(ribbon); + FormBorderStyle = FormBorderStyle.SizableToolWindow; + Name = "HydroLossCurveMultiWorkingDlg"; + Ribbon = ribbon; + RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden; + StartPosition = FormStartPosition.CenterParent; + Text = "鎹熷け鏇茬嚎"; + ((ISupportInitialize)ribbon).EndInit(); + ((ISupportInitialize)layoutControl1).EndInit(); + layoutControl1.ResumeLayout(false); + ((ISupportInitialize)Root).EndInit(); + ((ISupportInitialize)groupForWorkingList).EndInit(); + ((ISupportInitialize)layoutControlItem1).EndInit(); + ((ISupportInitialize)splitter).EndInit(); + ((ISupportInitialize)itemForLossCurve).EndInit(); + ((ISupportInitialize)navigationFrame1).EndInit(); + navigationFrame1.ResumeLayout(false); + navigationPage1.ResumeLayout(false); + navigationPage2.ResumeLayout(false); + ResumeLayout(false); + PerformLayout(); + } + + #endregion + + private DevExpress.XtraBars.Ribbon.RibbonControl ribbon; + private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1; + private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1; + private DevExpress.XtraLayout.LayoutControl layoutControl1; + private HydroWorkingListViewCtrl hydroWorkingListViewCtrl1; + private DevExpress.XtraLayout.LayoutControlGroup Root; + private DevExpress.XtraLayout.LayoutControlGroup groupForWorkingList; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; + private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; + private DevExpress.XtraLayout.SplitterItem splitter; + private HydroLossCurveCtrl hydroLossCurveCtrl1; + private DevExpress.XtraLayout.LayoutControlItem itemForLossCurve; + private DevExpress.XtraBars.Navigation.NavigationFrame navigationFrame1; + private DevExpress.XtraBars.Navigation.NavigationPage navigationPage1; + private DevExpress.XtraBars.Navigation.NavigationPage navigationPage2; + private DevExpress.XtraBars.BarButtonItem barBtnChange; + private HydroLossCurveCompareCtrl hydroLossCurveCompareCtrl1; + } +} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.cs new file mode 100644 index 0000000..2aa83f3 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.cs @@ -0,0 +1,102 @@ +锘縰sing Mapster; + +namespace Yw.WinFrmUI +{ + public partial class HydroLossCurveMultiWorkingDlg : DevExpress.XtraBars.Ribbon.RibbonForm + { + public HydroLossCurveMultiWorkingDlg() + { + InitializeComponent(); + this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; + this.layoutControl1.SetupLayoutControl(); + this.hydroWorkingListViewCtrl1.SelectedChangedEvent += HydroWorkingListViewCtrl1_SelectedChangedEvent; + } + + + private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 + private Dictionary<HydroWorkingVmo, HydroCalcuResult> _calcuWorkingDict = null;//宸ュ喌璁$畻瀛楀吀 + private Yw.Model.HydroNodeInfo _node = null;//鑺傜偣 + + /// <summary> + /// 缁戝畾鏁版嵁 + /// 璁$畻涓嶄細鏀瑰彉鍘熸湁姘村姏淇℃伅 + /// </summary> + public void SetBindingData + ( + Yw.Model.HydroModelInfo hydroInfo, + List<HydroWorkingVmo> allWorkingList, + Yw.Model.HydroNodeInfo node, + bool isHead = false, + List<HydroEvaluationVmo> allEvaluationList = null + ) + { + if (hydroInfo == null) + { + return; + } + if (allWorkingList == null || allWorkingList.Count < 1) + { + return; + } + if (node == null) + { + return; + } + _hydroInfo = hydroInfo.Adapt<Yw.Model.HydroModelInfo>(); + _node = node; + + _calcuWorkingDict = new Dictionary<HydroWorkingVmo, HydroCalcuResult>(); + foreach (var working in allWorkingList) + { + _hydroInfo.UpdateWorkingInfo(working.WorkingInfo); + var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead, allEvaluationList); + _calcuWorkingDict.Add(working, calcuResult); + } + if (allWorkingList.Count < 2) + { + var working = allWorkingList[0]; + this.Text = $"鎹熷け鏇茬嚎({working.Name})"; + this.groupForWorkingList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + this.splitter.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + } + this.hydroWorkingListViewCtrl1.SetBindingData(allWorkingList); + this.hydroLossCurveCompareCtrl1.SetBindingData(_hydroInfo, _calcuWorkingDict, _node); + } + + //宸ュ喌閫夋嫨鏀瑰彉 + private void HydroWorkingListViewCtrl1_SelectedChangedEvent(HydroWorkingVmo working) + { + if (_hydroInfo == null) + { + return; + } + if (_node == null) + { + return; + } + if (_calcuWorkingDict == null || _calcuWorkingDict.Count < 1) + { + return; + } + if (working == null) + { + return; + } + if (!_calcuWorkingDict.ContainsKey(working)) + { + return; + } + this.hydroLossCurveCtrl1.SetBindingData(_hydroInfo, working, _node, _calcuWorkingDict[working]); + } + + + //鍒囨崲 + private void barBtnChange_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) + { + var index = this.navigationFrame1.SelectedPageIndex == 0 ? 1 : 0; + this.navigationFrame1.SelectedPageIndex = index; + } + + + } +} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.resx similarity index 77% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.resx rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.resx index af32865..aabf10f 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.resx +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveMultiWorkingDlg.resx @@ -117,4 +117,24 @@ <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> + <assembly alias="DevExpress.Data.v23.2" name="DevExpress.Data.v23.2, Culture=neutral, PublicKeyToken=b88d1754d700e49a" /> + <data name="barBtnChange.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64"> + <value> + AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40 + LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl + dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAJkCAAAC77u/ + PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi + IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv + MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh + Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg + MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsdWV7ZmlsbDojMzU3NUJCO30KCS5C + bGFja3tmaWxsOiM3MzczNzQ7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuWWVsbG93e2ZpbGw6I0ZD + QjAxQjt9CgkuUmVke2ZpbGw6I0QwMjAyNzt9CgkuR3JlZW57ZmlsbDojMTI5QzQ5O30KCS5zdDB7b3Bh + Y2l0eTowLjU7fQo8L3N0eWxlPg0KICA8cGF0aCBkPSJNMzEsMkgxMWMtMC41LDAtMSwwLjUtMSwxdjlo + MlY0aDE4djI0SDEydi04aC0ydjljMCwwLjUsMC41LDEsMSwxaDIwYzAuNSwwLDEtMC41LDEtMVYzQzMy + LDIuNSwzMS41LDIsMzEsMnogICIgY2xhc3M9IkJsYWNrIiAvPg0KICA8cG9seWdvbiBwb2ludHM9IjQs + MTQgMTQsMTQgMTQsOCAyMiwxNiAxNCwyNCAxNCwxOCA0LDE4ICIgY2xhc3M9IkJsdWUiIC8+DQo8L3N2 + Zz4L +</value> + </data> </root> \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.Designer.cs similarity index 81% rename from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.Designer.cs rename to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.Designer.cs index ab92d4d..17cc949 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.Designer.cs @@ -1,6 +1,6 @@ 锘縩amespace Yw.WinFrmUI { - partial class HydroMultiWorkingLossCurveDlg + partial class HydroLossCurveWorkingDlg { /// <summary> /// Required designer variable. @@ -32,13 +32,13 @@ ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage(); ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup(); layoutControl1 = new DevExpress.XtraLayout.LayoutControl(); - hydroSingleWorkingLossCurveCtrl1 = new HydroSingleWorkingLossCurveCtrl(); hydroWorkingListViewCtrl1 = new HydroWorkingListViewCtrl(); Root = new DevExpress.XtraLayout.LayoutControlGroup(); groupForWorkingList = new DevExpress.XtraLayout.LayoutControlGroup(); layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem(); splitter = new DevExpress.XtraLayout.SplitterItem(); - itemForChart = new DevExpress.XtraLayout.LayoutControlItem(); + hydroLossCurveCtrl1 = new HydroLossCurveCtrl(); + itemForLossCurve = new DevExpress.XtraLayout.LayoutControlItem(); ((ISupportInitialize)ribbon).BeginInit(); ((ISupportInitialize)layoutControl1).BeginInit(); layoutControl1.SuspendLayout(); @@ -46,7 +46,7 @@ ((ISupportInitialize)groupForWorkingList).BeginInit(); ((ISupportInitialize)layoutControlItem1).BeginInit(); ((ISupportInitialize)splitter).BeginInit(); - ((ISupportInitialize)itemForChart).BeginInit(); + ((ISupportInitialize)itemForLossCurve).BeginInit(); SuspendLayout(); // // ribbon @@ -74,7 +74,7 @@ // // layoutControl1 // - layoutControl1.Controls.Add(hydroSingleWorkingLossCurveCtrl1); + layoutControl1.Controls.Add(hydroLossCurveCtrl1); layoutControl1.Controls.Add(hydroWorkingListViewCtrl1); layoutControl1.Dock = DockStyle.Fill; layoutControl1.Location = new Point(0, 32); @@ -84,13 +84,6 @@ layoutControl1.Size = new Size(994, 573); layoutControl1.TabIndex = 1; layoutControl1.Text = "layoutControl1"; - // - // hydroSingleWorkingLossCurveCtrl1 - // - hydroSingleWorkingLossCurveCtrl1.Location = new Point(177, 2); - hydroSingleWorkingLossCurveCtrl1.Name = "hydroSingleWorkingLossCurveCtrl1"; - hydroSingleWorkingLossCurveCtrl1.Size = new Size(815, 569); - hydroSingleWorkingLossCurveCtrl1.TabIndex = 4; // // hydroWorkingListViewCtrl1 // @@ -104,7 +97,7 @@ // Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True; Root.GroupBordersVisible = false; - Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { groupForWorkingList, splitter, itemForChart }); + Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { groupForWorkingList, splitter, itemForLossCurve }); Root.Name = "Root"; Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); Root.Size = new Size(994, 573); @@ -136,18 +129,25 @@ splitter.Name = "splitter"; splitter.Size = new Size(10, 573); // - // itemForChart + // hydroLossCurveCtrl1 // - itemForChart.Control = hydroSingleWorkingLossCurveCtrl1; - itemForChart.Location = new Point(175, 0); - itemForChart.Name = "itemForChart"; - itemForChart.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); - itemForChart.Size = new Size(819, 573); - itemForChart.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); - itemForChart.TextSize = new Size(0, 0); - itemForChart.TextVisible = false; + hydroLossCurveCtrl1.Location = new Point(177, 2); + hydroLossCurveCtrl1.Name = "hydroLossCurveCtrl1"; + hydroLossCurveCtrl1.Size = new Size(815, 569); + hydroLossCurveCtrl1.TabIndex = 5; // - // HydroMultiWorkingLossCurveDlg + // itemForLossCurve + // + itemForLossCurve.Control = hydroLossCurveCtrl1; + itemForLossCurve.Location = new Point(175, 0); + itemForLossCurve.Name = "itemForLossCurve"; + itemForLossCurve.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0); + itemForLossCurve.Size = new Size(819, 573); + itemForLossCurve.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2); + itemForLossCurve.TextSize = new Size(0, 0); + itemForLossCurve.TextVisible = false; + // + // HydroLossCurveWorkingDlg // AutoScaleDimensions = new SizeF(7F, 14F); AutoScaleMode = AutoScaleMode.Font; @@ -155,7 +155,7 @@ Controls.Add(layoutControl1); Controls.Add(ribbon); FormBorderStyle = FormBorderStyle.SizableToolWindow; - Name = "HydroMultiWorkingLossCurveDlg"; + Name = "HydroLossCurveWorkingDlg"; Ribbon = ribbon; RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden; StartPosition = FormStartPosition.CenterParent; @@ -167,7 +167,7 @@ ((ISupportInitialize)groupForWorkingList).EndInit(); ((ISupportInitialize)layoutControlItem1).EndInit(); ((ISupportInitialize)splitter).EndInit(); - ((ISupportInitialize)itemForChart).EndInit(); + ((ISupportInitialize)itemForLossCurve).EndInit(); ResumeLayout(false); PerformLayout(); } @@ -178,14 +178,13 @@ private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1; private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1; private DevExpress.XtraLayout.LayoutControl layoutControl1; - private HydroSingleWorkingLossStatisticsCtrl hydroSingleWorkingLossStatisticsCtrl1; private HydroWorkingListViewCtrl hydroWorkingListViewCtrl1; private DevExpress.XtraLayout.LayoutControlGroup Root; private DevExpress.XtraLayout.LayoutControlGroup groupForWorkingList; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1; private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2; private DevExpress.XtraLayout.SplitterItem splitter; - private HydroSingleWorkingLossCurveCtrl hydroSingleWorkingLossCurveCtrl1; - private DevExpress.XtraLayout.LayoutControlItem itemForChart; + private HydroLossCurveCtrl hydroLossCurveCtrl1; + private DevExpress.XtraLayout.LayoutControlItem itemForLossCurve; } } \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.cs new file mode 100644 index 0000000..55c44c5 --- /dev/null +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.cs @@ -0,0 +1,111 @@ +锘縰sing Mapster; + +namespace Yw.WinFrmUI +{ + public partial class HydroLossCurveWorkingDlg : DevExpress.XtraBars.Ribbon.RibbonForm + { + public HydroLossCurveWorkingDlg() + { + InitializeComponent(); + this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon; + this.layoutControl1.SetupLayoutControl(); + this.hydroWorkingListViewCtrl1.SelectedChangedEvent += HydroWorkingListViewCtrl1_SelectedChangedEvent; + this.hydroLossCurveCtrl1.HydroClickEvent += HydroLossCurveCtrl1_HydroClickEvent; + } + + /// <summary> + /// 姘村姏鐐瑰嚮浜嬩欢 + /// </summary> + public event Action<string> HydroClickEvent; + + private Yw.Model.HydroModelInfo _hydroInfo = null;//姘村姏淇℃伅 + private Dictionary<HydroWorkingVmo, HydroCalcuResult> _calcuWorkingDict = null;//宸ュ喌璁$畻瀛楀吀 + private Yw.Model.HydroNodeInfo _node = null;//鑺傜偣 + + /// <summary> + /// 缁戝畾鏁版嵁 + /// 璁$畻涓嶄細鏀瑰彉鍘熸湁姘村姏淇℃伅 + /// </summary> + public void SetBindingData + ( + Yw.Model.HydroModelInfo hydroInfo, + List<HydroWorkingVmo> allWorkingList, + Yw.Model.HydroNodeInfo node, + bool isHead = false, + List<HydroEvaluationVmo> allEvaluationList = null + ) + { + if (hydroInfo == null) + { + return; + } + if (allWorkingList == null || allWorkingList.Count < 1) + { + return; + } + if (node == null) + { + return; + } + _hydroInfo = hydroInfo.Adapt<Yw.Model.HydroModelInfo>(); + _node = node; + + _calcuWorkingDict = new Dictionary<HydroWorkingVmo, HydroCalcuResult>(); + foreach (var working in allWorkingList) + { + _hydroInfo.UpdateWorkingInfo(working.WorkingInfo); + var calcuResult = _hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss, isHead, allEvaluationList); + _calcuWorkingDict.Add(working, calcuResult); + } + if (allWorkingList.Count < 2) + { + var working = allWorkingList[0]; + this.Text = $"鎹熷け鏇茬嚎({working.Name})"; + this.groupForWorkingList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + this.splitter.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; + } + this.hydroWorkingListViewCtrl1.SetBindingData(allWorkingList); + } + + //宸ュ喌閫夋嫨鏀瑰彉 + private void HydroWorkingListViewCtrl1_SelectedChangedEvent(HydroWorkingVmo working) + { + if (_hydroInfo == null) + { + return; + } + if (_node == null) + { + return; + } + if (_calcuWorkingDict == null || _calcuWorkingDict.Count < 1) + { + return; + } + if (working == null) + { + return; + } + if (!_calcuWorkingDict.ContainsKey(working)) + { + return; + } + this.hydroLossCurveCtrl1.SetBindingData(_hydroInfo, working, _node, _calcuWorkingDict[working]); + } + + //姘村姏鐐瑰嚮浜嬩欢 + private void HydroLossCurveCtrl1_HydroClickEvent(string obj) + { + this.HydroClickEvent?.Invoke(obj); + } + + + + + + + + + + } +} \ No newline at end of file diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.resx b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.resx similarity index 100% copy from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.resx copy to WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-curve/09-working/HydroLossCurveWorkingDlg.resx diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-statistics/06-control/HydroLossStatisticsCatalogCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-statistics/06-control/HydroLossStatisticsCatalogCtrl.Designer.cs index cec025e..a38d4c0 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-statistics/06-control/HydroLossStatisticsCatalogCtrl.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-statistics/06-control/HydroLossStatisticsCatalogCtrl.Designer.cs @@ -63,9 +63,9 @@ doughnutSeriesView1.TotalLabel.Visible = true; series1.View = doughnutSeriesView1; chartControl1.SeriesSerializable = new DevExpress.XtraCharts.Series[] - { - series1 - }; + { + series1 + }; chartControl1.Size = new Size(884, 602); chartControl1.TabIndex = 0; // diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-statistics/06-control/HydroLossStatisticsCategoryCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-statistics/06-control/HydroLossStatisticsCategoryCtrl.Designer.cs index e91ee0f..96c19ed 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-statistics/06-control/HydroLossStatisticsCategoryCtrl.Designer.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/loss-statistics/06-control/HydroLossStatisticsCategoryCtrl.Designer.cs @@ -43,7 +43,7 @@ // // bindingSource1 // - bindingSource1.DataSource = typeof(HydroEnergyStatisticsItemViewModel); + bindingSource1.DataSource = typeof(HydroLossStatisticsCategoryItemViewModel); // // chartControl1 // -- Gitblit v1.9.3