lixiaojun
2024-11-28 d10b5c63fe08360560306ef799c828320f332db1
增加综合分析
已删除1个文件
已重命名11个文件
已复制6个文件
已修改12个文件
已添加10个文件
1467 ■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/02-page/XhsProjectSimulationSchemePage.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.Designer.cs 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.cs 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.Designer.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyDlg.Designer.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyDlg.cs 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyDlg.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationMultiWorkingAnalyDlg.Designer.cs 207 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationMultiWorkingAnalyDlg.cs 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationMultiWorkingAnalyDlg.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.Designer.cs 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyDlg.Designer.cs 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyDlg.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyDlg.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/04-single/HydroSingleWorkingEvaluationCtrl.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.Designer.cs 204 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.cs 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.cs 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.Designer.cs 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.resx 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.cs 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/04-scheme/02-page/XhsProjectSimulationSchemePage.cs
@@ -1978,26 +1978,7 @@
        private void barBtnWorkingLossCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_visual == null)
            {
                XtraMessageBox.Show("请选择节点后重试!");
                return;
            }
            if (!(_visual is Yw.Model.HydroNodeInfo))
            {
                XtraMessageBox.Show("请选择节点后重试!");
                return;
            }
            var network = _hydroInfo.ToNetwork();
            var calcuResult = network.Calcu(Yw.EPAnet.CalcuMode.Simple);
            var allNodeList = network.GetAllNodes();
            var node = allNodeList.Find(x => x.Id == _visual.Code);
            var allPathList = network.AnalyzeDownstreamPath(node, calcuResult);
            var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, calcuResult);
            var allLossList = allEpaLossList?.Select(x => new HydroNodeLossViewModel(x)).ToList();
            var dlg = new HydroSingleLossCurveDlg();
            dlg.SetBindingData(allLossList);
            dlg.ShowDialog();
        }
        #endregion
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
@@ -256,7 +256,7 @@
            barBtnPumpAnaly.ImageOptions.LargeImage = Xhs.Core.Properties.Resources.pump_run_32;
            barBtnPumpAnaly.Name = "barBtnPumpAnaly";
            barBtnPumpAnaly.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonItemStyles.SmallWithText;
            barBtnPumpAnaly.ItemClick += barBtnAnaly_ItemClick;
            barBtnPumpAnaly.ItemClick += barBtnPumpAnaly_ItemClick;
            // 
            // barBtnSearch
            // 
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -2158,10 +2158,8 @@
            }
        }
        #region å·¥å†µå¹¶è”
        //并联分析
        private void barBtnAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        //水泵分析
        private void barBtnPumpAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_hydroInfo == null)
            {
@@ -2251,49 +2249,67 @@
            dlg.ShowDialog();
        }
        #endregion
        #region å·¥å†µèƒ½æ•ˆ
        //能效分析
        private void barBtnWorkingPower_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            var workingHelper = GetWorkingHelper();
            var dlg = new SimulationSingleWorkingEnergyDlg();
            dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult);
            dlg.ShowDialog();
            var workingCheckedListHelper = GetWorkingCheckedListHelper();
            var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList();
            if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1)
            {
                var workingHelper = GetWorkingHelper();
                if (!workingHelper.Initialized)
                {
                    TipFormHelper.ShowWarn("请计算后重试!");
                    return;
                }
                var dlg = new SimulationSingleWorkingEnergyDlg();
                dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult);
                dlg.ShowDialog();
            }
            else
            {
                var dlg = new SimulationMultiWorkingEnergyDlg();
                dlg.SetBindingData(_hydroInfo, allCheckedWorkingList);
                dlg.ShowDialog();
            }
        }
        #endregion
        #region æŸå¤±æ›²çº¿
        //损失曲线
        private void barBtnWorkingLossCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            if (_visual == null)
            {
                XtraMessageBox.Show("请选择节点后重试!");
                TipFormHelper.ShowWarn("请选择构件后重试!");
                return;
            }
            if (!(_visual is Yw.Model.HydroNodeInfo))
            HydroVisualInfo visual = _visual;
            if (_visual is HydroLinkInfo linkInfo)
            {
                XtraMessageBox.Show("请选择节点后重试!");
                return;
                var visualListHelper = GetVisualListHelper();
                visual = visualListHelper.GetVisual(linkInfo.StartCode);
            }
            var network = _hydroInfo.ToNetwork();
            var calcuResult = network.Calcu(Yw.EPAnet.CalcuMode.Simple);
            var allNodeList = network.GetAllNodes();
            var node = allNodeList.Find(x => x.Id == _visual.Code);
            var allPathList = network.AnalyzeDownstreamPath(node, calcuResult);
            var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, calcuResult);
            var allLossList = allEpaLossList?.Select(x => new HydroNodeLossViewModel(x)).ToList();
            var dlg = new HydroSingleLossCurveDlg();
            dlg.SetBindingData(allLossList);
            dlg.ShowDialog();
            var workingCheckedListHelper = GetWorkingCheckedListHelper();
            var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList();
            if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1)
            {
                var workingHelper = GetWorkingHelper();
                if (!workingHelper.Initialized)
                {
                    TipFormHelper.ShowWarn("请计算后重试!");
                    return;
                }
                var dlg = new HydroSingleWorkingLossCurveDlg();
                dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult, visual);
                dlg.ShowDialog();
            }
            else
            {
                var dlg = new HydroMultiWorkingLossCurveDlg();
                dlg.SetBindingData(_hydroInfo, allCheckedWorkingList, visual);
                dlg.ShowDialog();
            }
        }
        #endregion
        #region æŸå¤±ç»Ÿè®¡
        //损失统计
        private void barBtnWorkingLossStatistics_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
@@ -2320,15 +2336,45 @@
            }
        }
        #endregion
        #region ç»¼åˆåˆ†æž
        private void barBtnWorkingAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        //综合分析
        private async void barBtnWorkingAnaly_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
        {
            XtraMessageBox.Show("正在开发中,敬请期待!");
        }
            if (_visual == null)
            {
                TipFormHelper.ShowWarn("请选择构件后重试!");
                return;
            }
            HydroVisualInfo visual = _visual;
            if (_visual is HydroLinkInfo linkInfo)
            {
                var visualListHelper = GetVisualListHelper();
                visual = visualListHelper.GetVisual(linkInfo.StartCode);
            }
        #endregion
            var monitorHelper = GetMonitorHelper();
            var allMonitorList = await monitorHelper.Get();
            var workingCheckedListHelper = GetWorkingCheckedListHelper();
            var allCheckedWorkingList = workingCheckedListHelper.GetCheckedWorkingList();
            if (allCheckedWorkingList == null || allCheckedWorkingList.Count < 1)
            {
                var workingHelper = GetWorkingHelper();
                if (!workingHelper.Initialized)
                {
                    TipFormHelper.ShowWarn("请计算后重试!");
                    return;
                }
                var dlg = new SimulationSingleWorkingAnalyDlg();
                dlg.SetBindingData(workingHelper.HydroInfo, allMonitorList, workingHelper.Working, workingHelper.CalcuResult, visual);
                dlg.ShowDialog();
            }
            else
            {
                var dlg = new SimulationMultiWorkingAnalyDlg();
                dlg.SetBindingData(_hydroInfo, allMonitorList, allCheckedWorkingList, visual);
                dlg.ShowDialog();
            }
        }
        #endregion
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/08-working/XhsProjectSimulationWorkingPage.cs
@@ -1666,7 +1666,7 @@
                visual = visualListHelper.GetVisual(linkInfo.StartCode);
            }
            var dlg = new HydroSingleLossCurveDlg();
            var dlg = new HydroSingleWorkingLossCurveDlg();
            dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult, visual);
            dlg.ShowDialog();
        }
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,177 @@
namespace Yw.WinFrmUI
{
    partial class SimulationMultiWorkingEnergyDlg
    {
        /// <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();
            simulationSingleWorkingEnergyCtrl1 = new HStation.WinFrmUI.SimulationSingleWorkingEnergyCtrl();
            hydroWorkingListViewCtrl1 = new HydroWorkingListViewCtrl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            splitter = new DevExpress.XtraLayout.SplitterItem();
            itemForWorkingList = new DevExpress.XtraLayout.LayoutControlItem();
            itemForEnergy = new DevExpress.XtraLayout.LayoutControlItem();
            ((ISupportInitialize)ribbon).BeginInit();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)splitter).BeginInit();
            ((ISupportInitialize)itemForWorkingList).BeginInit();
            ((ISupportInitialize)itemForEnergy).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(1179, 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(simulationSingleWorkingEnergyCtrl1);
            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(1179, 573);
            layoutControl1.TabIndex = 1;
            layoutControl1.Text = "layoutControl1";
            //
            // simulationSingleWorkingEnergyCtrl1
            //
            simulationSingleWorkingEnergyCtrl1.Location = new Point(188, 17);
            simulationSingleWorkingEnergyCtrl1.Name = "simulationSingleWorkingEnergyCtrl1";
            simulationSingleWorkingEnergyCtrl1.Size = new Size(991, 556);
            simulationSingleWorkingEnergyCtrl1.TabIndex = 2;
            //
            // hydroWorkingListViewCtrl1
            //
            hydroWorkingListViewCtrl1.Location = new Point(2, 19);
            hydroWorkingListViewCtrl1.Name = "hydroWorkingListViewCtrl1";
            hydroWorkingListViewCtrl1.Size = new Size(174, 552);
            hydroWorkingListViewCtrl1.TabIndex = 0;
            //
            // Root
            //
            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            Root.GroupBordersVisible = false;
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { splitter, itemForWorkingList, itemForEnergy });
            Root.Name = "Root";
            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            Root.Size = new Size(1179, 573);
            Root.TextVisible = false;
            //
            // splitter
            //
            splitter.AllowHotTrack = true;
            splitter.Location = new Point(178, 0);
            splitter.Name = "splitter";
            splitter.Size = new Size(10, 573);
            //
            // itemForWorkingList
            //
            itemForWorkingList.Control = hydroWorkingListViewCtrl1;
            itemForWorkingList.Location = new Point(0, 0);
            itemForWorkingList.Name = "itemForWorkingList";
            itemForWorkingList.Size = new Size(178, 573);
            itemForWorkingList.Text = "工况列表";
            itemForWorkingList.TextLocation = DevExpress.Utils.Locations.Top;
            itemForWorkingList.TextSize = new Size(48, 14);
            //
            // itemForEnergy
            //
            itemForEnergy.Control = simulationSingleWorkingEnergyCtrl1;
            itemForEnergy.Location = new Point(188, 0);
            itemForEnergy.Name = "itemForEnergy";
            itemForEnergy.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            itemForEnergy.Size = new Size(991, 573);
            itemForEnergy.Text = "能耗分析";
            itemForEnergy.TextLocation = DevExpress.Utils.Locations.Top;
            itemForEnergy.TextSize = new Size(48, 14);
            //
            // SimulationMultiWorkingEnergyDlg
            //
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(1179, 605);
            Controls.Add(layoutControl1);
            Controls.Add(ribbon);
            FormBorderStyle = FormBorderStyle.SizableToolWindow;
            Name = "SimulationMultiWorkingEnergyDlg";
            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)splitter).EndInit();
            ((ISupportInitialize)itemForWorkingList).EndInit();
            ((ISupportInitialize)itemForEnergy).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.LayoutControlItem layoutControlItem2;
        private DevExpress.XtraLayout.SplitterItem splitter;
        private HStation.WinFrmUI.SimulationSingleWorkingEnergyCtrl simulationSingleWorkingEnergyCtrl1;
        private DevExpress.XtraLayout.LayoutControlItem itemForWorkingList;
        private DevExpress.XtraLayout.LayoutControlItem itemForEnergy;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
using DevExpress.Xpo.Helpers;
using Mapster;
using System.Windows.Media;
using Yw.EPAnet;
using Yw.Hydro;
using Yw.Vmo;
namespace Yw.WinFrmUI
{
    public partial class SimulationMultiWorkingEnergyDlg : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        public SimulationMultiWorkingEnergyDlg()
        {
            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.itemForWorkingList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
                this.splitter.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
                this.itemForEnergy.TextVisible = false;
                LoadWorkingEnergy(working);
            }
        }
        //工况选择改变
        private void HydroWorkingListViewCtrl1_SelectedChangedEvent(HydroWorkingVmo working)
        {
            if (working == null)
            {
                return;
            }
            LoadWorkingEnergy(working);
        }
        //加载工况能耗分析
        private void LoadWorkingEnergy(HydroWorkingVmo working)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            this.itemForEnergy.Text = working.Name;
            var hydroInfo = _hydroInfo.Adapt<Yw.Model.HydroModelInfo>();
            hydroInfo.UpdateWorkingInfo(working.WorkingInfo);
            var calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss);
            this.simulationSingleWorkingEnergyCtrl1.SetBindingData(hydroInfo, calcuResult);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.resx
copy from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.resx copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationMultiWorkingEnergyDlg.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.Designer.cs
ÎļþÃû´Ó WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.Designer.cs ÐÞ¸Ä
@@ -285,10 +285,8 @@
            // 
            layoutControlItem1.Control = hydroEnergyTotalViewCtrl1;
            layoutControlItem1.Location = new Point(0, 0);
            layoutControlItem1.MinSize = new Size(110, 77);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Size = new Size(196, 77);
            layoutControlItem1.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
            layoutControlItem1.TextSize = new Size(0, 0);
            layoutControlItem1.TextVisible = false;
            // 
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.cs
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyCtrl.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyDlg.Designer.cs
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyDlg.cs
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/SimulationSingleWorkingEnergyDlg.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationMultiWorkingAnalyDlg.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,207 @@
namespace Yw.WinFrmUI
{
    partial class SimulationMultiWorkingAnalyDlg
    {
        /// <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();
            simulationSingleWorkingAnalyCtrl1 = new HStation.WinFrmUI.SimulationSingleWorkingAnalyCtrl();
            hydroWorkingListViewCtrl1 = new HydroWorkingListViewCtrl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            splitter = new DevExpress.XtraLayout.SplitterItem();
            groupForAnaly = new DevExpress.XtraLayout.LayoutControlGroup();
            itemForAnaly = new DevExpress.XtraLayout.LayoutControlItem();
            groupForWorkingList = new DevExpress.XtraLayout.LayoutControlGroup();
            itemForWorkingList = new DevExpress.XtraLayout.LayoutControlItem();
            ((ISupportInitialize)ribbon).BeginInit();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)splitter).BeginInit();
            ((ISupportInitialize)groupForAnaly).BeginInit();
            ((ISupportInitialize)itemForAnaly).BeginInit();
            ((ISupportInitialize)groupForWorkingList).BeginInit();
            ((ISupportInitialize)itemForWorkingList).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(1179, 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(simulationSingleWorkingAnalyCtrl1);
            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(1179, 573);
            layoutControl1.TabIndex = 1;
            layoutControl1.Text = "layoutControl1";
            //
            // simulationSingleWorkingAnalyCtrl1
            //
            simulationSingleWorkingAnalyCtrl1.Location = new Point(193, 26);
            simulationSingleWorkingAnalyCtrl1.Name = "simulationSingleWorkingAnalyCtrl1";
            simulationSingleWorkingAnalyCtrl1.Size = new Size(981, 542);
            simulationSingleWorkingAnalyCtrl1.TabIndex = 2;
            //
            // hydroWorkingListViewCtrl1
            //
            hydroWorkingListViewCtrl1.Location = new Point(5, 26);
            hydroWorkingListViewCtrl1.Name = "hydroWorkingListViewCtrl1";
            hydroWorkingListViewCtrl1.Size = new Size(168, 542);
            hydroWorkingListViewCtrl1.TabIndex = 0;
            //
            // Root
            //
            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            Root.GroupBordersVisible = false;
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { splitter, groupForAnaly, groupForWorkingList });
            Root.Name = "Root";
            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            Root.Size = new Size(1179, 573);
            Root.TextVisible = false;
            //
            // splitter
            //
            splitter.AllowHotTrack = true;
            splitter.Location = new Point(178, 0);
            splitter.Name = "splitter";
            splitter.Size = new Size(10, 573);
            //
            // groupForAnaly
            //
            groupForAnaly.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204);
            groupForAnaly.AppearanceGroup.Options.UseBorderColor = true;
            groupForAnaly.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { itemForAnaly });
            groupForAnaly.Location = new Point(188, 0);
            groupForAnaly.Name = "groupForAnaly";
            groupForAnaly.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            groupForAnaly.Size = new Size(991, 573);
            groupForAnaly.Text = "综合分析";
            //
            // itemForAnaly
            //
            itemForAnaly.Control = simulationSingleWorkingAnalyCtrl1;
            itemForAnaly.Location = new Point(0, 0);
            itemForAnaly.Name = "itemForAnaly";
            itemForAnaly.Size = new Size(985, 546);
            itemForAnaly.Text = "综合分析";
            itemForAnaly.TextLocation = DevExpress.Utils.Locations.Top;
            itemForAnaly.TextSize = new Size(0, 0);
            itemForAnaly.TextVisible = false;
            //
            // groupForWorkingList
            //
            groupForWorkingList.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204);
            groupForWorkingList.AppearanceGroup.Options.UseBorderColor = true;
            groupForWorkingList.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { itemForWorkingList });
            groupForWorkingList.Location = new Point(0, 0);
            groupForWorkingList.Name = "groupForWorkingList";
            groupForWorkingList.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            groupForWorkingList.Size = new Size(178, 573);
            groupForWorkingList.Text = "工况列表";
            //
            // itemForWorkingList
            //
            itemForWorkingList.Control = hydroWorkingListViewCtrl1;
            itemForWorkingList.Location = new Point(0, 0);
            itemForWorkingList.Name = "itemForWorkingList";
            itemForWorkingList.Size = new Size(172, 546);
            itemForWorkingList.Text = "工况列表";
            itemForWorkingList.TextLocation = DevExpress.Utils.Locations.Top;
            itemForWorkingList.TextSize = new Size(0, 0);
            itemForWorkingList.TextVisible = false;
            //
            // SimulationMultiWorkingAnalyDlg
            //
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(1179, 605);
            Controls.Add(layoutControl1);
            Controls.Add(ribbon);
            FormBorderStyle = FormBorderStyle.SizableToolWindow;
            Name = "SimulationMultiWorkingAnalyDlg";
            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)splitter).EndInit();
            ((ISupportInitialize)groupForAnaly).EndInit();
            ((ISupportInitialize)itemForAnaly).EndInit();
            ((ISupportInitialize)groupForWorkingList).EndInit();
            ((ISupportInitialize)itemForWorkingList).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 HydroWorkingListViewCtrl hydroWorkingListViewCtrl1;
        private DevExpress.XtraLayout.LayoutControlGroup Root;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
        private DevExpress.XtraLayout.SplitterItem splitter;
        private DevExpress.XtraLayout.LayoutControlItem itemForWorkingList;
        private HStation.WinFrmUI.SimulationSingleWorkingAnalyCtrl simulationSingleWorkingAnalyCtrl1;
        private DevExpress.XtraLayout.LayoutControlItem itemForAnaly;
        private DevExpress.XtraLayout.LayoutControlGroup groupForAnaly;
        private DevExpress.XtraLayout.LayoutControlGroup groupForWorkingList;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationMultiWorkingAnalyDlg.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
using DevExpress.Xpo.Helpers;
using Mapster;
using System.Windows.Media;
using Yw.EPAnet;
using Yw.Hydro;
using Yw.Vmo;
namespace Yw.WinFrmUI
{
    public partial class SimulationMultiWorkingAnalyDlg : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        public SimulationMultiWorkingAnalyDlg()
        {
            InitializeComponent();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
            this.layoutControl1.SetupLayoutControl();
            this.hydroWorkingListViewCtrl1.SelectedChangedEvent += HydroWorkingListViewCtrl1_SelectedChangedEvent;
        }
        private Yw.Model.HydroModelInfo _hydroInfo = null;//水力信息
        private List<HydroMonitorVmo> _allMonitorList = null;//所有监测点列表
        private Yw.Model.HydroVisualInfo _visual = null;//可见构件
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                List<HydroMonitorVmo> allMonitorList,
                List<HydroWorkingVmo> allWorkingList,
                Yw.Model.HydroVisualInfo visual
            )
        {
            if (hydroInfo == null)
            {
                return;
            }
            if (allWorkingList == null || allWorkingList.Count < 1)
            {
                return;
            }
            if (visual == null)
            {
                return;
            }
            _hydroInfo = hydroInfo;
            _allMonitorList = allMonitorList;
            _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;
                this.groupForAnaly.GroupBordersVisible = false;
                LoadWorkingAnaly(working);
            }
        }
        //工况选择改变
        private void HydroWorkingListViewCtrl1_SelectedChangedEvent(HydroWorkingVmo working)
        {
            if (working == null)
            {
                return;
            }
            LoadWorkingAnaly(working);
        }
        //加载工况综合分析
        private void LoadWorkingAnaly(HydroWorkingVmo working)
        {
            if (_hydroInfo == null)
            {
                return;
            }
            if (_visual == null)
            {
                return;
            }
            this.groupForAnaly.Text = working.Name;
            var hydroInfo = _hydroInfo.Adapt<Yw.Model.HydroModelInfo>();
            hydroInfo.UpdateWorkingInfo(working.WorkingInfo);
            var calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss);
            this.simulationSingleWorkingAnalyCtrl1.SetBindingData(hydroInfo, _allMonitorList, working, calcuResult, _visual);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationMultiWorkingAnalyDlg.resx
copy from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.resx copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationMultiWorkingAnalyDlg.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,152 @@
namespace HStation.WinFrmUI
{
    partial class SimulationSingleWorkingAnalyCtrl
    {
        /// <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()
        {
            tabPane1 = new DevExpress.XtraBars.Navigation.TabPane();
            pageForEvaluation = new DevExpress.XtraBars.Navigation.TabNavigationPage();
            pageForEnergy = new DevExpress.XtraBars.Navigation.TabNavigationPage();
            pageForLossCurve = new DevExpress.XtraBars.Navigation.TabNavigationPage();
            pageForLossStatistics = new DevExpress.XtraBars.Navigation.TabNavigationPage();
            hydroSingleWorkingEvaluationCtrl1 = new HydroSingleWorkingEvaluationCtrl();
            simulationSingleWorkingEnergyCtrl1 = new SimulationSingleWorkingEnergyCtrl();
            hydroSingleWorkingLossCurveCtrl1 = new HydroSingleWorkingLossCurveCtrl();
            hydroSingleWorkingLossStatisticsCtrl1 = new HydroSingleWorkingLossStatisticsCtrl();
            ((ISupportInitialize)tabPane1).BeginInit();
            tabPane1.SuspendLayout();
            pageForEvaluation.SuspendLayout();
            pageForEnergy.SuspendLayout();
            pageForLossCurve.SuspendLayout();
            pageForLossStatistics.SuspendLayout();
            SuspendLayout();
            //
            // tabPane1
            //
            tabPane1.Controls.Add(pageForEvaluation);
            tabPane1.Controls.Add(pageForEnergy);
            tabPane1.Controls.Add(pageForLossCurve);
            tabPane1.Controls.Add(pageForLossStatistics);
            tabPane1.Dock = DockStyle.Fill;
            tabPane1.Location = new Point(0, 0);
            tabPane1.Name = "tabPane1";
            tabPane1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { pageForEvaluation, pageForEnergy, pageForLossCurve, pageForLossStatistics });
            tabPane1.RegularSize = new Size(984, 622);
            tabPane1.SelectedPage = pageForEvaluation;
            tabPane1.Size = new Size(984, 622);
            tabPane1.TabIndex = 0;
            tabPane1.Text = "tabPane1";
            //
            // pageForEvaluation
            //
            pageForEvaluation.Caption = "精度评估";
            pageForEvaluation.Controls.Add(hydroSingleWorkingEvaluationCtrl1);
            pageForEvaluation.Name = "pageForEvaluation";
            pageForEvaluation.Size = new Size(984, 589);
            //
            // pageForEnergy
            //
            pageForEnergy.Caption = "能耗分析";
            pageForEnergy.Controls.Add(simulationSingleWorkingEnergyCtrl1);
            pageForEnergy.Name = "pageForEnergy";
            pageForEnergy.Size = new Size(984, 589);
            //
            // pageForLossCurve
            //
            pageForLossCurve.Caption = "损失曲线";
            pageForLossCurve.Controls.Add(hydroSingleWorkingLossCurveCtrl1);
            pageForLossCurve.Name = "pageForLossCurve";
            pageForLossCurve.Size = new Size(984, 589);
            //
            // pageForLossStatistics
            //
            pageForLossStatistics.Caption = "损失统计";
            pageForLossStatistics.Controls.Add(hydroSingleWorkingLossStatisticsCtrl1);
            pageForLossStatistics.Name = "pageForLossStatistics";
            pageForLossStatistics.Size = new Size(984, 589);
            //
            // hydroSingleWorkingEvaluationCtrl1
            //
            hydroSingleWorkingEvaluationCtrl1.Dock = DockStyle.Fill;
            hydroSingleWorkingEvaluationCtrl1.Location = new Point(0, 0);
            hydroSingleWorkingEvaluationCtrl1.Name = "hydroSingleWorkingEvaluationCtrl1";
            hydroSingleWorkingEvaluationCtrl1.Size = new Size(984, 589);
            hydroSingleWorkingEvaluationCtrl1.TabIndex = 0;
            //
            // simulationSingleWorkingEnergyCtrl1
            //
            simulationSingleWorkingEnergyCtrl1.Dock = DockStyle.Fill;
            simulationSingleWorkingEnergyCtrl1.Location = new Point(0, 0);
            simulationSingleWorkingEnergyCtrl1.Name = "simulationSingleWorkingEnergyCtrl1";
            simulationSingleWorkingEnergyCtrl1.Size = new Size(984, 589);
            simulationSingleWorkingEnergyCtrl1.TabIndex = 0;
            //
            // hydroSingleWorkingLossCurveCtrl1
            //
            hydroSingleWorkingLossCurveCtrl1.Dock = DockStyle.Fill;
            hydroSingleWorkingLossCurveCtrl1.Location = new Point(0, 0);
            hydroSingleWorkingLossCurveCtrl1.Name = "hydroSingleWorkingLossCurveCtrl1";
            hydroSingleWorkingLossCurveCtrl1.Size = new Size(984, 589);
            hydroSingleWorkingLossCurveCtrl1.TabIndex = 0;
            //
            // hydroSingleWorkingLossStatisticsCtrl1
            //
            hydroSingleWorkingLossStatisticsCtrl1.Dock = DockStyle.Fill;
            hydroSingleWorkingLossStatisticsCtrl1.Location = new Point(0, 0);
            hydroSingleWorkingLossStatisticsCtrl1.Name = "hydroSingleWorkingLossStatisticsCtrl1";
            hydroSingleWorkingLossStatisticsCtrl1.Size = new Size(984, 589);
            hydroSingleWorkingLossStatisticsCtrl1.TabIndex = 0;
            //
            // SimulationSingleWorkingAnalyCtrl
            //
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(tabPane1);
            Name = "SimulationSingleWorkingAnalyCtrl";
            Size = new Size(984, 622);
            ((ISupportInitialize)tabPane1).EndInit();
            tabPane1.ResumeLayout(false);
            pageForEvaluation.ResumeLayout(false);
            pageForEnergy.ResumeLayout(false);
            pageForLossCurve.ResumeLayout(false);
            pageForLossStatistics.ResumeLayout(false);
            ResumeLayout(false);
        }
        #endregion
        private DevExpress.XtraBars.Navigation.TabPane tabPane1;
        private DevExpress.XtraBars.Navigation.TabNavigationPage pageForEvaluation;
        private DevExpress.XtraBars.Navigation.TabNavigationPage pageForEnergy;
        private DevExpress.XtraBars.Navigation.TabNavigationPage pageForLossCurve;
        private HydroSingleWorkingEvaluationCtrl hydroSingleWorkingEvaluationCtrl1;
        private SimulationSingleWorkingEnergyCtrl simulationSingleWorkingEnergyCtrl1;
        private HydroSingleWorkingLossCurveCtrl hydroSingleWorkingLossCurveCtrl1;
        private DevExpress.XtraBars.Navigation.TabNavigationPage pageForLossStatistics;
        private HydroSingleWorkingLossStatisticsCtrl hydroSingleWorkingLossStatisticsCtrl1;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
using DevExpress.XtraEditors;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Yw.Vmo;
namespace HStation.WinFrmUI
{
    public partial class SimulationSingleWorkingAnalyCtrl : DevExpress.XtraEditors.XtraUserControl
    {
        public SimulationSingleWorkingAnalyCtrl()
        {
            InitializeComponent();
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                List<HydroMonitorVmo> allMonitorList,
                HydroWorkingVmo working,
                HydroCalcuResult calcuResult,
                Yw.Model.HydroVisualInfo visual
            )
        {
            this.hydroSingleWorkingEvaluationCtrl1.SetBindingData(hydroInfo, allMonitorList, working, calcuResult);
            this.simulationSingleWorkingEnergyCtrl1.SetBindingData(hydroInfo, calcuResult);
            this.hydroSingleWorkingLossCurveCtrl1.SetBindingData(hydroInfo, calcuResult, visual);
            this.hydroSingleWorkingLossStatisticsCtrl1.SetBindingData(hydroInfo, calcuResult);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.resx
copy from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyCtrl.resx copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyCtrl.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyDlg.Designer.cs
copy from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.Designer.cs copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyDlg.Designer.cs
Îļþ´Ó WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.Designer.cs ¸´ÖÆ
@@ -1,6 +1,6 @@
namespace Yw.WinFrmUI
namespace HStation.WinFrmUI
{
    partial class HydroSingleLossCurveDlg
    partial class SimulationSingleWorkingAnalyDlg
    {
        /// <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();
            hydroSingleLossCurveCtrl1 = new HydroSingleLossCurveCtrl();
            simulationSingleWorkingAnalyCtrl1 = new SimulationSingleWorkingAnalyCtrl();
            ((ISupportInitialize)ribbon).BeginInit();
            SuspendLayout();
            // 
@@ -45,7 +45,7 @@
            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(886, 32);
            ribbon.Size = new Size(1039, 32);
            // 
            // ribbonPage1
            // 
@@ -58,27 +58,27 @@
            ribbonPageGroup1.Name = "ribbonPageGroup1";
            ribbonPageGroup1.Text = "ribbonPageGroup1";
            // 
            // hydroSingleLossCurveCtrl1
            // simulationSingleWorkingAnalyCtrl1
            // 
            hydroSingleLossCurveCtrl1.Dock = DockStyle.Fill;
            hydroSingleLossCurveCtrl1.Location = new Point(0, 32);
            hydroSingleLossCurveCtrl1.Name = "hydroSingleLossCurveCtrl1";
            hydroSingleLossCurveCtrl1.Size = new Size(886, 555);
            hydroSingleLossCurveCtrl1.TabIndex = 4;
            simulationSingleWorkingAnalyCtrl1.Dock = DockStyle.Fill;
            simulationSingleWorkingAnalyCtrl1.Location = new Point(0, 32);
            simulationSingleWorkingAnalyCtrl1.Name = "simulationSingleWorkingAnalyCtrl1";
            simulationSingleWorkingAnalyCtrl1.Size = new Size(1039, 631);
            simulationSingleWorkingAnalyCtrl1.TabIndex = 5;
            // 
            // HydroSingleLossCurveDlg
            // SimulationSingleWorkingAnalyDlg
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(886, 587);
            Controls.Add(hydroSingleLossCurveCtrl1);
            ClientSize = new Size(1039, 663);
            Controls.Add(simulationSingleWorkingAnalyCtrl1);
            Controls.Add(ribbon);
            FormBorderStyle = FormBorderStyle.SizableToolWindow;
            Name = "HydroSingleLossCurveDlg";
            Name = "SimulationSingleWorkingAnalyDlg";
            Ribbon = ribbon;
            RibbonVisibility = DevExpress.XtraBars.Ribbon.RibbonVisibility.Hidden;
            StartPosition = FormStartPosition.CenterParent;
            Text = "损失曲线";
            Text = "综合分析";
            ((ISupportInitialize)ribbon).EndInit();
            ResumeLayout(false);
            PerformLayout();
@@ -89,6 +89,6 @@
        private DevExpress.XtraBars.Ribbon.RibbonControl ribbon;
        private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1;
        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
        private HydroSingleLossCurveCtrl hydroSingleLossCurveCtrl1;
        private SimulationSingleWorkingAnalyCtrl simulationSingleWorkingAnalyCtrl1;
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyDlg.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
using Yw.Vmo;
namespace HStation.WinFrmUI
{
    public partial class SimulationSingleWorkingAnalyDlg : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        public SimulationSingleWorkingAnalyDlg()
        {
            InitializeComponent();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                List<HydroMonitorVmo> allMonitorList,
                HydroWorkingVmo working,
                HydroCalcuResult calcuResult,
                Yw.Model.HydroVisualInfo visual
            )
        {
            this.simulationSingleWorkingAnalyCtrl1.SetBindingData(hydroInfo, allMonitorList, working, calcuResult, visual);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyDlg.resx
copy from WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/09-energy/01-single/SimulationSingleWorkingEnergyDlg.resx copy to WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/10-analy/SimulationSingleWorkingAnalyDlg.resx
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj
@@ -190,10 +190,19 @@
    <Compile Update="03-simulation\08-working\XhsProjectSimulationWorkingPage.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\09-energy\SimulationMultiWorkingEnergyDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="03-simulation\10-analy\SimulationMultiWorkingAnalyDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="03-simulation\10-analy\SimulationSingleWorkingAnalyDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="04-pump\03-calc\SinglePumpCalcCtrl.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="03-simulation\09-energy\01-single\SimulationSingleWorkingEnergyDlg.cs">
    <Compile Update="03-simulation\09-energy\SimulationSingleWorkingEnergyDlg.cs">
      <SubType>Form</SubType>
    </Compile>
    <Compile Update="Properties\Resources.Designer.cs">
WinFrmUI/HStation.WinFrmUI.Xhs.Core/HStation.WinFrmUI.Xhs.Core.csproj.user
@@ -211,7 +211,10 @@
    <Compile Update="03-simulation\07-l3d\XhsProjectSimulationL3dCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\09-energy\01-single\SimulationSingleWorkingEnergyCtrl.cs">
    <Compile Update="03-simulation\09-energy\SimulationSingleWorkingEnergyCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\10-analy\SimulationSingleWorkingAnalyCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="03-simulation\XhsProjectSimulationMgrPage.cs">
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/04-single/HydroSingleWorkingEvaluationCtrl.cs
@@ -17,6 +17,21 @@
        /// </summary>
        public void SetBindingData
            (
               Yw.Model.HydroModelInfo hydroInfo,
                List<HydroMonitorVmo> allMonitorList,
                HydroWorkingVmo working,
                HydroCalcuResult calcuResult
            )
        {
            var allWorkingMonitorList = JsonHelper.Json2Object<List<HydroWorkingMonitorViewModel>>(working?.WorkingInfo);
            SetBindingData(hydroInfo, allMonitorList, allWorkingMonitorList, calcuResult);
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                List<HydroMonitorVmo> allMonitorList,
                List<HydroWorkingMonitorViewModel> allWorkingMonitorList,
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,204 @@
namespace Yw.WinFrmUI
{
    partial class HydroMultiWorkingLossCurveDlg
    {
        /// <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();
            hydroWorkingListViewCtrl1 = new HydroWorkingListViewCtrl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            groupForWorkingList = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            groupForLossCurve = new DevExpress.XtraLayout.LayoutControlGroup();
            splitter = new DevExpress.XtraLayout.SplitterItem();
            hydroSingleWorkingLossCurveCtrl1 = new HydroSingleWorkingLossCurveCtrl();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            ((ISupportInitialize)ribbon).BeginInit();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)groupForWorkingList).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)groupForLossCurve).BeginInit();
            ((ISupportInitialize)splitter).BeginInit();
            ((ISupportInitialize)layoutControlItem3).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(hydroSingleWorkingLossCurveCtrl1);
            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";
            //
            // hydroWorkingListViewCtrl1
            //
            hydroWorkingListViewCtrl1.Location = new Point(5, 26);
            hydroWorkingListViewCtrl1.Name = "hydroWorkingListViewCtrl1";
            hydroWorkingListViewCtrl1.Size = new Size(155, 542);
            hydroWorkingListViewCtrl1.TabIndex = 0;
            //
            // Root
            //
            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
            Root.GroupBordersVisible = false;
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { groupForWorkingList, groupForLossCurve, splitter });
            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.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204);
            groupForWorkingList.AppearanceGroup.Options.UseBorderColor = true;
            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.Size = new Size(159, 546);
            layoutControlItem1.TextSize = new Size(0, 0);
            layoutControlItem1.TextVisible = false;
            //
            // groupForLossCurve
            //
            groupForLossCurve.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204);
            groupForLossCurve.AppearanceGroup.Options.UseBorderColor = true;
            groupForLossCurve.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem3 });
            groupForLossCurve.Location = new Point(175, 0);
            groupForLossCurve.Name = "groupForLossCurve";
            groupForLossCurve.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            groupForLossCurve.Size = new Size(819, 573);
            groupForLossCurve.Text = "损失曲线";
            //
            // splitter
            //
            splitter.AllowHotTrack = true;
            splitter.Location = new Point(165, 0);
            splitter.Name = "splitter";
            splitter.Size = new Size(10, 573);
            //
            // hydroSingleWorkingLossCurveCtrl1
            //
            hydroSingleWorkingLossCurveCtrl1.Location = new Point(180, 26);
            hydroSingleWorkingLossCurveCtrl1.Name = "hydroSingleWorkingLossCurveCtrl1";
            hydroSingleWorkingLossCurveCtrl1.Size = new Size(809, 542);
            hydroSingleWorkingLossCurveCtrl1.TabIndex = 4;
            //
            // layoutControlItem3
            //
            layoutControlItem3.Control = hydroSingleWorkingLossCurveCtrl1;
            layoutControlItem3.Location = new Point(0, 0);
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.Size = new Size(813, 546);
            layoutControlItem3.TextSize = new Size(0, 0);
            layoutControlItem3.TextVisible = false;
            //
            // HydroMultiWorkingLossCurveDlg
            //
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(994, 605);
            Controls.Add(layoutControl1);
            Controls.Add(ribbon);
            FormBorderStyle = FormBorderStyle.SizableToolWindow;
            Name = "HydroMultiWorkingLossCurveDlg";
            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)groupForLossCurve).EndInit();
            ((ISupportInitialize)splitter).EndInit();
            ((ISupportInitialize)layoutControlItem3).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.LayoutControlGroup groupForLossCurve;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
        private DevExpress.XtraLayout.SplitterItem splitter;
        private HydroSingleWorkingLossCurveCtrl hydroSingleWorkingLossCurveCtrl1;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem3;
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
using DevExpress.Xpo.Helpers;
using Mapster;
using System.Windows.Media;
using Yw.EPAnet;
using Yw.Hydro;
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;
        }
        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;
                this.groupForLossCurve.GroupBordersVisible = false;
                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;
            }
            this.groupForLossCurve.Text = working.Name;
            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);
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.resx
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.cs
ÎļþÒÑɾ³ý
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs
ÎļþÃû´Ó WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.Designer.cs ÐÞ¸Ä
@@ -1,6 +1,6 @@
namespace Yw.WinFrmUI
{
    partial class HydroSingleLossCurveCtrl
    partial class HydroSingleWorkingLossCurveCtrl
    {
        /// <summary> 
        /// Required designer variable.
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.cs
ÎļþÃû´Ó WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.cs ÐÞ¸Ä
@@ -11,12 +11,14 @@
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Yw.Hydro;
using Yw.EPAnet;
namespace Yw.WinFrmUI
{
    public partial class HydroSingleLossCurveCtrl : DevExpress.XtraEditors.XtraUserControl
    public partial class HydroSingleWorkingLossCurveCtrl : DevExpress.XtraEditors.XtraUserControl
    {
        public HydroSingleLossCurveCtrl()
        public HydroSingleWorkingLossCurveCtrl()
        {
            InitializeComponent();
        }
@@ -24,6 +26,36 @@
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                HydroCalcuResult calcuResult,
                Yw.Model.HydroVisualInfo visual
            )
        {
            if (hydroInfo == null)
            {
                return;
            }
            var network = hydroInfo.ToNetwork();
            if (network == null)
            {
                return;
            }
            var node = network.GetAllNodes()?.Find(x => x.Id == visual.Code);
            if (node == null)
            {
                return;
            }
            var allPathList = network.AnalyzeDownstreamPath(node, calcuResult.EPAnetCalcuResult);
            var allEpaLossList = network.GetChartNodeByPathLinks(allPathList, calcuResult.EPAnetCalcuResult);
            var allNodeLossList = allEpaLossList?.Select(x => new HydroNodeLossViewModel(x)).ToList();
            SetBindingData(allNodeLossList);
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(List<HydroNodeLossViewModel> allNodeLossList)
        {
            AutoFitAxises(allNodeLossList);
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.resx
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.Designer.cs
ÎļþÃû´Ó WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.Designer.cs ÐÞ¸Ä
@@ -1,6 +1,6 @@
namespace Yw.WinFrmUI
{
    partial class HydroSingleLossCurveDlg
    partial class HydroSingleWorkingLossCurveDlg
    {
        /// <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();
            hydroSingleLossCurveCtrl1 = new HydroSingleLossCurveCtrl();
            hydroSingleWorkingLossCurveCtrl1 = new HydroSingleWorkingLossCurveCtrl();
            ((ISupportInitialize)ribbon).BeginInit();
            SuspendLayout();
            // 
@@ -60,18 +60,18 @@
            // 
            // hydroSingleLossCurveCtrl1
            // 
            hydroSingleLossCurveCtrl1.Dock = DockStyle.Fill;
            hydroSingleLossCurveCtrl1.Location = new Point(0, 32);
            hydroSingleLossCurveCtrl1.Name = "hydroSingleLossCurveCtrl1";
            hydroSingleLossCurveCtrl1.Size = new Size(886, 555);
            hydroSingleLossCurveCtrl1.TabIndex = 4;
            hydroSingleWorkingLossCurveCtrl1.Dock = DockStyle.Fill;
            hydroSingleWorkingLossCurveCtrl1.Location = new Point(0, 32);
            hydroSingleWorkingLossCurveCtrl1.Name = "hydroSingleLossCurveCtrl1";
            hydroSingleWorkingLossCurveCtrl1.Size = new Size(886, 555);
            hydroSingleWorkingLossCurveCtrl1.TabIndex = 4;
            // 
            // HydroSingleLossCurveDlg
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(886, 587);
            Controls.Add(hydroSingleLossCurveCtrl1);
            Controls.Add(hydroSingleWorkingLossCurveCtrl1);
            Controls.Add(ribbon);
            FormBorderStyle = FormBorderStyle.SizableToolWindow;
            Name = "HydroSingleLossCurveDlg";
@@ -89,6 +89,6 @@
        private DevExpress.XtraBars.Ribbon.RibbonControl ribbon;
        private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1;
        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
        private HydroSingleLossCurveCtrl hydroSingleLossCurveCtrl1;
        private HydroSingleWorkingLossCurveCtrl hydroSingleWorkingLossCurveCtrl1;
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
using Yw.Hydro;
using Yw.EPAnet;
namespace Yw.WinFrmUI
{
    public partial class HydroSingleWorkingLossCurveDlg : DevExpress.XtraBars.Ribbon.RibbonForm
    {
        public HydroSingleWorkingLossCurveDlg()
        {
            InitializeComponent();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
        }
        /// <summary>
        /// ç»‘定数据
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, HydroCalcuResult calcuResult, Yw.Model.HydroVisualInfo visual)
        {
            this.hydroSingleWorkingLossCurveCtrl1.SetBindingData(hydroInfo, calcuResult, visual);
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.resx
copy from WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveDlg.resx copy to WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.resx
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.cs
@@ -64,10 +64,8 @@
            this.groupForLossStatistics.Text = working.Name;
            var hydroInfo = _hydroInfo.Adapt<Yw.Model.HydroModelInfo>();
            hydroInfo.UpdateWorkingInfo(working.WorkingInfo);
            var network = hydroInfo.ToNetwork();
            var calcuResult = network.Calcu(Yw.EPAnet.CalcuMode.MinorLoss);
            var allEnergyList = network.AnalyzeEnergy(calcuResult);
            this.hydroSingleWorkingLossStatisticsCtrl1.SetBindingData(hydroInfo, allEnergyList);
            var calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss);
            this.hydroSingleWorkingLossStatisticsCtrl1.SetBindingData(hydroInfo, calcuResult);
        }
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.cs
@@ -1,4 +1,6 @@
namespace Yw.WinFrmUI
using Yw.Hydro;
using Yw.EPAnet;
namespace Yw.WinFrmUI
{
    public partial class HydroSingleWorkingLossStatisticsCtrl : DevExpress.XtraEditors.XtraUserControl
    {
@@ -8,6 +10,31 @@
            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, allEnergyList);
        }
        /// <summary>
        /// 
        /// </summary>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsDlg.cs
@@ -33,19 +33,7 @@
            {
                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, allEnergyList);
            this.hydroSingleWorkingLossStatisticsCtrl1.SetBindingData(hydroInfo, calcuResult);
        }
        /// <summary>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj
@@ -194,7 +194,10 @@
        <Compile Update="17-warning\HydroCalcuWarningCtrl.cs">
          <SubType>UserControl</SubType>
        </Compile>
        <Compile Update="18-loss\01-curve\HydroSingleLossCurveDlg.cs">
        <Compile Update="18-loss\01-curve\HydroMultiWorkingLossCurveDlg.cs">
          <SubType>Form</SubType>
        </Compile>
        <Compile Update="18-loss\01-curve\HydroSingleWorkingLossCurveDlg.cs">
          <SubType>Form</SubType>
        </Compile>
        <Compile Update="18-loss\03-statistics\HydroMultiWorkingLossStatisticsDlg.cs">
WinFrmUI/Yw.WinFrmUI.Hydro.Core/Yw.WinFrmUI.Hydro.Core.csproj.user
@@ -58,7 +58,7 @@
    <Compile Update="16-evaluation\03-total\HydroWorkingTotalEvaluationCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="18-loss\01-curve\HydroSingleLossCurveCtrl.cs">
    <Compile Update="18-loss\01-curve\HydroSingleWorkingLossCurveCtrl.cs">
      <SubType>UserControl</SubType>
    </Compile>
    <Compile Update="18-loss\02-scale\HydroCatalogLossScaleChartCtrl.cs">