lixiaojun
2024-12-10 caf081a70d327cfb455b2ddcd5edc2e0acb2d3bf
工况分析优化
已修改27个文件
798 ■■■■■ 文件已修改
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/02-list/SimulationVisualListHelper.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/10-working/07-list/HydroWorkingListViewCtrl.Designer.cs 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/10-working/07-list/HydroWorkingListViewCtrl.cs 36 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/10-working/07-list/HydroWorkingListViewCtrl.resx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/01-list/HydroWorkingMonitorEvaluationListCtrl.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/02-item/HydroWorkingItemEvaluationCtrl.cs 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/03-total/HydroWorkingTotalEvaluationCtrl.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/04-single/HydroSingleWorkingEvaluationCtrl.Designer.cs 146 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/05-multi/HydroMultiWorkingEvaluationDlg.Designer.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/05-multi/HydroMultiWorkingEvaluationDlg.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/00-core/HydroLossCurvePointVieModel.cs 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.Designer.cs 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.cs 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroNodeLossViewModel.cs 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.cs 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.resx 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.cs 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.cs 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.Designer.cs 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.cs 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.Designer.cs 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.cs 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/02-visual/02-list/SimulationVisualListHelper.cs
@@ -88,6 +88,10 @@
            {
                return default;
            }
            if (string.IsNullOrEmpty(code))
            {
                return default;
            }
            if (_dict.ContainsKey(code))
            {
                return _dict[code];
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/00-core/04-monitor/02-value/SimulationMonitorValueHelper.cs
@@ -81,6 +81,24 @@
            });
        }
        /// <summary>
        /// 重置
        /// </summary>
        public async void Reset(List<HydroWorkingMonitorViewModel> allWorkingMonitorList)
        {
            var allMonitorValueList = await Get();
            allMonitorValueList.UpdateMonitorValue(allWorkingMonitorList);
        }
        /// <summary>
        /// 重置
        /// </summary>
        public async void Reset(string monitorInfo)
        {
            var allMonitorValueList = await Get();
            allMonitorValueList.UpdateMonitorValue(monitorInfo);
        }
    }
}
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/05-function/SimulationFunctionCtrl.cs
@@ -87,6 +87,7 @@
                    });
                }
            });
            await ShowInfo();
            overlay.Close();
        }
@@ -523,10 +524,8 @@
            this.ProjectSiteWorkingRemoveEvent?.Invoke(_project, _projectSite, scheme, working);
        }
        #endregion
        //项目站概况
        private async void elementProjectSiteInfo_Click(object sender, EventArgs e)
        //显示信息
        private async Task ShowInfo()
        {
            if (_project == null)
            {
@@ -544,6 +543,14 @@
            this.ShowProjectSiteInfoEvent?.Invoke(_project, _projectSite, hydroInfo, this.svgImg32[0]);
        }
        #endregion
        //项目站概况
        private async void elementProjectSiteInfo_Click(object sender, EventArgs e)
        {
            await ShowInfo();
        }
        //项目站水力模拟
        private async void elementProjectSiteSimulation_Click(object sender, EventArgs e)
        {
WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -53,6 +53,7 @@
            _scheme = scheme;
            _hydroInfo = hydroInfo;
            _allWorkingCheckedListDict = allWorkingCheckedListDict;
            ResetMonitorValue();
        }
        /// <summary>
@@ -399,6 +400,13 @@
            }
        }
        //选择构件
        private void SelectVisual(string code, eVisualSource source)
        {
            var visual = GetVisual(code);
            SelectVisual(visual, source);
        }
        #endregion
        #region 构件明细
@@ -417,6 +425,14 @@
                _visualListHelper.InitialData(_hydroInfo);
            }
            return _visualListHelper;
        }
        //获取可见构件
        private Yw.Model.HydroVisualInfo GetVisual(string code)
        {
            var helper = GetVisualListHelper();
            var visual = helper.GetVisual(code);
            return visual;
        }
        //获取可见列表
@@ -1547,6 +1563,19 @@
            return _monitorValueHelper;
        }
        //重置
        private void ResetMonitorValue()
        {
            var allWorkingList = GetWorkingList();
            var working = allWorkingList?.Last(x => !string.IsNullOrEmpty(x.MonitorInfo));
            if (working != null)
            {
                var helper = GetMonitorValueHelper();
                helper.Reset(working.MonitorInfo);
            }
        }
        #endregion
        #region 监测值控件
@@ -2273,6 +2302,13 @@
            return _workingCheckedListHelper;
        }
        //获取工况列表
        private List<HydroWorkingVmo> GetWorkingList()
        {
            var helper = GetWorkingCheckedListHelper();
            return helper.GetWorkingList();
        }
        //更新工况选择列表
        public void UpdateWorkingCheckedList(HydroWorkingVmo working)
        {
@@ -2422,12 +2458,20 @@
                    return;
                }
                var dlg = new HydroSingleWorkingLossCurveDlg();
                dlg.HydroClickEvent += (code) =>
                {
                    SelectVisual(code, eVisualSource.None);
                };
                dlg.SetBindingData(workingHelper.HydroInfo, workingHelper.CalcuResult, visual);
                dlg.ShowDialog();
            }
            else
            {
                var dlg = new HydroMultiWorkingLossCurveDlg();
                dlg.HydroClickEvent += (code) =>
                {
                    SelectVisual(code, eVisualSource.None);
                };
                dlg.SetBindingData(_hydroInfo, allCheckedWorkingList, visual);
                dlg.ShowDialog();
            }
@@ -2463,8 +2507,27 @@
        {
            if (_visual == null)
            {
                TipFormHelper.ShowWarn("请选择构件后重试!");
                return;
                var sources = GetSourceList();
                if (sources != null)
                {
                    if (sources.Count == 1)
                    {
                        SelectVisual(sources[0], eVisualSource.None);
                    }
                    else
                    {
                        var source = sources.FirstOrDefault(x => x.Flags.Contains(HStation.Xhs.Flags.进口));
                        if (source != null)
                        {
                            SelectVisual(source, eVisualSource.None);
                        }
                    }
                }
                if (_visual == null)
                {
                    TipFormHelper.ShowWarn("请选择构件后重试!");
                    return;
                }
            }
            HydroVisualInfo visual = _visual;
            if (_visual is HydroLinkInfo linkInfo)
WinFrmUI/Yw.WinFrmUI.Hydro.Core/10-working/07-list/HydroWorkingListViewCtrl.Designer.cs
@@ -33,21 +33,26 @@
            DevExpress.XtraEditors.TableLayout.TableColumnDefinition tableColumnDefinition1 = new DevExpress.XtraEditors.TableLayout.TableColumnDefinition();
            DevExpress.XtraEditors.TableLayout.TemplatedItemElement templatedItemElement1 = new DevExpress.XtraEditors.TableLayout.TemplatedItemElement();
            DevExpress.XtraEditors.TableLayout.TableRowDefinition tableRowDefinition1 = new DevExpress.XtraEditors.TableLayout.TableRowDefinition();
            listBoxControl1 = new DevExpress.XtraEditors.ListBoxControl();
            hydroWorkingListItemViewModelBindingSource = new BindingSource(components);
            ((ISupportInitialize)listBoxControl1).BeginInit();
            imageListBoxControl1 = new DevExpress.XtraEditors.ImageListBoxControl();
            toolTipController1 = new DevExpress.Utils.ToolTipController(components);
            ((ISupportInitialize)hydroWorkingListItemViewModelBindingSource).BeginInit();
            ((ISupportInitialize)imageListBoxControl1).BeginInit();
            SuspendLayout();
            // 
            // listBoxControl1
            // hydroWorkingListItemViewModelBindingSource
            // 
            listBoxControl1.DataSource = hydroWorkingListItemViewModelBindingSource;
            listBoxControl1.Dock = DockStyle.Fill;
            listBoxControl1.ItemHeight = 30;
            listBoxControl1.Location = new Point(0, 0);
            listBoxControl1.Name = "listBoxControl1";
            listBoxControl1.Size = new Size(267, 669);
            listBoxControl1.TabIndex = 0;
            hydroWorkingListItemViewModelBindingSource.DataSource = typeof(HydroWorkingListItemViewModel);
            //
            // imageListBoxControl1
            //
            imageListBoxControl1.DataSource = hydroWorkingListItemViewModelBindingSource;
            imageListBoxControl1.Dock = DockStyle.Fill;
            imageListBoxControl1.ItemHeight = 32;
            imageListBoxControl1.Location = new Point(0, 0);
            imageListBoxControl1.Name = "imageListBoxControl1";
            imageListBoxControl1.Size = new Size(267, 669);
            imageListBoxControl1.TabIndex = 0;
            itemTemplateBase1.Columns.Add(tableColumnDefinition1);
            templatedItemElement1.FieldName = "Name";
            templatedItemElement1.ImageOptions.ImageAlignment = DevExpress.XtraEditors.TileItemContentAlignment.MiddleCenter;
@@ -58,28 +63,29 @@
            itemTemplateBase1.Elements.Add(templatedItemElement1);
            itemTemplateBase1.Name = "template1";
            itemTemplateBase1.Rows.Add(tableRowDefinition1);
            listBoxControl1.Templates.Add(itemTemplateBase1);
            listBoxControl1.SelectedValueChanged += listBoxControl1_SelectedValueChanged;
            imageListBoxControl1.Templates.Add(itemTemplateBase1);
            imageListBoxControl1.ToolTipController = toolTipController1;
            imageListBoxControl1.SelectedValueChanged += imageListBoxControl1_SelectedValueChanged;
            // 
            // hydroWorkingListItemViewModelBindingSource
            // toolTipController1
            // 
            hydroWorkingListItemViewModelBindingSource.DataSource = typeof(HydroWorkingListItemViewModel);
            toolTipController1.GetActiveObjectInfo += toolTipController1_GetActiveObjectInfo;
            // 
            // HydroWorkingListViewCtrl
            // 
            AutoScaleDimensions = new SizeF(7F, 14F);
            AutoScaleMode = AutoScaleMode.Font;
            Controls.Add(listBoxControl1);
            Controls.Add(imageListBoxControl1);
            Name = "HydroWorkingListViewCtrl";
            Size = new Size(267, 669);
            ((ISupportInitialize)listBoxControl1).EndInit();
            ((ISupportInitialize)hydroWorkingListItemViewModelBindingSource).EndInit();
            ((ISupportInitialize)imageListBoxControl1).EndInit();
            ResumeLayout(false);
        }
        #endregion
        private DevExpress.XtraEditors.ListBoxControl listBoxControl1;
        private BindingSource hydroWorkingListItemViewModelBindingSource;
        private DevExpress.XtraEditors.ImageListBoxControl imageListBoxControl1;
        private DevExpress.Utils.ToolTipController toolTipController1;
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/10-working/07-list/HydroWorkingListViewCtrl.cs
@@ -1,5 +1,8 @@
using DevExpress.Xpo.Helpers;
using DevExpress.Utils;
using DevExpress.Utils.Win;
using DevExpress.Xpo.Helpers;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using System;
using System.Collections.Generic;
using System.ComponentModel;
@@ -17,7 +20,21 @@
        public HydroWorkingListViewCtrl()
        {
            InitializeComponent();
            this.listBoxControl1.InitialDefaultSettings();
        }
        /// <summary>
        /// 边框可见性
        /// </summary>
        public bool BorderVisible
        {
            get
            {
                return this.imageListBoxControl1.BorderStyle != BorderStyles.NoBorder;
            }
            set
            {
                this.imageListBoxControl1.BorderStyle = value ? BorderStyles.Default : BorderStyles.NoBorder;
            }
        }
        /// <summary>
@@ -33,19 +50,20 @@
        public void SetBindingData(List<HydroWorkingVmo> allWorkingList)
        {
            _allBindingList = new List<HydroWorkingListItemViewModel>();
            allWorkingList?.OrderBy(x => x.SortCode).ToList().ForEach(x => _allBindingList.Add(new HydroWorkingListItemViewModel(x)));
            allWorkingList?.OrderBy(x => x.SortCode).ToList()
                .ForEach(x => _allBindingList.Add(new HydroWorkingListItemViewModel(x)));
            this.hydroWorkingListItemViewModelBindingSource.DataSource = _allBindingList;
            this.hydroWorkingListItemViewModelBindingSource.ResetBindings(false);
        }
        //选择改变
        private void listBoxControl1_SelectedValueChanged(object sender, EventArgs e)
        private void imageListBoxControl1_SelectedValueChanged(object sender, EventArgs e)
        {
            if (_allBindingList == null)
            {
                return;
            }
            var item = this.listBoxControl1.SelectedItem;
            var item = this.imageListBoxControl1.SelectedItem;
            var vm = item as HydroWorkingListItemViewModel;
            if (vm == null)
            {
@@ -54,5 +72,13 @@
            this.SelectedChangedEvent?.Invoke(vm.Vmo);
        }
        private void toolTipController1_GetActiveObjectInfo(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e)
        {
            if (e.SelectedControl == this.imageListBoxControl1)
            {
                //e.Info = new ToolTipControlInfo(item, tooltipText);
            }
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/10-working/07-list/HydroWorkingListViewCtrl.resx
@@ -120,4 +120,7 @@
  <metadata name="hydroWorkingListItemViewModelBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>17, 17</value>
  </metadata>
  <metadata name="toolTipController1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>350, 17</value>
  </metadata>
</root>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/01-list/HydroWorkingMonitorEvaluationListCtrl.cs
@@ -1,4 +1,6 @@
namespace Yw.WinFrmUI
using DevExpress.XtraEditors.Controls;
namespace Yw.WinFrmUI
{
    public partial class HydroWorkingMonitorEvaluationListCtrl : DevExpress.XtraEditors.XtraUserControl
    {
@@ -7,10 +9,28 @@
            InitializeComponent();
            this.gridView1.SetNormalView(30);
            this.gridView1.RegistCustomDrawRowIndicator(40);
        }
        /// <summary>
        /// 边框可见性
        /// </summary>
        public bool BorderVisible
        {
            get
            {
                return this.gridView1.BorderStyle != BorderStyles.NoBorder;
            }
            set
            {
                this.gridView1.BorderStyle = value ? BorderStyles.Default : BorderStyles.NoBorder;
            }
        }
        private List<HydroWorkingMonitorEvaluationViewModel> _allBindingList = null;//所有绑定列表
        /// <summary>
        /// 绑定数据
        /// </summary>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/02-item/HydroWorkingItemEvaluationCtrl.cs
@@ -1,4 +1,5 @@
using System.Data;
using DevExpress.XtraEditors.Controls;
using System.Data;
namespace Yw.WinFrmUI
{
@@ -10,6 +11,21 @@
        }
        /// <summary>
        /// 边框可见性
        /// </summary>
        public bool BorderVisible
        {
            get
            {
                return this.gaugeControl1.BorderStyle != BorderStyles.NoBorder;
            }
            set
            {
                this.gaugeControl1.BorderStyle = value ? BorderStyles.Default : BorderStyles.NoBorder;
            }
        }
        /// <summary>
        /// 评价文本
        /// </summary>
        public string EvaluateText
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/03-total/HydroWorkingTotalEvaluationCtrl.cs
@@ -1,5 +1,7 @@
using DevExpress.CodeParser;
using DevExpress.Utils;
using DevExpress.XtraCharts;
using DevExpress.XtraEditors.Controls;
namespace Yw.WinFrmUI
{
@@ -10,6 +12,21 @@
            InitializeComponent();
        }
        /// <summary>
        /// 边框可见性
        /// </summary>
        public bool BorderVisible
        {
            get
            {
                return this.chartControl1.BorderOptions.Visibility != DevExpress.Utils.DefaultBoolean.False;
            }
            set
            {
                this.chartControl1.BorderOptions.Visibility = value ? DefaultBoolean.Default : DefaultBoolean.False;
            }
        }
        private List<HydroWorkingTotalEvaluationViewModel> _allBindingList = null;//所有绑定列表
        /// <summary>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/04-single/HydroSingleWorkingEvaluationCtrl.Designer.cs
@@ -39,25 +39,25 @@
            hydroFlowItemCtrl1 = new HydroWorkingItemEvaluationCtrl();
            hydroTotalEvaluationCtrl1 = new HydroWorkingTotalEvaluationCtrl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlGroup1 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlGroup3 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem4 = new DevExpress.XtraLayout.LayoutControlItem();
            ((ISupportInitialize)layoutControl1).BeginInit();
            layoutControl1.SuspendLayout();
            ((ISupportInitialize)Root).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)layoutControlItem2).BeginInit();
            ((ISupportInitialize)layoutControlItem3).BeginInit();
            ((ISupportInitialize)layoutControlItem4).BeginInit();
            ((ISupportInitialize)layoutControlGroup1).BeginInit();
            ((ISupportInitialize)layoutControlItem1).BeginInit();
            ((ISupportInitialize)layoutControlGroup2).BeginInit();
            ((ISupportInitialize)layoutControlItem2).BeginInit();
            ((ISupportInitialize)layoutControlGroup3).BeginInit();
            ((ISupportInitialize)layoutControlItem3).BeginInit();
            ((ISupportInitialize)layoutControlGroup4).BeginInit();
            ((ISupportInitialize)layoutControlItem4).BeginInit();
            SuspendLayout();
            // 
            // layoutControl1
@@ -76,32 +76,36 @@
            // 
            // hydroWorkingMonitorEvaluationListCtrl1
            // 
            hydroWorkingMonitorEvaluationListCtrl1.Location = new Point(5, 292);
            hydroWorkingMonitorEvaluationListCtrl1.BorderVisible = false;
            hydroWorkingMonitorEvaluationListCtrl1.Location = new Point(2, 289);
            hydroWorkingMonitorEvaluationListCtrl1.Name = "hydroWorkingMonitorEvaluationListCtrl1";
            hydroWorkingMonitorEvaluationListCtrl1.Size = new Size(880, 367);
            hydroWorkingMonitorEvaluationListCtrl1.Size = new Size(886, 373);
            hydroWorkingMonitorEvaluationListCtrl1.TabIndex = 7;
            // 
            // hydroPressItemCtrl1
            // 
            hydroPressItemCtrl1.BorderVisible = false;
            hydroPressItemCtrl1.EvaluateText = "无";
            hydroPressItemCtrl1.Location = new Point(598, 26);
            hydroPressItemCtrl1.Location = new Point(595, 23);
            hydroPressItemCtrl1.Name = "hydroPressItemCtrl1";
            hydroPressItemCtrl1.Size = new Size(287, 235);
            hydroPressItemCtrl1.Size = new Size(293, 241);
            hydroPressItemCtrl1.TabIndex = 6;
            // 
            // hydroFlowItemCtrl1
            // 
            hydroFlowItemCtrl1.BorderVisible = false;
            hydroFlowItemCtrl1.EvaluateText = "无";
            hydroFlowItemCtrl1.Location = new Point(301, 26);
            hydroFlowItemCtrl1.Location = new Point(298, 23);
            hydroFlowItemCtrl1.Name = "hydroFlowItemCtrl1";
            hydroFlowItemCtrl1.Size = new Size(287, 235);
            hydroFlowItemCtrl1.Size = new Size(293, 241);
            hydroFlowItemCtrl1.TabIndex = 5;
            // 
            // hydroTotalEvaluationCtrl1
            // 
            hydroTotalEvaluationCtrl1.Location = new Point(5, 26);
            hydroTotalEvaluationCtrl1.BorderVisible = false;
            hydroTotalEvaluationCtrl1.Location = new Point(2, 23);
            hydroTotalEvaluationCtrl1.Name = "hydroTotalEvaluationCtrl1";
            hydroTotalEvaluationCtrl1.Size = new Size(286, 235);
            hydroTotalEvaluationCtrl1.Size = new Size(292, 241);
            hydroTotalEvaluationCtrl1.TabIndex = 4;
            // 
            // Root
@@ -127,14 +131,36 @@
            Root.Size = new Size(890, 664);
            Root.TextVisible = false;
            // 
            // layoutControlGroup1
            //
            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 });
            layoutControlGroup1.Location = new Point(0, 0);
            layoutControlGroup1.Name = "layoutControlGroup1";
            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup1.Size = new Size(296, 266);
            layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
            layoutControlGroup1.Text = "总误差";
            //
            // layoutControlItem1
            // 
            layoutControlItem1.Control = hydroTotalEvaluationCtrl1;
            layoutControlItem1.Location = new Point(0, 0);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Size = new Size(290, 239);
            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem1.Size = new Size(292, 241);
            layoutControlItem1.TextSize = new Size(0, 0);
            layoutControlItem1.TextVisible = false;
            //
            // layoutControlGroup2
            //
            layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2 });
            layoutControlGroup2.Location = new Point(296, 0);
            layoutControlGroup2.Name = "layoutControlGroup2";
            layoutControlGroup2.OptionsTableLayoutItem.ColumnIndex = 1;
            layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup2.Size = new Size(297, 266);
            layoutControlGroup2.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
            layoutControlGroup2.Text = "流量误差";
            // 
            // layoutControlItem2
            // 
@@ -142,9 +168,21 @@
            layoutControlItem2.Location = new Point(0, 0);
            layoutControlItem2.Name = "layoutControlItem2";
            layoutControlItem2.OptionsTableLayoutItem.ColumnIndex = 1;
            layoutControlItem2.Size = new Size(291, 239);
            layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem2.Size = new Size(293, 241);
            layoutControlItem2.TextSize = new Size(0, 0);
            layoutControlItem2.TextVisible = false;
            //
            // layoutControlGroup3
            //
            layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem3 });
            layoutControlGroup3.Location = new Point(593, 0);
            layoutControlGroup3.Name = "layoutControlGroup3";
            layoutControlGroup3.OptionsTableLayoutItem.ColumnIndex = 2;
            layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup3.Size = new Size(297, 266);
            layoutControlGroup3.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
            layoutControlGroup3.Text = "压力误差";
            // 
            // layoutControlItem3
            // 
@@ -152,59 +190,14 @@
            layoutControlItem3.Location = new Point(0, 0);
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.OptionsTableLayoutItem.ColumnIndex = 2;
            layoutControlItem3.Size = new Size(291, 239);
            layoutControlItem3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem3.Size = new Size(293, 241);
            layoutControlItem3.TextSize = new Size(0, 0);
            layoutControlItem3.TextVisible = false;
            // 
            // layoutControlItem4
            //
            layoutControlItem4.Control = hydroWorkingMonitorEvaluationListCtrl1;
            layoutControlItem4.Location = new Point(0, 0);
            layoutControlItem4.Name = "layoutControlItem4";
            layoutControlItem4.OptionsTableLayoutItem.ColumnSpan = 3;
            layoutControlItem4.OptionsTableLayoutItem.RowIndex = 1;
            layoutControlItem4.Size = new Size(884, 371);
            layoutControlItem4.TextSize = new Size(0, 0);
            layoutControlItem4.TextVisible = false;
            //
            // layoutControlGroup1
            //
            layoutControlGroup1.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204);
            layoutControlGroup1.AppearanceGroup.Options.UseBorderColor = true;
            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 });
            layoutControlGroup1.Location = new Point(0, 0);
            layoutControlGroup1.Name = "layoutControlGroup1";
            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup1.Size = new Size(296, 266);
            layoutControlGroup1.Text = "总误差";
            //
            // layoutControlGroup2
            //
            layoutControlGroup2.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204);
            layoutControlGroup2.AppearanceGroup.Options.UseBorderColor = true;
            layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2 });
            layoutControlGroup2.Location = new Point(296, 0);
            layoutControlGroup2.Name = "layoutControlGroup2";
            layoutControlGroup2.OptionsTableLayoutItem.ColumnIndex = 1;
            layoutControlGroup2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup2.Size = new Size(297, 266);
            layoutControlGroup2.Text = "流量误差";
            //
            // layoutControlGroup3
            //
            layoutControlGroup3.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204);
            layoutControlGroup3.AppearanceGroup.Options.UseBorderColor = true;
            layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem3 });
            layoutControlGroup3.Location = new Point(593, 0);
            layoutControlGroup3.Name = "layoutControlGroup3";
            layoutControlGroup3.OptionsTableLayoutItem.ColumnIndex = 2;
            layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup3.Size = new Size(297, 266);
            layoutControlGroup3.Text = "压力误差";
            //
            // layoutControlGroup4
            // 
            layoutControlGroup4.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204);
            layoutControlGroup4.AppearanceGroup.BorderColor = Color.FromArgb(0, 0, 0, 0);
            layoutControlGroup4.AppearanceGroup.Options.UseBorderColor = true;
            layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem4 });
            layoutControlGroup4.Location = new Point(0, 266);
@@ -213,7 +206,20 @@
            layoutControlGroup4.OptionsTableLayoutItem.RowIndex = 1;
            layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlGroup4.Size = new Size(890, 398);
            layoutControlGroup4.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
            layoutControlGroup4.Text = "评估列表";
            //
            // layoutControlItem4
            //
            layoutControlItem4.Control = hydroWorkingMonitorEvaluationListCtrl1;
            layoutControlItem4.Location = new Point(0, 0);
            layoutControlItem4.Name = "layoutControlItem4";
            layoutControlItem4.OptionsTableLayoutItem.ColumnSpan = 3;
            layoutControlItem4.OptionsTableLayoutItem.RowIndex = 1;
            layoutControlItem4.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem4.Size = new Size(886, 373);
            layoutControlItem4.TextSize = new Size(0, 0);
            layoutControlItem4.TextVisible = false;
            // 
            // HydroSingleWorkingEvaluationCtrl
            // 
@@ -225,14 +231,14 @@
            ((ISupportInitialize)layoutControl1).EndInit();
            layoutControl1.ResumeLayout(false);
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)layoutControlItem2).EndInit();
            ((ISupportInitialize)layoutControlItem3).EndInit();
            ((ISupportInitialize)layoutControlItem4).EndInit();
            ((ISupportInitialize)layoutControlGroup1).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)layoutControlGroup2).EndInit();
            ((ISupportInitialize)layoutControlItem2).EndInit();
            ((ISupportInitialize)layoutControlGroup3).EndInit();
            ((ISupportInitialize)layoutControlItem3).EndInit();
            ((ISupportInitialize)layoutControlGroup4).EndInit();
            ((ISupportInitialize)layoutControlItem4).EndInit();
            ResumeLayout(false);
        }
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/05-multi/HydroMultiWorkingEvaluationDlg.Designer.cs
@@ -36,15 +36,17 @@
            hydroWorkingListViewCtrl1 = new HydroWorkingListViewCtrl();
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            splitter = new DevExpress.XtraLayout.SplitterItem();
            itemForWorkingList = new DevExpress.XtraLayout.LayoutControlItem();
            itemForEvaluation = 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)itemForWorkingList).BeginInit();
            ((ISupportInitialize)itemForEvaluation).BeginInit();
            ((ISupportInitialize)groupForWorkingList).BeginInit();
            ((ISupportInitialize)itemForWorkingList).BeginInit();
            SuspendLayout();
            // 
            // ribbon
@@ -85,23 +87,24 @@
            // 
            // hydroSingleWorkingEvaluationCtrl1
            // 
            hydroSingleWorkingEvaluationCtrl1.Location = new Point(177, 19);
            hydroSingleWorkingEvaluationCtrl1.Location = new Point(177, 2);
            hydroSingleWorkingEvaluationCtrl1.Name = "hydroSingleWorkingEvaluationCtrl1";
            hydroSingleWorkingEvaluationCtrl1.Size = new Size(815, 552);
            hydroSingleWorkingEvaluationCtrl1.Size = new Size(815, 569);
            hydroSingleWorkingEvaluationCtrl1.TabIndex = 2;
            // 
            // hydroWorkingListViewCtrl1
            // 
            hydroWorkingListViewCtrl1.Location = new Point(2, 19);
            hydroWorkingListViewCtrl1.BorderVisible = false;
            hydroWorkingListViewCtrl1.Location = new Point(3, 24);
            hydroWorkingListViewCtrl1.Name = "hydroWorkingListViewCtrl1";
            hydroWorkingListViewCtrl1.Size = new Size(161, 552);
            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[] { splitter, itemForWorkingList, itemForEvaluation });
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { splitter, itemForEvaluation, groupForWorkingList });
            Root.Name = "Root";
            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            Root.Size = new Size(994, 573);
@@ -114,25 +117,39 @@
            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(165, 573);
            itemForWorkingList.Text = "工况列表";
            itemForWorkingList.TextLocation = DevExpress.Utils.Locations.Top;
            itemForWorkingList.TextSize = new Size(48, 14);
            //
            // itemForEvaluation
            // 
            itemForEvaluation.Control = hydroSingleWorkingEvaluationCtrl1;
            itemForEvaluation.Location = new Point(175, 0);
            itemForEvaluation.Name = "itemForEvaluation";
            itemForEvaluation.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            itemForEvaluation.Size = new Size(819, 573);
            itemForEvaluation.Spacing = new DevExpress.XtraLayout.Utils.Padding(2, 2, 2, 2);
            itemForEvaluation.Text = "精度评估";
            itemForEvaluation.TextLocation = DevExpress.Utils.Locations.Top;
            itemForEvaluation.TextSize = new Size(48, 14);
            itemForEvaluation.TextSize = new Size(0, 0);
            itemForEvaluation.TextVisible = false;
            //
            // groupForWorkingList
            //
            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(165, 573);
            groupForWorkingList.Text = "工况列表";
            //
            // itemForWorkingList
            //
            itemForWorkingList.Control = hydroWorkingListViewCtrl1;
            itemForWorkingList.Location = new Point(0, 0);
            itemForWorkingList.Name = "itemForWorkingList";
            itemForWorkingList.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            itemForWorkingList.Size = new Size(159, 546);
            itemForWorkingList.Text = "工况列表";
            itemForWorkingList.TextLocation = DevExpress.Utils.Locations.Top;
            itemForWorkingList.TextSize = new Size(0, 0);
            itemForWorkingList.TextVisible = false;
            // 
            // HydroMultiWorkingEvaluationDlg
            // 
@@ -152,8 +169,9 @@
            layoutControl1.ResumeLayout(false);
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)splitter).EndInit();
            ((ISupportInitialize)itemForWorkingList).EndInit();
            ((ISupportInitialize)itemForEvaluation).EndInit();
            ((ISupportInitialize)groupForWorkingList).EndInit();
            ((ISupportInitialize)itemForWorkingList).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }
@@ -170,5 +188,6 @@
        private HydroSingleWorkingEvaluationCtrl hydroSingleWorkingEvaluationCtrl1;
        private DevExpress.XtraLayout.LayoutControlItem itemForWorkingList;
        private DevExpress.XtraLayout.LayoutControlItem itemForEvaluation;
        private DevExpress.XtraLayout.LayoutControlGroup groupForWorkingList;
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/16-evaluation/05-multi/HydroMultiWorkingEvaluationDlg.cs
@@ -44,7 +44,7 @@
            {
                var working = allWorkingList[0];
                this.Text = $"精度评估({working.Name})";
                this.itemForWorkingList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
                this.groupForWorkingList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
                this.splitter.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
                this.itemForEvaluation.TextVisible = false;
                LoadWorkingEvaluation(working);
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/00-core/HydroLossCurvePointVieModel.cs
@@ -18,8 +18,8 @@
        {
            this.Code = code;
            this.Name = name;
            this.X = x;
            this.Y = y;
            this.X = Math.Round(x, 2);
            this.Y = Math.Round(y, 2);
        }
        /// <summary>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.Designer.cs
@@ -32,23 +32,21 @@
            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();
            groupForLossCurve = new DevExpress.XtraLayout.LayoutControlGroup();
            splitter = new DevExpress.XtraLayout.SplitterItem();
            hydroSingleWorkingLossCurveCtrl1 = new HydroSingleWorkingLossCurveCtrl();
            layoutControlItem3 = new DevExpress.XtraLayout.LayoutControlItem();
            itemForChart = 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();
            ((ISupportInitialize)itemForChart).BeginInit();
            SuspendLayout();
            // 
            // ribbon
@@ -81,24 +79,32 @@
            layoutControl1.Dock = DockStyle.Fill;
            layoutControl1.Location = new Point(0, 32);
            layoutControl1.Name = "layoutControl1";
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(719, 346, 650, 400);
            layoutControl1.OptionsCustomizationForm.DesignTimeCustomizationFormPositionAndSize = new Rectangle(551, 346, 650, 400);
            layoutControl1.Root = Root;
            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
            // 
            hydroWorkingListViewCtrl1.Location = new Point(5, 26);
            hydroWorkingListViewCtrl1.BorderVisible = false;
            hydroWorkingListViewCtrl1.Location = new Point(3, 24);
            hydroWorkingListViewCtrl1.Name = "hydroWorkingListViewCtrl1";
            hydroWorkingListViewCtrl1.Size = new Size(155, 542);
            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, groupForLossCurve, splitter });
            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { groupForWorkingList, splitter, itemForChart });
            Root.Name = "Root";
            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            Root.Size = new Size(994, 573);
@@ -106,8 +112,6 @@
            // 
            // 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";
@@ -120,20 +124,10 @@
            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;
            //
            // 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
            // 
@@ -142,21 +136,16 @@
            splitter.Name = "splitter";
            splitter.Size = new Size(10, 573);
            // 
            // hydroSingleWorkingLossCurveCtrl1
            // itemForChart
            // 
            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;
            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;
            // 
            // HydroMultiWorkingLossCurveDlg
            // 
@@ -177,9 +166,8 @@
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)groupForWorkingList).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)groupForLossCurve).EndInit();
            ((ISupportInitialize)splitter).EndInit();
            ((ISupportInitialize)layoutControlItem3).EndInit();
            ((ISupportInitialize)itemForChart).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }
@@ -195,10 +183,9 @@
        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;
        private DevExpress.XtraLayout.LayoutControlItem itemForChart;
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroMultiWorkingLossCurveDlg.cs
@@ -14,8 +14,13 @@
            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;//可见构件
@@ -23,7 +28,12 @@
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, List<HydroWorkingVmo> allWorkingList, Yw.Model.HydroVisualInfo visual)
        public void SetBindingData
            (
                Yw.Model.HydroModelInfo hydroInfo,
                List<HydroWorkingVmo> allWorkingList,
                Yw.Model.HydroVisualInfo visual
            )
        {
            if (hydroInfo == null)
            {
@@ -46,7 +56,6 @@
                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);
            }
        }
@@ -72,13 +81,18 @@
            {
                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);
        }
        //
        private void HydroSingleWorkingLossCurveCtrl1_HydroClickEvent(string obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroNodeLossViewModel.cs
@@ -20,7 +20,7 @@
            this.Elev = Math.Round(rhs.Elev, 2);
            this.StartHead = Math.Round(rhs.Head, 2);
            this.EndHead = Math.Round(rhs.Head - rhs.MinorLoss, 2);
            this.Distance = rhs.Distance;
            this.Distance = Math.Round(rhs.Distance, 2);
        }
        /// <summary>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.Designer.cs
@@ -38,7 +38,6 @@
            lossBindingSource = new BindingSource(components);
            elevBindingSource = new BindingSource(components);
            chartControl1 = new DevExpress.XtraCharts.ChartControl();
            toolTipController1 = new DevExpress.Utils.ToolTipController(components);
            ((ISupportInitialize)lossBindingSource).BeginInit();
            ((ISupportInitialize)elevBindingSource).BeginInit();
            ((ISupportInitialize)chartControl1).BeginInit();
@@ -60,7 +59,11 @@
            // 
            // chartControl1
            // 
            xyDiagram1.AxisX.CrosshairAxisLabelOptions.Visibility = DevExpress.Utils.DefaultBoolean.False;
            chartControl1.CrosshairOptions.ShowArgumentLabels = true;
            chartControl1.CrosshairOptions.ShowValueLabels = true;
            chartControl1.CrosshairOptions.ShowValueLine = true;
            chartControl1.DataSource = elevBindingSource;
            xyDiagram1.AxisX.CrosshairAxisLabelOptions.Visibility = DevExpress.Utils.DefaultBoolean.True;
            xyDiagram1.AxisX.GridLines.Visible = true;
            xyDiagram1.AxisX.MinorCount = 1;
            xyDiagram1.AxisX.NumericScaleOptions.AutoGrid = false;
@@ -93,23 +96,31 @@
            chartControl1.Location = new Point(0, 0);
            chartControl1.Name = "chartControl1";
            series1.ArgumentDataMember = "X";
            series1.CrosshairLabelPattern = "总水头:{V}";
            series1.CrosshairLabelVisibility = DevExpress.Utils.DefaultBoolean.False;
            series1.CrosshairEnabled = DevExpress.Utils.DefaultBoolean.True;
            series1.CrosshairHighlightPoints = DevExpress.Utils.DefaultBoolean.True;
            series1.CrosshairLabelPattern = "总水头:{V}m";
            series1.CrosshairLabelVisibility = DevExpress.Utils.DefaultBoolean.True;
            series1.DataSource = lossBindingSource;
            series1.LegendTextPattern = "总水头";
            series1.Name = "SeriesLoss";
            series1.SeriesID = 0;
            series1.ToolTipHintDataMember = "Name";
            series1.ToolTipSeriesPattern = "";
            series1.ValueDataMembersSerializable = "Y";
            areaSeriesView1.Color = Color.FromArgb(255, 192, 0);
            areaSeriesView1.EmptyPointOptions.FillStyle.FillMode = DevExpress.XtraCharts.FillMode.Solid;
            series1.View = areaSeriesView1;
            series2.ArgumentDataMember = "X";
            series2.CrosshairLabelPattern = "高程:{V}";
            series2.CrosshairLabelVisibility = DevExpress.Utils.DefaultBoolean.False;
            series2.CrosshairEnabled = DevExpress.Utils.DefaultBoolean.True;
            series2.CrosshairHighlightPoints = DevExpress.Utils.DefaultBoolean.True;
            series2.CrosshairLabelPattern = "高程:{V}m";
            series2.CrosshairLabelVisibility = DevExpress.Utils.DefaultBoolean.True;
            series2.DataSource = elevBindingSource;
            series2.LegendTextPattern = "高程";
            series2.Name = "SeriesElev";
            series2.SeriesID = 1;
            series2.ToolTipHintDataMember = "Name";
            series2.ToolTipSeriesPattern = "";
            series2.ValueDataMembersSerializable = "Y";
            areaSeriesView2.AxisYName = "Secondary AxisY 1";
            areaSeriesView2.Color = Color.FromArgb(79, 129, 189);
@@ -121,13 +132,15 @@
    series1,
    series2
    };
            chartControl1.SeriesTemplate.ArgumentDataMember = "X";
            chartControl1.SeriesTemplate.ToolTipHintDataMember = "Name";
            chartControl1.SeriesTemplate.ValueDataMembersSerializable = "Y";
            chartControl1.Size = new Size(848, 569);
            chartControl1.TabIndex = 0;
            chartControl1.ToolTipController = toolTipController1;
            //
            // toolTipController1
            //
            toolTipController1.GetActiveObjectInfo += toolTipController1_GetActiveObjectInfo;
            chartControl1.ToolTipEnabled = DevExpress.Utils.DefaultBoolean.True;
            chartControl1.ToolTipOptions.ShowForSeries = true;
            chartControl1.CustomDrawCrosshair += chartControl1_CustomDrawCrosshair;
            chartControl1.MouseClick += chartControl1_MouseClick;
            // 
            // HydroSingleWorkingLossCurveCtrl
            // 
@@ -153,6 +166,5 @@
        private DevExpress.XtraCharts.ChartControl chartControl1;
        private BindingSource lossBindingSource;
        private BindingSource elevBindingSource;
        private DevExpress.Utils.ToolTipController toolTipController1;
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.cs
@@ -15,6 +15,7 @@
using Yw.EPAnet;
using DevExpress.Mvvm.POCO;
using DevExpress.Utils;
using DevExpress.Drawing;
namespace Yw.WinFrmUI
{
@@ -24,6 +25,11 @@
        {
            InitializeComponent();
        }
        /// <summary>
        ///
        /// </summary>
        public event Action<string> HydroClickEvent;
        /// <summary>
        /// 绑定数据
@@ -240,22 +246,74 @@
        }
        //提示
        private void toolTipController1_GetActiveObjectInfo(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e)
        private void chartControl1_CustomDrawCrosshair(object sender, CustomDrawCrosshairEventArgs e)
        {
            if (e.SelectedControl == this.chartControl1)
            // Specify the crosshair argument line color, dash style and thickness.
            e.CrosshairLineElement.Color = Color.Green;
            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)
            {
                ChartHitInfo hitInfo = this.chartControl1.CalcHitInfo(e.ControlMousePosition);
                axisLabelElement.BackColor = Color.Blue;
            }
            foreach (CrosshairElementGroup group in e.CrosshairElementGroups)
            {
                CrosshairGroupHeaderElement groupHeaderElement = group.HeaderElement;
                var pt = group.HeaderElement.SeriesPoints.FirstOrDefault();
                if (pt != null)
                {
                    var model = pt.Tag as HydroLossCurvePointVieModel;
                    if (model != null)
                    {
                        groupHeaderElement.Text = model.Name;
                    }
                }
                // Specify the text, text color and font for the crosshair group header element.
                groupHeaderElement.TextColor = Color.Green;
                groupHeaderElement.DXFont = new DXFont("SegoeUI", 12, DXFontStyle.Bold);
                //// Obtain the first series.
                //CrosshairElement element = group.CrosshairElements[0];
                //// Specify the color, dash style and thickness for the crosshair value lines.
                //element.LineElement.Color = Color.DarkViolet;
                //element.LineElement.LineStyle.DashStyle = DashStyle.Dash;
                //element.LineElement.LineStyle.Thickness = 2;
                //// Specify the text color and back color for the crosshair value labels.
                //element.AxisLabelElement.TextColor = Color.Red;
                //element.AxisLabelElement.BackColor = Color.Yellow;
                //// Format the text shown for the series in the crosshair cursor label. Specify the text color and marker size.
                //element.LabelElement.TextColor = Color.Red;
                //element.LabelElement.MarkerSize = new Size(15, 15);
                //element.LabelElement.Text = $"高程:{element.SeriesPoint.Values[0]}m";
            }
        }
        //点击事件
        private void chartControl1_MouseClick(object sender, MouseEventArgs e)
        {
            ChartHitInfo hitInfo = this.chartControl1.CalcHitInfo(e.Location);
            if (hitInfo.Series != null)
            {
                if (hitInfo.SeriesPoint != null)
                {
                    var vm = hitInfo.SeriesPoint.Tag as HydroLossCurvePointVieModel;
                    if (vm != null)
                    {
                        e.Info = new ToolTipControlInfo(hitInfo.SeriesPoint, $"{vm.Name}:{vm.Y}");
                        return;
                        this.HydroClickEvent?.Invoke(vm.Code);
                    }
                }
                e.Info = null;
            }
        }
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveCtrl.resx
@@ -123,7 +123,4 @@
  <metadata name="elevBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>179, 17</value>
  </metadata>
  <metadata name="toolTipController1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
    <value>341, 17</value>
  </metadata>
</root>
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleWorkingLossCurveDlg.cs
@@ -9,7 +9,13 @@
        {
            InitializeComponent();
            this.IconOptions.Icon = Yw.WinFrmUI.GlobalParas.AppIcon;
            this.hydroSingleWorkingLossCurveCtrl1.HydroClickEvent += HydroSingleWorkingLossCurveCtrl1_HydroClickEvent;
        }
        /// <summary>
        ///
        /// </summary>
        public event Action<string> HydroClickEvent;
        /// <summary>
        /// 绑定数据
@@ -19,6 +25,11 @@
            this.hydroSingleWorkingLossCurveCtrl1.SetBindingData(hydroInfo, calcuResult, visual);
        }
        //
        private void HydroSingleWorkingLossCurveCtrl1_HydroClickEvent(string obj)
        {
            this.HydroClickEvent?.Invoke(obj);
        }
    }
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/01-catalog/HydroCatalogLossScaleChartCtrl.cs
@@ -1,4 +1,6 @@
namespace Yw.WinFrmUI
using DevExpress.XtraEditors.Controls;
namespace Yw.WinFrmUI
{
    public partial class HydroCatalogLossScaleChartCtrl : DevExpress.XtraEditors.XtraUserControl
    {
@@ -8,6 +10,21 @@
        }
        /// <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)
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/02-scale/02-input/HydroInputEnergyScaleChartCtrl.cs
@@ -8,6 +8,21 @@
        }
        /// <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)
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.Designer.cs
@@ -37,18 +37,16 @@
            Root = new DevExpress.XtraLayout.LayoutControlGroup();
            groupForWorkingList = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
            groupForLossStatistics = new DevExpress.XtraLayout.LayoutControlGroup();
            layoutControlItem2 = 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)groupForLossStatistics).BeginInit();
            ((ISupportInitialize)layoutControlItem2).BeginInit();
            ((ISupportInitialize)splitter).BeginInit();
            ((ISupportInitialize)layoutControlItem2).BeginInit();
            SuspendLayout();
            // 
            // ribbon
@@ -89,23 +87,24 @@
            // 
            // hydroSingleWorkingLossStatisticsCtrl1
            // 
            hydroSingleWorkingLossStatisticsCtrl1.Location = new Point(180, 26);
            hydroSingleWorkingLossStatisticsCtrl1.Location = new Point(177, 2);
            hydroSingleWorkingLossStatisticsCtrl1.Name = "hydroSingleWorkingLossStatisticsCtrl1";
            hydroSingleWorkingLossStatisticsCtrl1.Size = new Size(809, 542);
            hydroSingleWorkingLossStatisticsCtrl1.Size = new Size(815, 569);
            hydroSingleWorkingLossStatisticsCtrl1.TabIndex = 2;
            // 
            // hydroWorkingListViewCtrl1
            // 
            hydroWorkingListViewCtrl1.Location = new Point(5, 26);
            hydroWorkingListViewCtrl1.BorderVisible = false;
            hydroWorkingListViewCtrl1.Location = new Point(3, 24);
            hydroWorkingListViewCtrl1.Name = "hydroWorkingListViewCtrl1";
            hydroWorkingListViewCtrl1.Size = new Size(155, 542);
            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, groupForLossStatistics, splitter });
            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);
@@ -113,8 +112,6 @@
            // 
            // 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";
@@ -127,29 +124,10 @@
            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;
            //
            // groupForLossScale
            //
            groupForLossStatistics.AppearanceGroup.BorderColor = Color.FromArgb(0, 122, 204);
            groupForLossStatistics.AppearanceGroup.Options.UseBorderColor = true;
            groupForLossStatistics.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2 });
            groupForLossStatistics.Location = new Point(175, 0);
            groupForLossStatistics.Name = "groupForLossScale";
            groupForLossStatistics.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            groupForLossStatistics.Size = new Size(819, 573);
            groupForLossStatistics.Text = "损失统计";
            //
            // layoutControlItem2
            //
            layoutControlItem2.Control = hydroSingleWorkingLossStatisticsCtrl1;
            layoutControlItem2.Location = new Point(0, 0);
            layoutControlItem2.Name = "layoutControlItem2";
            layoutControlItem2.Size = new Size(813, 546);
            layoutControlItem2.TextSize = new Size(0, 0);
            layoutControlItem2.TextVisible = false;
            // 
            // splitter
            // 
@@ -157,6 +135,17 @@
            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
            // 
@@ -177,9 +166,8 @@
            ((ISupportInitialize)Root).EndInit();
            ((ISupportInitialize)groupForWorkingList).EndInit();
            ((ISupportInitialize)layoutControlItem1).EndInit();
            ((ISupportInitialize)groupForLossStatistics).EndInit();
            ((ISupportInitialize)layoutControlItem2).EndInit();
            ((ISupportInitialize)splitter).EndInit();
            ((ISupportInitialize)layoutControlItem2).EndInit();
            ResumeLayout(false);
            PerformLayout();
        }
@@ -195,8 +183,7 @@
        private DevExpress.XtraLayout.LayoutControlGroup Root;
        private DevExpress.XtraLayout.LayoutControlGroup groupForWorkingList;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem1;
        private DevExpress.XtraLayout.LayoutControlGroup groupForLossStatistics;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
        private DevExpress.XtraLayout.SplitterItem splitter;
        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem2;
    }
}
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroMultiWorkingLossStatisticsDlg.cs
@@ -39,7 +39,6 @@
                this.Text = $"损失统计({working.Name})";
                this.groupForWorkingList.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
                this.splitter.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never;
                this.groupForLossStatistics.GroupBordersVisible = false;
                LoadWorkingLossStatistics(working);
            }
        }
@@ -61,7 +60,6 @@
            {
                return;
            }
            this.groupForLossStatistics.Text = working.Name;
            var hydroInfo = _hydroInfo.Adapt<Yw.Model.HydroModelInfo>();
            hydroInfo.UpdateWorkingInfo(working.WorkingInfo);
            var calcuResult = hydroInfo.Calcu(Yw.EPAnet.CalcuMode.MinorLoss);
WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/03-statistics/HydroSingleWorkingLossStatisticsCtrl.Designer.cs
@@ -66,23 +66,26 @@
            // 
            // hydroInputEnergyScaleChartCtrl1
            // 
            hydroInputEnergyScaleChartCtrl1.Location = new Point(0, 22);
            hydroInputEnergyScaleChartCtrl1.BorderVisible = false;
            hydroInputEnergyScaleChartCtrl1.Location = new Point(2, 23);
            hydroInputEnergyScaleChartCtrl1.Name = "hydroInputEnergyScaleChartCtrl1";
            hydroInputEnergyScaleChartCtrl1.Size = new Size(380, 428);
            hydroInputEnergyScaleChartCtrl1.Size = new Size(377, 425);
            hydroInputEnergyScaleChartCtrl1.TabIndex = 4;
            // 
            // hydroEnergyStatisticsBarCtrl1
            // 
            hydroEnergyStatisticsBarCtrl1.Location = new Point(0, 473);
            hydroEnergyStatisticsBarCtrl1.BorderVisible = false;
            hydroEnergyStatisticsBarCtrl1.Location = new Point(2, 473);
            hydroEnergyStatisticsBarCtrl1.Name = "hydroEnergyStatisticsBarCtrl1";
            hydroEnergyStatisticsBarCtrl1.Size = new Size(918, 201);
            hydroEnergyStatisticsBarCtrl1.Size = new Size(914, 199);
            hydroEnergyStatisticsBarCtrl1.TabIndex = 2;
            // 
            // hydroCatalogLossScaleChartCtrl1
            // 
            hydroCatalogLossScaleChartCtrl1.Location = new Point(382, 22);
            hydroCatalogLossScaleChartCtrl1.BorderVisible = false;
            hydroCatalogLossScaleChartCtrl1.Location = new Point(383, 23);
            hydroCatalogLossScaleChartCtrl1.Name = "hydroCatalogLossScaleChartCtrl1";
            hydroCatalogLossScaleChartCtrl1.Size = new Size(536, 428);
            hydroCatalogLossScaleChartCtrl1.Size = new Size(533, 425);
            hydroCatalogLossScaleChartCtrl1.TabIndex = 0;
            // 
            // Root
@@ -97,13 +100,12 @@
            // 
            // layoutControlGroup1
            // 
            layoutControlGroup1.GroupStyle = DevExpress.Utils.GroupStyle.Title;
            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(0, 1, 0, 0);
            layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
            layoutControlGroup1.Text = "能量输入";
            // 
            // layoutControlItem3
@@ -113,20 +115,19 @@
            layoutControlItem3.MinSize = new Size(1, 1);
            layoutControlItem3.Name = "layoutControlItem3";
            layoutControlItem3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem3.Size = new Size(380, 428);
            layoutControlItem3.Size = new Size(377, 425);
            layoutControlItem3.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
            layoutControlItem3.TextSize = new Size(0, 0);
            layoutControlItem3.TextVisible = false;
            // 
            // layoutControlGroup2
            // 
            layoutControlGroup2.GroupStyle = DevExpress.Utils.GroupStyle.Title;
            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, 0, 0, 0);
            layoutControlGroup2.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
            layoutControlGroup2.Text = "能量损失";
            // 
            // layoutControlItem1
@@ -135,7 +136,7 @@
            layoutControlItem1.Location = new Point(0, 0);
            layoutControlItem1.Name = "layoutControlItem1";
            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem1.Size = new Size(536, 428);
            layoutControlItem1.Size = new Size(533, 425);
            layoutControlItem1.Text = "分类统计";
            layoutControlItem1.TextLocation = DevExpress.Utils.Locations.Top;
            layoutControlItem1.TextSize = new Size(0, 0);
@@ -143,13 +144,12 @@
            // 
            // layoutControlGroup3
            // 
            layoutControlGroup3.GroupStyle = DevExpress.Utils.GroupStyle.Title;
            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(0, 0, 1, 0);
            layoutControlGroup3.Spacing = new DevExpress.XtraLayout.Utils.Padding(1, 1, 1, 1);
            layoutControlGroup3.Text = "能量统计";
            // 
            // layoutControlItem2
@@ -158,7 +158,7 @@
            layoutControlItem2.Location = new Point(0, 0);
            layoutControlItem2.Name = "layoutControlItem2";
            layoutControlItem2.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
            layoutControlItem2.Size = new Size(918, 201);
            layoutControlItem2.Size = new Size(914, 199);
            layoutControlItem2.Text = "能量统计";
            layoutControlItem2.TextLocation = DevExpress.Utils.Locations.Top;
            layoutControlItem2.TextSize = new Size(0, 0);
WinFrmUI/Yw.WinFrmUI.Hydro.Core/20-energy/01-statistics/HydroEnergyStatisticsBarCtrl.cs
@@ -20,6 +20,21 @@
        }
        /// <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)