From bb5865148234cad04ae31d4de9264f4209a3fa6d Mon Sep 17 00:00:00 2001
From: duheng <2784771470@qq.com>
Date: 星期四, 24 十月 2024 14:02:29 +0800
Subject: [PATCH] Merge branch 'master' of http://47.103.154.90:83/r/HStation/XHS.V1.0

---
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.cs                                       |   38 +-
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.resx                                     |   16 +
 WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/04-variable-speed/PumpVariableSpeedChart.cs         |   42 +-
 WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/05-import/01-excel/ImportPumpPerform2dByExcelCtrl.cs         |    2 
 WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpParallelInfoCtrl.Designer.cs |    4 
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyDlg.cs                                            |   47 ++
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyDlg.Designer.cs                                   |   45 +--
 WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.Designer.cs                              |  630 ++++++++++++++++++++++++--------------------
 WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs                      |    4 
 9 files changed, 460 insertions(+), 368 deletions(-)

diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyDlg.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyDlg.Designer.cs
index 60ba616..44b41f4 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyDlg.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyDlg.Designer.cs
@@ -29,9 +29,6 @@
         private void InitializeComponent()
         {
             ribbon = new DevExpress.XtraBars.Ribbon.RibbonControl();
-            barButtonItem1 = new DevExpress.XtraBars.BarButtonItem();
-            ribbonPage1 = new DevExpress.XtraBars.Ribbon.RibbonPage();
-            ribbonPageGroup1 = new DevExpress.XtraBars.Ribbon.RibbonPageGroup();
             sidePanel1 = new SidePanel();
             singlePumpAnalyInfoCtrl1 = new SinglePumpAnalyInfoCtrl();
             pumpVariableSpeedChart1 = new Yw.WinFrmUI.Phart.PumpVariableSpeedChart();
@@ -43,47 +40,36 @@
             // 
             ribbon.ExpandCollapseItem.Id = 0;
             ribbon.ItemPanelStyle = DevExpress.XtraBars.Ribbon.RibbonItemPanelStyle.Classic;
-            ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem, barButtonItem1 });
+            ribbon.Items.AddRange(new DevExpress.XtraBars.BarItem[] { ribbon.ExpandCollapseItem });
             ribbon.Location = new Point(0, 0);
             ribbon.MaxItemId = 2;
             ribbon.Name = "ribbon";
-            ribbon.Pages.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPage[] { ribbonPage1 });
+            ribbon.OptionsExpandCollapseMenu.EnableExpandCollapseMenu = DevExpress.Utils.DefaultBoolean.False;
+            ribbon.OptionsExpandCollapseMenu.ShowQuickAccessToolbarItem = DevExpress.Utils.DefaultBoolean.False;
+            ribbon.OptionsExpandCollapseMenu.ShowRibbonGroup = DevExpress.Utils.DefaultBoolean.False;
+            ribbon.OptionsExpandCollapseMenu.ShowRibbonLayoutGroup = DevExpress.Utils.DefaultBoolean.False;
+            ribbon.OptionsTouch.TouchUI = DevExpress.Utils.DefaultBoolean.False;
             ribbon.RibbonCaptionAlignment = DevExpress.XtraBars.Ribbon.RibbonCaptionAlignment.Left;
             ribbon.RibbonStyle = DevExpress.XtraBars.Ribbon.RibbonControlStyle.OfficeUniversal;
+            ribbon.SearchItemPosition = DevExpress.XtraBars.Ribbon.SearchItemPosition.None;
             ribbon.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.False;
+            ribbon.ShowDisplayOptionsMenuButton = DevExpress.Utils.DefaultBoolean.False;
             ribbon.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.False;
             ribbon.ShowMoreCommandsButton = DevExpress.Utils.DefaultBoolean.False;
             ribbon.ShowPageHeadersInFormCaption = DevExpress.Utils.DefaultBoolean.False;
             ribbon.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.Hide;
             ribbon.ShowQatLocationSelector = false;
             ribbon.ShowToolbarCustomizeItem = false;
-            ribbon.Size = new Size(1400, 93);
+            ribbon.Size = new Size(1400, 48);
             ribbon.Toolbar.ShowCustomizeItem = false;
-            // 
-            // barButtonItem1
-            // 
-            barButtonItem1.Caption = "barButtonItem1";
-            barButtonItem1.Id = 1;
-            barButtonItem1.Name = "barButtonItem1";
-            // 
-            // ribbonPage1
-            // 
-            ribbonPage1.Groups.AddRange(new DevExpress.XtraBars.Ribbon.RibbonPageGroup[] { ribbonPageGroup1 });
-            ribbonPage1.Name = "ribbonPage1";
-            ribbonPage1.Text = "ribbonPage1";
-            // 
-            // ribbonPageGroup1
-            // 
-            ribbonPageGroup1.Name = "ribbonPageGroup1";
-            ribbonPageGroup1.Text = "ribbonPageGroup1";
             // 
             // sidePanel1
             // 
             sidePanel1.Controls.Add(singlePumpAnalyInfoCtrl1);
             sidePanel1.Dock = DockStyle.Right;
-            sidePanel1.Location = new Point(900, 93);
+            sidePanel1.Location = new Point(900, 48);
             sidePanel1.Name = "sidePanel1";
-            sidePanel1.Size = new Size(500, 929);
+            sidePanel1.Size = new Size(500, 974);
             sidePanel1.TabIndex = 3;
             sidePanel1.Text = "sidePanel1";
             // 
@@ -92,7 +78,7 @@
             singlePumpAnalyInfoCtrl1.Dock = DockStyle.Fill;
             singlePumpAnalyInfoCtrl1.Location = new Point(1, 0);
             singlePumpAnalyInfoCtrl1.Name = "singlePumpAnalyInfoCtrl1";
-            singlePumpAnalyInfoCtrl1.Size = new Size(499, 929);
+            singlePumpAnalyInfoCtrl1.Size = new Size(499, 974);
             singlePumpAnalyInfoCtrl1.TabIndex = 0;
             // 
             // pumpVariableSpeedChart1
@@ -101,9 +87,9 @@
             pumpVariableSpeedChart1.LineNameShowHz = false;
             pumpVariableSpeedChart1.LineNameVisible = true;
             pumpVariableSpeedChart1.LineVisible = false;
-            pumpVariableSpeedChart1.Location = new Point(0, 93);
+            pumpVariableSpeedChart1.Location = new Point(0, 48);
             pumpVariableSpeedChart1.Name = "pumpVariableSpeedChart1";
-            pumpVariableSpeedChart1.Size = new Size(900, 929);
+            pumpVariableSpeedChart1.Size = new Size(900, 974);
             pumpVariableSpeedChart1.TabIndex = 5;
             // 
             // SinglePumpAnalyDlg
@@ -127,10 +113,7 @@
         #endregion
 
         private DevExpress.XtraBars.Ribbon.RibbonControl ribbon;
-        private DevExpress.XtraBars.Ribbon.RibbonPage ribbonPage1;
-        private DevExpress.XtraBars.Ribbon.RibbonPageGroup ribbonPageGroup1;
         private SidePanel sidePanel1;
-        private DevExpress.XtraBars.BarButtonItem barButtonItem1;
         private Yw.WinFrmUI.Phart.PumpVariableSpeedChart pumpVariableSpeedChart1;
         private SinglePumpAnalyInfoCtrl singlePumpAnalyInfoCtrl1;
     }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyDlg.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyDlg.cs
index dba0dd3..4f533d2 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyDlg.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyDlg.cs
@@ -13,12 +13,15 @@
             InitChart();
         }
 
+        public event Func<PumpMatchingViewModel, bool> ReloadDataEvent;
+
         #region Init
-         
+
         private void InitChart()
         {
             this.pumpVariableSpeedChart1.LineVisible = true;
             this.pumpVariableSpeedChart1.LineNameShowHz = true;
+            this.pumpVariableSpeedChart1.SetEasyChart();
             this.singlePumpAnalyInfoCtrl1.SetEvent += (id, hz, ex_ratio, qh, qe, qp) =>
             {
                 this.pumpVariableSpeedChart1.Set(id, hz, ex_ratio, qh, qe, qp);
@@ -36,6 +39,8 @@
                 this.pumpVariableSpeedChart1.SetDesignPt(q, h);
                 ResetSectPointGrid();
             };
+
+
 
             this.pumpVariableSpeedChart1.OnCalcQueryPoint += (id, pt) =>
             {
@@ -59,6 +64,21 @@
                 AddByPoint();
                 ResetSectPointGrid();
             };
+
+            this.singlePumpAnalyInfoCtrl1.SaveEvent += (vm) =>
+            {
+                if (_vm == null)
+                {
+                    return;
+                }
+                _vm.CurrentHz = vm.CurrentHz;
+                var bol = this.ReloadDataEvent?.Invoke(_vm);
+                if (bol.HasValue && bol.Value)
+                {
+                    this.Close();
+                } 
+            };
+
         }
 
         private void ResetSectPointGrid()
@@ -196,15 +216,17 @@
 
         #endregion
 
+        private PumpMatchingViewModel _vm = null;
         public void SetBindindData(PumpMatchingViewModel pump_matching)
         {
+            _vm = pump_matching;
             SetChart(pump_matching);
         }
 
         //璁剧疆鍥捐〃鏁版嵁
-        private async void SetChart(PumpMatchingViewModel pump_matching)
+        private async void SetChart(PumpMatchingViewModel pump_math)
         {
-            if (!long.TryParse(pump_matching.DbId, out long pump_main_id))
+            if (!long.TryParse(pump_math.DbId, out long pump_main_id))
             {
                 return;
             }
@@ -253,7 +275,7 @@
              
             var def_vm = new SinglePumpAnalyViewModel();
             def_vm.Id = "def";
-            def_vm.Name = "50";
+            def_vm.Name = "棰濆畾鏇茬嚎";
             def_vm.RatedSpeed = pump_main.RatedSpeed;
             def_vm.CurrentSpeed = pump_main.RatedSpeed;
             def_vm.CurrentHz = 50;
@@ -267,10 +289,10 @@
 
             var working_vm = new SinglePumpAnalyViewModel();
             working_vm.Id = "working";
-            working_vm.Name = pump_matching.CurrentHz.ToString();
+            working_vm.Name = "璁惧畾鏇茬嚎";
             working_vm.RatedSpeed = pump_main.RatedSpeed;
-            working_vm.CurrentSpeed = Math.Round(pump_matching.CurrentHz / 50 * pump_main.RatedSpeed, 1);
-            working_vm.CurrentHz = pump_matching.CurrentHz;
+            working_vm.CurrentSpeed = Math.Round(pump_math.CurrentHz / 50 * pump_main.RatedSpeed, 1);
+            working_vm.CurrentHz = pump_math.CurrentHz;
             working_vm.IsDefault = false;
             working_vm.Color = Color.Red;
             working_vm.ExtendRatio = 100;
@@ -279,9 +301,8 @@
             working_vm.Qp = qp;
             working_vm.Calc();
 
-            var calcQ = pump_matching.CalcuQ;
-            var calcH = pump_matching.CalcuH;
-
+            var calc_flow = pump_math.CalcuQ;
+            var calc_head = pump_math.CalcuH; 
 
             var list = new List<SinglePumpAnalyViewModel>() { def_vm, working_vm };
             var list_yw = list.Select(x => x.ToInfo()).ToList();
@@ -289,10 +310,10 @@
             this.singlePumpAnalyInfoCtrl1.SetBindingData(list);
             this.pumpVariableSpeedChart1.Add(list_yw);
 
-            if (calcQ.HasValue && calcH.HasValue)
+            if (calc_flow.HasValue && calc_head.HasValue)
             {
-                var flow = Math.Round(calcQ.Value, 1);
-                var head = Math.Round(calcH.Value, 1);
+                var flow = Math.Round(calc_flow.Value, 1);
+                var head = Math.Round(calc_head.Value, 1);
 
                 this.singlePumpAnalyInfoCtrl1.SetDesignPoint(flow, head);
                 this.pumpVariableSpeedChart1.SetDesignPt(flow, head);
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.Designer.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.Designer.cs
index 4328c0a..86132b5 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.Designer.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.Designer.cs
@@ -34,8 +34,21 @@
             gridControl3 = new DevExpress.XtraGrid.GridControl();
             singlePumpAnalyViewModelBindingSource = new BindingSource(components);
             gridView3 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            colCurrentSpeed1 = new DevExpress.XtraGrid.Columns.GridColumn();
+            colCurrentHz2 = new DevExpress.XtraGrid.Columns.GridColumn();
+            colQueryQ = new DevExpress.XtraGrid.Columns.GridColumn();
+            colQueryH = new DevExpress.XtraGrid.Columns.GridColumn();
+            colQueryE = new DevExpress.XtraGrid.Columns.GridColumn();
+            colQueryP = new DevExpress.XtraGrid.Columns.GridColumn();
+            gridColumn1 = new DevExpress.XtraGrid.Columns.GridColumn();
             gridControl2 = new DevExpress.XtraGrid.GridControl();
             gridView2 = new DevExpress.XtraGrid.Views.Grid.GridView();
+            colCurrentSpeed2 = new DevExpress.XtraGrid.Columns.GridColumn();
+            colCurrentHz1 = new DevExpress.XtraGrid.Columns.GridColumn();
+            colSectQ = new DevExpress.XtraGrid.Columns.GridColumn();
+            colSectH = new DevExpress.XtraGrid.Columns.GridColumn();
+            colSectE = new DevExpress.XtraGrid.Columns.GridColumn();
+            colSectP = new DevExpress.XtraGrid.Columns.GridColumn();
             gridControl1 = new DevExpress.XtraGrid.GridControl();
             gridView1 = new DevExpress.XtraGrid.Views.Grid.GridView();
             colId = new DevExpress.XtraGrid.Columns.GridColumn();
@@ -51,6 +64,7 @@
             txtDesignQ = new TextEdit();
             txtDesignH = new TextEdit();
             btnSetDesignPoint = new SimpleButton();
+            btnSave = new SimpleButton();
             Root = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlGroup2 = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem2 = new DevExpress.XtraLayout.LayoutControlItem();
@@ -62,18 +76,8 @@
             layoutControlItem1 = new DevExpress.XtraLayout.LayoutControlItem();
             layoutControlGroup4 = new DevExpress.XtraLayout.LayoutControlGroup();
             layoutControlItem6 = new DevExpress.XtraLayout.LayoutControlItem();
-            colCurrentSpeed1 = new DevExpress.XtraGrid.Columns.GridColumn();
-            colCurrentHz2 = new DevExpress.XtraGrid.Columns.GridColumn();
-            colQueryQ = new DevExpress.XtraGrid.Columns.GridColumn();
-            colQueryH = new DevExpress.XtraGrid.Columns.GridColumn();
-            colQueryE = new DevExpress.XtraGrid.Columns.GridColumn();
-            colQueryP = new DevExpress.XtraGrid.Columns.GridColumn();
-            colCurrentSpeed2 = new DevExpress.XtraGrid.Columns.GridColumn();
-            colCurrentHz1 = new DevExpress.XtraGrid.Columns.GridColumn();
-            colSectQ = new DevExpress.XtraGrid.Columns.GridColumn();
-            colSectH = new DevExpress.XtraGrid.Columns.GridColumn();
-            colSectE = new DevExpress.XtraGrid.Columns.GridColumn();
-            colSectP = new DevExpress.XtraGrid.Columns.GridColumn();
+            layoutControlGroup5 = new DevExpress.XtraLayout.LayoutControlGroup();
+            layoutControlItem7 = new DevExpress.XtraLayout.LayoutControlItem();
             ((ISupportInitialize)layoutControl1).BeginInit();
             layoutControl1.SuspendLayout();
             ((ISupportInitialize)gridControl3).BeginInit();
@@ -97,6 +101,8 @@
             ((ISupportInitialize)layoutControlItem1).BeginInit();
             ((ISupportInitialize)layoutControlGroup4).BeginInit();
             ((ISupportInitialize)layoutControlItem6).BeginInit();
+            ((ISupportInitialize)layoutControlGroup5).BeginInit();
+            ((ISupportInitialize)layoutControlItem7).BeginInit();
             SuspendLayout();
             // 
             // layoutControl1
@@ -107,6 +113,7 @@
             layoutControl1.Controls.Add(txtDesignQ);
             layoutControl1.Controls.Add(txtDesignH);
             layoutControl1.Controls.Add(btnSetDesignPoint);
+            layoutControl1.Controls.Add(btnSave);
             layoutControl1.Dock = DockStyle.Fill;
             layoutControl1.Location = new Point(0, 0);
             layoutControl1.Name = "layoutControl1";
@@ -119,10 +126,10 @@
             // gridControl3
             // 
             gridControl3.DataSource = singlePumpAnalyViewModelBindingSource;
-            gridControl3.Location = new Point(0, 512);
+            gridControl3.Location = new Point(0, 478);
             gridControl3.MainView = gridView3;
             gridControl3.Name = "gridControl3";
-            gridControl3.Size = new Size(560, 167);
+            gridControl3.Size = new Size(560, 190);
             gridControl3.TabIndex = 6;
             gridControl3.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView3 });
             // 
@@ -132,278 +139,9 @@
             // 
             // gridView3
             // 
-            gridView3.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colCurrentSpeed1, colCurrentHz2, colQueryQ, colQueryH, colQueryE, colQueryP });
+            gridView3.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colCurrentSpeed1, colCurrentHz2, colQueryQ, colQueryH, colQueryE, colQueryP, gridColumn1 });
             gridView3.GridControl = gridControl3;
             gridView3.Name = "gridView3";
-            // 
-            // gridControl2
-            // 
-            gridControl2.DataSource = singlePumpAnalyViewModelBindingSource;
-            gridControl2.Location = new Point(0, 712);
-            gridControl2.MainView = gridView2;
-            gridControl2.Name = "gridControl2";
-            gridControl2.Size = new Size(560, 179);
-            gridControl2.TabIndex = 5;
-            gridControl2.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView2 });
-            // 
-            // gridView2
-            // 
-            gridView2.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colCurrentSpeed2, colCurrentHz1, colSectQ, colSectH, colSectE, colSectP });
-            gridView2.GridControl = gridControl2;
-            gridView2.Name = "gridView2";
-            // 
-            // gridControl1
-            // 
-            gridControl1.DataSource = singlePumpAnalyViewModelBindingSource;
-            gridControl1.Location = new Point(0, 124);
-            gridControl1.MainView = gridView1;
-            gridControl1.Name = "gridControl1";
-            gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repColor });
-            gridControl1.Size = new Size(560, 355);
-            gridControl1.TabIndex = 4;
-            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
-            // 
-            // gridView1
-            // 
-            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colId, colName, colIsBp, colRatedSpeed, colCurrentSpeed, colCurrentHz, colIsDefault, colColor, colExtendRatio });
-            gridView1.GridControl = gridControl1;
-            gridView1.Name = "gridView1";
-            gridView1.SortInfo.AddRange(new DevExpress.XtraGrid.Columns.GridColumnSortInfo[] { new DevExpress.XtraGrid.Columns.GridColumnSortInfo(colExtendRatio, DevExpress.Data.ColumnSortOrder.Ascending) });
-            gridView1.CellValueChanged += gridView1_CellValueChanged;
-            // 
-            // colId
-            // 
-            colId.FieldName = "Id";
-            colId.MinWidth = 30;
-            colId.Name = "colId";
-            colId.Width = 112;
-            // 
-            // colName
-            // 
-            colName.FieldName = "Name";
-            colName.MinWidth = 30;
-            colName.Name = "colName";
-            colName.Width = 112;
-            // 
-            // colIsBp
-            // 
-            colIsBp.FieldName = "IsBp";
-            colIsBp.MinWidth = 30;
-            colIsBp.Name = "colIsBp";
-            colIsBp.Width = 112;
-            // 
-            // colRatedSpeed
-            // 
-            colRatedSpeed.FieldName = "RatedSpeed";
-            colRatedSpeed.MinWidth = 30;
-            colRatedSpeed.Name = "colRatedSpeed";
-            colRatedSpeed.Width = 112;
-            // 
-            // colCurrentSpeed
-            // 
-            colCurrentSpeed.FieldName = "CurrentSpeed";
-            colCurrentSpeed.MinWidth = 30;
-            colCurrentSpeed.Name = "colCurrentSpeed";
-            colCurrentSpeed.Visible = true;
-            colCurrentSpeed.VisibleIndex = 2;
-            colCurrentSpeed.Width = 112;
-            // 
-            // colCurrentHz
-            // 
-            colCurrentHz.FieldName = "CurrentHz";
-            colCurrentHz.MinWidth = 30;
-            colCurrentHz.Name = "colCurrentHz";
-            colCurrentHz.Visible = true;
-            colCurrentHz.VisibleIndex = 1;
-            colCurrentHz.Width = 112;
-            // 
-            // colIsDefault
-            // 
-            colIsDefault.FieldName = "IsDefault";
-            colIsDefault.MinWidth = 30;
-            colIsDefault.Name = "colIsDefault";
-            colIsDefault.Width = 112;
-            // 
-            // colColor
-            // 
-            colColor.ColumnEdit = repColor;
-            colColor.FieldName = "Color";
-            colColor.MinWidth = 30;
-            colColor.Name = "colColor";
-            colColor.Visible = true;
-            colColor.VisibleIndex = 0;
-            colColor.Width = 112;
-            // 
-            // repColor
-            // 
-            repColor.AutoHeight = false;
-            repColor.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Combo) });
-            repColor.Name = "repColor";
-            repColor.NullColor = Color.Empty;
-            // 
-            // colExtendRatio
-            // 
-            colExtendRatio.FieldName = "ExtendRatio";
-            colExtendRatio.MinWidth = 30;
-            colExtendRatio.Name = "colExtendRatio";
-            colExtendRatio.Visible = true;
-            colExtendRatio.VisibleIndex = 3;
-            colExtendRatio.Width = 112;
-            // 
-            // txtDesignQ
-            // 
-            txtDesignQ.Location = new Point(114, 45);
-            txtDesignQ.Name = "txtDesignQ";
-            txtDesignQ.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtDesignQ.Size = new Size(137, 28);
-            txtDesignQ.StyleController = layoutControl1;
-            txtDesignQ.TabIndex = 0;
-            // 
-            // txtDesignH
-            // 
-            txtDesignH.Location = new Point(331, 45);
-            txtDesignH.Name = "txtDesignH";
-            txtDesignH.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
-            txtDesignH.Size = new Size(117, 28);
-            txtDesignH.StyleController = layoutControl1;
-            txtDesignH.TabIndex = 3;
-            // 
-            // btnSetDesignPoint
-            // 
-            btnSetDesignPoint.Appearance.BackColor = Color.White;
-            btnSetDesignPoint.Appearance.Options.UseBackColor = true;
-            btnSetDesignPoint.Appearance.Options.UseTextOptions = true;
-            btnSetDesignPoint.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
-            btnSetDesignPoint.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True;
-            btnSetDesignPoint.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("btnSetDesignPoint.ImageOptions.SvgImage");
-            btnSetDesignPoint.ImageOptions.SvgImageSize = new Size(20, 20);
-            btnSetDesignPoint.Location = new Point(452, 45);
-            btnSetDesignPoint.Name = "btnSetDesignPoint";
-            btnSetDesignPoint.Size = new Size(96, 34);
-            btnSetDesignPoint.StyleController = layoutControl1;
-            btnSetDesignPoint.TabIndex = 2;
-            btnSetDesignPoint.Text = "璁剧疆";
-            btnSetDesignPoint.Click += btnSetDesignPoint_Click;
-            // 
-            // Root
-            // 
-            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
-            Root.GroupBordersVisible = false;
-            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlGroup2, layoutControlGroup3, layoutControlGroup1, layoutControlGroup4 });
-            Root.Name = "Root";
-            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            Root.Size = new Size(560, 891);
-            Root.TextVisible = false;
-            // 
-            // layoutControlGroup2
-            // 
-            layoutControlGroup2.GroupStyle = DevExpress.Utils.GroupStyle.Title;
-            layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem4, layoutControlItem3 });
-            layoutControlGroup2.Location = new Point(0, 0);
-            layoutControlGroup2.Name = "layoutControlGroup2";
-            layoutControlGroup2.Size = new Size(560, 91);
-            layoutControlGroup2.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlGroup2.Text = "璁捐鐐�";
-            // 
-            // layoutControlItem2
-            // 
-            layoutControlItem2.Control = txtDesignQ;
-            layoutControlItem2.Location = new Point(0, 0);
-            layoutControlItem2.Name = "layoutControlItem2";
-            layoutControlItem2.Size = new Size(243, 38);
-            layoutControlItem2.Text = "娴侀噺(m鲁/h):";
-            layoutControlItem2.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.AutoSize;
-            layoutControlItem2.TextSize = new Size(97, 22);
-            layoutControlItem2.TextToControlDistance = 5;
-            // 
-            // layoutControlItem4
-            // 
-            layoutControlItem4.ContentHorzAlignment = DevExpress.Utils.HorzAlignment.Center;
-            layoutControlItem4.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
-            layoutControlItem4.Control = btnSetDesignPoint;
-            layoutControlItem4.Location = new Point(440, 0);
-            layoutControlItem4.MaxSize = new Size(100, 38);
-            layoutControlItem4.MinSize = new Size(100, 38);
-            layoutControlItem4.Name = "layoutControlItem4";
-            layoutControlItem4.Size = new Size(100, 38);
-            layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
-            layoutControlItem4.TextSize = new Size(0, 0);
-            layoutControlItem4.TextVisible = false;
-            // 
-            // layoutControlItem3
-            // 
-            layoutControlItem3.Control = txtDesignH;
-            layoutControlItem3.Location = new Point(243, 0);
-            layoutControlItem3.Name = "layoutControlItem3";
-            layoutControlItem3.Size = new Size(197, 38);
-            layoutControlItem3.Text = "鎵▼(m):";
-            layoutControlItem3.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.AutoSize;
-            layoutControlItem3.TextSize = new Size(71, 22);
-            layoutControlItem3.TextToControlDistance = 5;
-            // 
-            // layoutControlGroup3
-            // 
-            layoutControlGroup3.GroupStyle = DevExpress.Utils.GroupStyle.Title;
-            layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem5 });
-            layoutControlGroup3.Location = new Point(0, 679);
-            layoutControlGroup3.Name = "layoutControlGroup3";
-            layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlGroup3.Size = new Size(560, 212);
-            layoutControlGroup3.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlGroup3.Text = "璁捐鐐�";
-            // 
-            // layoutControlItem5
-            // 
-            layoutControlItem5.Control = gridControl2;
-            layoutControlItem5.Location = new Point(0, 0);
-            layoutControlItem5.Name = "layoutControlItem5";
-            layoutControlItem5.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlItem5.Size = new Size(560, 179);
-            layoutControlItem5.TextSize = new Size(0, 0);
-            layoutControlItem5.TextVisible = false;
-            // 
-            // layoutControlGroup1
-            // 
-            layoutControlGroup1.GroupStyle = DevExpress.Utils.GroupStyle.Title;
-            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 });
-            layoutControlGroup1.Location = new Point(0, 91);
-            layoutControlGroup1.Name = "layoutControlGroup1";
-            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlGroup1.Size = new Size(560, 388);
-            layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlGroup1.Text = "鏇茬嚎鍒楄〃";
-            // 
-            // layoutControlItem1
-            // 
-            layoutControlItem1.Control = gridControl1;
-            layoutControlItem1.Location = new Point(0, 0);
-            layoutControlItem1.Name = "layoutControlItem1";
-            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlItem1.Size = new Size(560, 355);
-            layoutControlItem1.Text = "鏇茬嚎鍒楄〃";
-            layoutControlItem1.TextSize = new Size(0, 0);
-            layoutControlItem1.TextVisible = false;
-            // 
-            // layoutControlGroup4
-            // 
-            layoutControlGroup4.GroupStyle = DevExpress.Utils.GroupStyle.Title;
-            layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem6 });
-            layoutControlGroup4.Location = new Point(0, 479);
-            layoutControlGroup4.Name = "layoutControlGroup4";
-            layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlGroup4.Size = new Size(560, 200);
-            layoutControlGroup4.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlGroup4.Text = "鏌ヨ鐐�";
-            // 
-            // layoutControlItem6
-            // 
-            layoutControlItem6.Control = gridControl3;
-            layoutControlItem6.Location = new Point(0, 0);
-            layoutControlItem6.Name = "layoutControlItem6";
-            layoutControlItem6.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
-            layoutControlItem6.Size = new Size(560, 167);
-            layoutControlItem6.TextSize = new Size(0, 0);
-            layoutControlItem6.TextVisible = false;
             // 
             // colCurrentSpeed1
             // 
@@ -459,6 +197,31 @@
             colQueryP.VisibleIndex = 5;
             colQueryP.Width = 112;
             // 
+            // gridColumn1
+            // 
+            gridColumn1.Caption = "gridColumn1";
+            gridColumn1.MinWidth = 30;
+            gridColumn1.Name = "gridColumn1";
+            gridColumn1.Visible = true;
+            gridColumn1.VisibleIndex = 6;
+            gridColumn1.Width = 112;
+            // 
+            // gridControl2
+            // 
+            gridControl2.DataSource = singlePumpAnalyViewModelBindingSource;
+            gridControl2.Location = new Point(0, 701);
+            gridControl2.MainView = gridView2;
+            gridControl2.Name = "gridControl2";
+            gridControl2.Size = new Size(560, 190);
+            gridControl2.TabIndex = 5;
+            gridControl2.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView2 });
+            // 
+            // gridView2
+            // 
+            gridView2.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colCurrentSpeed2, colCurrentHz1, colSectQ, colSectH, colSectE, colSectP });
+            gridView2.GridControl = gridControl2;
+            gridView2.Name = "gridView2";
+            // 
             // colCurrentSpeed2
             // 
             colCurrentSpeed2.FieldName = "CurrentSpeed";
@@ -513,6 +276,299 @@
             colSectP.VisibleIndex = 5;
             colSectP.Width = 112;
             // 
+            // gridControl1
+            // 
+            gridControl1.DataSource = singlePumpAnalyViewModelBindingSource;
+            gridControl1.Location = new Point(0, 124);
+            gridControl1.MainView = gridView1;
+            gridControl1.Name = "gridControl1";
+            gridControl1.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] { repColor });
+            gridControl1.Size = new Size(560, 321);
+            gridControl1.TabIndex = 4;
+            gridControl1.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] { gridView1 });
+            // 
+            // gridView1
+            // 
+            gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colId, colName, colIsBp, colRatedSpeed, colCurrentSpeed, colCurrentHz, colIsDefault, colColor, colExtendRatio });
+            gridView1.GridControl = gridControl1;
+            gridView1.Name = "gridView1";
+            gridView1.SortInfo.AddRange(new DevExpress.XtraGrid.Columns.GridColumnSortInfo[] { new DevExpress.XtraGrid.Columns.GridColumnSortInfo(colExtendRatio, DevExpress.Data.ColumnSortOrder.Ascending) });
+            gridView1.CellValueChanged += gridView1_CellValueChanged;
+            // 
+            // colId
+            // 
+            colId.FieldName = "Id";
+            colId.MinWidth = 30;
+            colId.Name = "colId";
+            colId.Width = 112;
+            // 
+            // colName
+            // 
+            colName.FieldName = "Name";
+            colName.MinWidth = 30;
+            colName.Name = "colName";
+            colName.Visible = true;
+            colName.VisibleIndex = 0;
+            colName.Width = 112;
+            // 
+            // colIsBp
+            // 
+            colIsBp.FieldName = "IsBp";
+            colIsBp.MinWidth = 30;
+            colIsBp.Name = "colIsBp";
+            colIsBp.Width = 112;
+            // 
+            // colRatedSpeed
+            // 
+            colRatedSpeed.FieldName = "RatedSpeed";
+            colRatedSpeed.MinWidth = 30;
+            colRatedSpeed.Name = "colRatedSpeed";
+            colRatedSpeed.Width = 112;
+            // 
+            // colCurrentSpeed
+            // 
+            colCurrentSpeed.FieldName = "CurrentSpeed";
+            colCurrentSpeed.MinWidth = 30;
+            colCurrentSpeed.Name = "colCurrentSpeed";
+            colCurrentSpeed.Visible = true;
+            colCurrentSpeed.VisibleIndex = 3;
+            colCurrentSpeed.Width = 112;
+            // 
+            // colCurrentHz
+            // 
+            colCurrentHz.FieldName = "CurrentHz";
+            colCurrentHz.MinWidth = 30;
+            colCurrentHz.Name = "colCurrentHz";
+            colCurrentHz.Visible = true;
+            colCurrentHz.VisibleIndex = 2;
+            colCurrentHz.Width = 112;
+            // 
+            // colIsDefault
+            // 
+            colIsDefault.FieldName = "IsDefault";
+            colIsDefault.MinWidth = 30;
+            colIsDefault.Name = "colIsDefault";
+            colIsDefault.Width = 112;
+            // 
+            // colColor
+            // 
+            colColor.ColumnEdit = repColor;
+            colColor.FieldName = "Color";
+            colColor.MinWidth = 30;
+            colColor.Name = "colColor";
+            colColor.Visible = true;
+            colColor.VisibleIndex = 1;
+            colColor.Width = 112;
+            // 
+            // repColor
+            // 
+            repColor.AutoHeight = false;
+            repColor.Buttons.AddRange(new EditorButton[] { new EditorButton(ButtonPredefines.Combo) });
+            repColor.Name = "repColor";
+            repColor.NullColor = Color.Empty;
+            // 
+            // colExtendRatio
+            // 
+            colExtendRatio.FieldName = "ExtendRatio";
+            colExtendRatio.MinWidth = 30;
+            colExtendRatio.Name = "colExtendRatio";
+            colExtendRatio.Visible = true;
+            colExtendRatio.VisibleIndex = 4;
+            colExtendRatio.Width = 112;
+            // 
+            // txtDesignQ
+            // 
+            txtDesignQ.Location = new Point(114, 45);
+            txtDesignQ.Name = "txtDesignQ";
+            txtDesignQ.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
+            txtDesignQ.Size = new Size(75, 28);
+            txtDesignQ.StyleController = layoutControl1;
+            txtDesignQ.TabIndex = 0;
+            // 
+            // txtDesignH
+            // 
+            txtDesignH.Location = new Point(269, 45);
+            txtDesignH.Name = "txtDesignH";
+            txtDesignH.Properties.MaskSettings.Set("MaskManagerType", typeof(DevExpress.Data.Mask.NumericMaskManager));
+            txtDesignH.Size = new Size(75, 28);
+            txtDesignH.StyleController = layoutControl1;
+            txtDesignH.TabIndex = 3;
+            // 
+            // btnSetDesignPoint
+            // 
+            btnSetDesignPoint.Appearance.BackColor = Color.White;
+            btnSetDesignPoint.Appearance.Options.UseBackColor = true;
+            btnSetDesignPoint.Appearance.Options.UseTextOptions = true;
+            btnSetDesignPoint.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
+            btnSetDesignPoint.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True;
+            btnSetDesignPoint.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("btnSetDesignPoint.ImageOptions.SvgImage");
+            btnSetDesignPoint.ImageOptions.SvgImageSize = new Size(18, 18);
+            btnSetDesignPoint.Location = new Point(348, 46);
+            btnSetDesignPoint.Name = "btnSetDesignPoint";
+            btnSetDesignPoint.Size = new Size(96, 32);
+            btnSetDesignPoint.StyleController = layoutControl1;
+            btnSetDesignPoint.TabIndex = 2;
+            btnSetDesignPoint.Text = "璁剧疆";
+            btnSetDesignPoint.Click += btnSetDesignPoint_Click;
+            // 
+            // btnSave
+            // 
+            btnSave.Appearance.BackColor = DevExpress.LookAndFeel.DXSkinColors.FillColors.Question;
+            btnSave.Appearance.ForeColor = Color.White;
+            btnSave.Appearance.Options.UseBackColor = true;
+            btnSave.Appearance.Options.UseForeColor = true;
+            btnSave.ImageOptions.AllowGlyphSkinning = DevExpress.Utils.DefaultBoolean.True;
+            btnSave.ImageOptions.SvgImage = (DevExpress.Utils.Svg.SvgImage)resources.GetObject("btnSave.ImageOptions.SvgImage");
+            btnSave.ImageOptions.SvgImageSize = new Size(18, 18);
+            btnSave.Location = new Point(468, 46);
+            btnSave.Name = "btnSave";
+            btnSave.Size = new Size(80, 32);
+            btnSave.StyleController = layoutControl1;
+            btnSave.TabIndex = 7;
+            btnSave.Text = "淇濆瓨";
+            btnSave.Click += btnSave_Click;
+            // 
+            // Root
+            // 
+            Root.EnableIndentsWithoutBorders = DevExpress.Utils.DefaultBoolean.True;
+            Root.GroupBordersVisible = false;
+            Root.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlGroup2, layoutControlGroup3, layoutControlGroup1, layoutControlGroup4, layoutControlGroup5 });
+            Root.Name = "Root";
+            Root.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            Root.Size = new Size(560, 891);
+            Root.TextVisible = false;
+            // 
+            // layoutControlGroup2
+            // 
+            layoutControlGroup2.GroupStyle = DevExpress.Utils.GroupStyle.Title;
+            layoutControlGroup2.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem2, layoutControlItem4, layoutControlItem3 });
+            layoutControlGroup2.Location = new Point(0, 0);
+            layoutControlGroup2.Name = "layoutControlGroup2";
+            layoutControlGroup2.Size = new Size(456, 91);
+            layoutControlGroup2.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlGroup2.Text = "璁捐鐐�";
+            // 
+            // layoutControlItem2
+            // 
+            layoutControlItem2.Control = txtDesignQ;
+            layoutControlItem2.Location = new Point(0, 0);
+            layoutControlItem2.Name = "layoutControlItem2";
+            layoutControlItem2.Size = new Size(181, 38);
+            layoutControlItem2.Text = "娴侀噺(m鲁/h):";
+            layoutControlItem2.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.AutoSize;
+            layoutControlItem2.TextSize = new Size(97, 22);
+            layoutControlItem2.TextToControlDistance = 5;
+            // 
+            // layoutControlItem4
+            // 
+            layoutControlItem4.ContentHorzAlignment = DevExpress.Utils.HorzAlignment.Center;
+            layoutControlItem4.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
+            layoutControlItem4.Control = btnSetDesignPoint;
+            layoutControlItem4.Location = new Point(336, 0);
+            layoutControlItem4.MaxSize = new Size(100, 38);
+            layoutControlItem4.MinSize = new Size(100, 38);
+            layoutControlItem4.Name = "layoutControlItem4";
+            layoutControlItem4.Size = new Size(100, 38);
+            layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
+            layoutControlItem4.TextSize = new Size(0, 0);
+            layoutControlItem4.TextVisible = false;
+            // 
+            // layoutControlItem3
+            // 
+            layoutControlItem3.Control = txtDesignH;
+            layoutControlItem3.Location = new Point(181, 0);
+            layoutControlItem3.Name = "layoutControlItem3";
+            layoutControlItem3.Size = new Size(155, 38);
+            layoutControlItem3.Text = "鎵▼(m):";
+            layoutControlItem3.TextAlignMode = DevExpress.XtraLayout.TextAlignModeItem.AutoSize;
+            layoutControlItem3.TextSize = new Size(71, 22);
+            layoutControlItem3.TextToControlDistance = 5;
+            // 
+            // layoutControlGroup3
+            // 
+            layoutControlGroup3.GroupStyle = DevExpress.Utils.GroupStyle.Title;
+            layoutControlGroup3.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem5 });
+            layoutControlGroup3.Location = new Point(0, 668);
+            layoutControlGroup3.Name = "layoutControlGroup3";
+            layoutControlGroup3.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlGroup3.Size = new Size(560, 223);
+            layoutControlGroup3.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlGroup3.Text = "璁捐鐐�";
+            // 
+            // layoutControlItem5
+            // 
+            layoutControlItem5.Control = gridControl2;
+            layoutControlItem5.Location = new Point(0, 0);
+            layoutControlItem5.Name = "layoutControlItem5";
+            layoutControlItem5.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlItem5.Size = new Size(560, 190);
+            layoutControlItem5.TextSize = new Size(0, 0);
+            layoutControlItem5.TextVisible = false;
+            // 
+            // layoutControlGroup1
+            // 
+            layoutControlGroup1.GroupStyle = DevExpress.Utils.GroupStyle.Title;
+            layoutControlGroup1.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem1 });
+            layoutControlGroup1.Location = new Point(0, 91);
+            layoutControlGroup1.Name = "layoutControlGroup1";
+            layoutControlGroup1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlGroup1.Size = new Size(560, 354);
+            layoutControlGroup1.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlGroup1.Text = "鏇茬嚎鍒楄〃";
+            // 
+            // layoutControlItem1
+            // 
+            layoutControlItem1.Control = gridControl1;
+            layoutControlItem1.Location = new Point(0, 0);
+            layoutControlItem1.Name = "layoutControlItem1";
+            layoutControlItem1.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlItem1.Size = new Size(560, 321);
+            layoutControlItem1.Text = "鏇茬嚎鍒楄〃";
+            layoutControlItem1.TextSize = new Size(0, 0);
+            layoutControlItem1.TextVisible = false;
+            // 
+            // layoutControlGroup4
+            // 
+            layoutControlGroup4.GroupStyle = DevExpress.Utils.GroupStyle.Title;
+            layoutControlGroup4.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem6 });
+            layoutControlGroup4.Location = new Point(0, 445);
+            layoutControlGroup4.Name = "layoutControlGroup4";
+            layoutControlGroup4.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlGroup4.Size = new Size(560, 223);
+            layoutControlGroup4.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlGroup4.Text = "鏌ヨ鐐�";
+            // 
+            // layoutControlItem6
+            // 
+            layoutControlItem6.Control = gridControl3;
+            layoutControlItem6.Location = new Point(0, 0);
+            layoutControlItem6.Name = "layoutControlItem6";
+            layoutControlItem6.Padding = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlItem6.Size = new Size(560, 190);
+            layoutControlItem6.TextSize = new Size(0, 0);
+            layoutControlItem6.TextVisible = false;
+            // 
+            // layoutControlGroup5
+            // 
+            layoutControlGroup5.GroupStyle = DevExpress.Utils.GroupStyle.Title;
+            layoutControlGroup5.Items.AddRange(new DevExpress.XtraLayout.BaseLayoutItem[] { layoutControlItem7 });
+            layoutControlGroup5.Location = new Point(456, 0);
+            layoutControlGroup5.Name = "layoutControlGroup5";
+            layoutControlGroup5.Size = new Size(104, 91);
+            layoutControlGroup5.Spacing = new DevExpress.XtraLayout.Utils.Padding(0, 0, 0, 0);
+            layoutControlGroup5.Text = "鎿嶄綔";
+            // 
+            // layoutControlItem7
+            // 
+            layoutControlItem7.ContentHorzAlignment = DevExpress.Utils.HorzAlignment.Center;
+            layoutControlItem7.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
+            layoutControlItem7.Control = btnSave;
+            layoutControlItem7.Location = new Point(0, 0);
+            layoutControlItem7.Name = "layoutControlItem7";
+            layoutControlItem7.Size = new Size(84, 38);
+            layoutControlItem7.TextSize = new Size(0, 0);
+            layoutControlItem7.TextVisible = false;
+            // 
             // SinglePumpAnalyInfoCtrl
             // 
             AutoScaleDimensions = new SizeF(10F, 22F);
@@ -543,6 +599,8 @@
             ((ISupportInitialize)layoutControlItem1).EndInit();
             ((ISupportInitialize)layoutControlGroup4).EndInit();
             ((ISupportInitialize)layoutControlItem6).EndInit();
+            ((ISupportInitialize)layoutControlGroup5).EndInit();
+            ((ISupportInitialize)layoutControlItem7).EndInit();
             ResumeLayout(false);
         }
 
@@ -592,5 +650,9 @@
         private DevExpress.XtraGrid.Columns.GridColumn colSectH;
         private DevExpress.XtraGrid.Columns.GridColumn colSectE;
         private DevExpress.XtraGrid.Columns.GridColumn colSectP;
+        private DevExpress.XtraGrid.Columns.GridColumn gridColumn1;
+        private SimpleButton btnSave;
+        private DevExpress.XtraLayout.LayoutControlGroup layoutControlGroup5;
+        private DevExpress.XtraLayout.LayoutControlItem layoutControlItem7;
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.cs b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.cs
index bb2c8c9..6f3f588 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.cs
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.cs
@@ -1,6 +1,4 @@
-锘縰sing Yw.WinFrmUI.Phart;
-
-namespace HStation.WinFrmUI.Xhs
+锘縩amespace HStation.WinFrmUI.Xhs
 {
     public partial class SinglePumpAnalyInfoCtrl : DevExpress.XtraEditors.XtraUserControl
     {
@@ -19,7 +17,7 @@
 
             this.colName.OptionsColumn.AllowEdit = false;
             this.colName.OptionsColumn.ReadOnly = true;
-            this.colName.Visible = false;
+
 
             this.colColor.OptionsColumn.AllowEdit = false;
             this.colColor.OptionsColumn.ReadOnly = true;
@@ -30,27 +28,30 @@
 
         }
 
-       
-
 
 
         /// <summary>
         /// 璁剧疆鏇茬嚎
         /// </summary> 
-        public event Action<string,double,double, Yw.Geometry.CubicSpline2d, Yw.Geometry.CubicSpline2d, Yw.Geometry.CubicSpline2d> SetEvent;
+        public event Action<string, double, double, Yw.Geometry.CubicSpline2d, Yw.Geometry.CubicSpline2d, Yw.Geometry.CubicSpline2d> SetEvent;
 
         /// <summary>
         /// 璁剧疆鏇茬嚎淇℃伅
         /// </summary> 
-        public event Action<string,Color> SetInfoEvent;
+        public event Action<string, Color> SetInfoEvent;
 
         /// <summary>
         /// 璁剧疆璁捐鐐�
         /// </summary> 
         public event Action<double, double> SetDesignPointEvent;
 
+        /// <summary>
+        /// 淇濆瓨浜嬩欢
+        /// </summary> 
+        public event Action<SinglePumpAnalyViewModel> SaveEvent;
+
         private List<SinglePumpAnalyViewModel> _all_binding_list = null;
-         
+
         public void SetBindingData(List<SinglePumpAnalyViewModel> vm_list)
         {
             _all_binding_list = new List<SinglePumpAnalyViewModel>();
@@ -65,7 +66,6 @@
             this.gridView2.BestFitColumns();
             this.gridView3.BestFitColumns();
         }
-
 
         public void SetDesignPoint(double flow, double head)
         {
@@ -112,7 +112,7 @@
                 }
             }
         }
-         
+
         //鍊煎彉鎹�
         private void gridView1_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
         {
@@ -127,7 +127,7 @@
                 vm.Calc();
                 this.singlePumpAnalyViewModelBindingSource.ResetBindings(false);
                 this.SetEvent?.Invoke(vm.Id, vm.CurrentHz, vm.ExtendRatio, vm.QhCalc, vm.QeCalc, vm.QpCalc);
-            } 
+            }
             else if (e.Column == this.colExtendRatio)
             {
                 var vm = this.gridView1.GetRow(e.RowHandle) as SinglePumpAnalyViewModel;
@@ -161,7 +161,7 @@
         /// 璁剧疆璁捐鐐逛俊鎭�
         /// </summary> 
         public void SetSectPointList(List<Yw.WinFrmUI.Phart.PumpSectPointViewModel> vm_list)
-        { 
+        {
             if (_all_binding_list == null || !_all_binding_list.Any())
                 return;
             _all_binding_list.ForEach(vm =>
@@ -173,11 +173,11 @@
 
                 var pt = vm_list?.Find(x => x.Id == vm.Id);
                 if (pt != null)
-                { 
+                {
                     vm.SectQ = pt.QueryQ;
                     vm.SectH = pt.QueryH;
                     vm.SectE = pt.QueryE;
-                    vm.SectP = pt.QueryP; 
+                    vm.SectP = pt.QueryP;
                 };
             });
             this.singlePumpAnalyViewModelBindingSource.ResetBindings(false);
@@ -194,6 +194,12 @@
             this.SetDesignPointEvent?.Invoke(design_q, design_h);
         }
 
-
+        private void btnSave_Click(object sender, EventArgs e)
+        {
+            if (XtraMessageBox.Show("鏄惁淇濆瓨鏁版嵁锛�", "鎻愮ず淇℃伅", MessageBoxButtons.YesNo, MessageBoxIcon.Information) != DialogResult.Yes)
+                return;
+            var vm = _all_binding_list.Last();
+            this.SaveEvent?.Invoke(vm);
+        }
     }
 }
diff --git a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.resx b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.resx
index 9fc3e0f..2085500 100644
--- a/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.resx
+++ b/WinFrmUI/HStation.WinFrmUI.Xhs.Core/04-pump/02-analy/SinglePumpAnalyInfoCtrl.resx
@@ -142,4 +142,20 @@
         ICA8L2c+DQo8L3N2Zz4L
 </value>
   </data>
+  <data name="btnSave.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v23.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
+    <value>
+        AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIzLjIsIFZlcnNpb249MjMuMi40
+        LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
+        dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAO4BAAAC77u/
+        PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
+        IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
+        MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
+        Y2U9InByZXNlcnZlIiBpZD0iU2F2ZSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzIg
+        MzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9Cjwvc3R5
+        bGU+DQogIDxwYXRoIGQ9Ik0yNyw0aC0zdjEwSDhWNEg1QzQuNCw0LDQsNC40LDQsNXYyMmMwLDAuNiww
+        LjQsMSwxLDFoMjJjMC42LDAsMS0wLjQsMS0xVjVDMjgsNC40LDI3LjYsNCwyNyw0eiBNMjQsMjRIOHYt
+        NiAgaDE2VjI0eiBNMTAsNHY4aDEwVjRIMTB6IE0xNCwxMGgtMlY2aDJWMTB6IiBjbGFzcz0iQmxhY2si
+        IC8+DQo8L3N2Zz4L
+</value>
+  </data>
 </root>
\ No newline at end of file
diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs
index 8187ea1..ff945f7 100644
--- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs
@@ -550,11 +550,11 @@
             }
 
             if (_qe_pt_list != null && _qe_pt_list.Count > 3)
-            {
+            { 
                 _series_qe.Visible = true;
                 _series_qe.Points.Clear();
                 foreach (var pt in _qe_pt_list)
-                {
+                { 
                     var series_pt = new SeriesPoint(pt.X, pt.Y);
                     _series_qe.Points.Add(series_pt);
                 }
diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpParallelInfoCtrl.Designer.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpParallelInfoCtrl.Designer.cs
index e94e373..c32b35c 100644
--- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpParallelInfoCtrl.Designer.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpParallelInfoCtrl.Designer.cs
@@ -531,9 +531,11 @@
             layoutControlItem4.ContentVertAlignment = DevExpress.Utils.VertAlignment.Center;
             layoutControlItem4.Control = btnSetDesignPoint;
             layoutControlItem4.Location = new Point(336, 0);
+            layoutControlItem4.MaxSize = new Size(0, 36);
+            layoutControlItem4.MinSize = new Size(79, 36);
             layoutControlItem4.Name = "layoutControlItem4";
             layoutControlItem4.Size = new Size(79, 36);
-            layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.SupportHorzAlignment;
+            layoutControlItem4.SizeConstraintsType = DevExpress.XtraLayout.SizeConstraintsType.Custom;
             layoutControlItem4.TextSize = new Size(0, 0);
             layoutControlItem4.TextVisible = false;
             // 
diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/04-variable-speed/PumpVariableSpeedChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/04-variable-speed/PumpVariableSpeedChart.cs
index a6e8ca3..21b7f39 100644
--- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/04-variable-speed/PumpVariableSpeedChart.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/04-variable-speed/PumpVariableSpeedChart.cs
@@ -765,21 +765,21 @@
         /// <summary>
         /// 鍒涘缓绾跨郴鍒�
         /// </summary> 
-        private void CreateLineSeries(PumpVariableSpeedInfoViewModel curve)
+        private void CreateLineSeries(PumpVariableSpeedInfoViewModel vm)
         {
             var series_qh = new DevExpress.XtraCharts.Series();
             series_qh.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
             series_qh.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
-            series_qh.Name = _tag_qh + curve.Id.ToString();
+            series_qh.Name = _tag_qh + vm.Id.ToString();
             series_qh.ShowInLegend = false;
             series_qh.CrosshairEnabled = DefaultBoolean.False;
-            series_qh.Tag = curve.Id.ToString();
+            series_qh.Tag = vm.Id.ToString();
             series_qh.ShowInLegend = true;
-            series_qh.LegendTextPattern = curve.Name;
+            series_qh.LegendTextPattern = vm.Name;
 
             var series_qh_view = new DevExpress.XtraCharts.SplineSeriesView();
             series_qh_view.LineStyle.Thickness = 2;
-            series_qh_view.Color = curve.Color;
+            series_qh_view.Color = vm.Color;
             series_qh_view.EnableAntialiasing = DefaultBoolean.True;
 
             series_qh.SeriesPointsSorting = SortingMode.None;
@@ -787,7 +787,7 @@
             series_qh.View = series_qh_view;
             series_qh.Visible = _qh_visible;
 
-            var pointsQH = curve.QhCalc.GetPointList(12);
+            var pointsQH = vm.QhCalc.GetPointList(12);
             for (int i = 0; i < pointsQH.Count; i++)
             {
                 series_qh.Points.Add(new SeriesPoint(pointsQH[i].X, new double[] { pointsQH[i].Y }));
@@ -809,10 +809,10 @@
             txt_qh.AutoHeight = true;
             txt_qh.AutoWidth = true;
             txt_qh.BackColor = System.Drawing.Color.Transparent;
-            txt_qh.Border.Color = curve.Color;
+            txt_qh.Border.Color = vm.Color;
             txt_qh.ConnectorStyle = DevExpress.XtraCharts.AnnotationConnectorStyle.Line;
             txt_qh.DXFont = Perform2dChartDisplay.AnnoFontQH;
-            txt_qh.Name = _tag_qh + curve.Id.ToString();
+            txt_qh.Name = _tag_qh + vm.Id.ToString();
             txt_qh.Padding.Bottom = 1;
             txt_qh.Padding.Left = 1;
             txt_qh.Padding.Right = 1;
@@ -820,27 +820,27 @@
             txt_qh.RuntimeAnchoring = false;
             txt_qh.RuntimeMoving = true;
             txt_qh.RuntimeResizing = false;
-            txt_qh.RuntimeRotation = false;
-            txt_qh.Text = curve.Name;
-            txt_qh.TextColor = curve.Color;
+            txt_qh.RuntimeRotation = false; 
+            txt_qh.Text = LineNameShowHz ? vm.CurrentHz.ToString() : vm.CurrentSpeed.ToString(); ;
+            txt_qh.TextColor = vm.Color;
             txt_qh.ShapePosition = position_qh;
             txt_qh.Visible = _line_name_visible;
             this.chartControl1.AnnotationRepository.Add(txt_qh);
             this.chartControl1.Series.Add(series_qh);
 
-            if (curve.QeCalc != null)
+            if (vm.QeCalc != null)
             {
                 var series_qe = new DevExpress.XtraCharts.Series();
                 series_qe.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
                 series_qe.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
-                series_qe.Name = _tag_qe + curve.Id.ToString();
+                series_qe.Name = _tag_qe + vm.Id.ToString();
                 series_qe.ShowInLegend = false;
                 series_qe.CrosshairEnabled = DefaultBoolean.False;
-                series_qe.Tag = curve.Id.ToString();
+                series_qe.Tag = vm.Id.ToString();
 
                 var series_qe_view = new DevExpress.XtraCharts.SplineSeriesView();
                 series_qe_view.LineStyle.Thickness = 2;
-                series_qe_view.Color = curve.Color;
+                series_qe_view.Color = vm.Color;
                 series_qe_view.AxisY = _axis_y_qe;
                 series_qe_view.Pane = _pane_qe;
                 series_qe_view.EnableAntialiasing = DefaultBoolean.True;
@@ -850,7 +850,7 @@
                 series_qe.View = series_qe_view;
                 series_qe.Visible = _qe_visible;
 
-                var pointsQE = curve.QeCalc.GetPointList(12);
+                var pointsQE = vm.QeCalc.GetPointList(12);
                 for (int i = 0; i < pointsQE.Count; i++)
                 {
                     series_qe.Points.Add(new SeriesPoint(pointsQE[i].X, new double[] { pointsQE[i].Y }));
@@ -859,19 +859,19 @@
                 this.chartControl1.Series.Add(series_qe);
             }
 
-            if (curve.QpCalc != null)
+            if (vm.QpCalc != null)
             {
                 var series_qp = new DevExpress.XtraCharts.Series();
                 series_qp.ArgumentScaleType = DevExpress.XtraCharts.ScaleType.Numerical;
                 series_qp.LabelsVisibility = DevExpress.Utils.DefaultBoolean.False;
-                series_qp.Name = _tag_qp + curve.Id.ToString();
+                series_qp.Name = _tag_qp + vm.Id.ToString();
                 series_qp.ShowInLegend = false;
                 series_qp.CrosshairEnabled = DefaultBoolean.False;
-                series_qp.Tag = curve.Id.ToString();
+                series_qp.Tag = vm.Id.ToString();
 
                 var series_qp_view = new DevExpress.XtraCharts.SplineSeriesView();
                 series_qp_view.LineStyle.Thickness = 2;
-                series_qp_view.Color = curve.Color;
+                series_qp_view.Color = vm.Color;
                 series_qp_view.AxisY = _axis_y_qp;
                 series_qp_view.Pane = _pane_qp;
                 series_qp_view.EnableAntialiasing = DefaultBoolean.True;
@@ -881,7 +881,7 @@
                 series_qp.View = series_qp_view;
                 series_qp.Visible = _qp_visible;
 
-                var pointsQP = curve.QpCalc.GetPointList(12);
+                var pointsQP = vm.QpCalc.GetPointList(12);
                 for (int i = 0; i < pointsQP.Count; i++)
                 {
                     series_qp.Points.Add(new SeriesPoint(pointsQP[i].X, new double[] { pointsQP[i].Y }));
diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/05-import/01-excel/ImportPumpPerform2dByExcelCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/05-import/01-excel/ImportPumpPerform2dByExcelCtrl.cs
index d8aae05..ba956de 100644
--- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/05-import/01-excel/ImportPumpPerform2dByExcelCtrl.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/05-import/01-excel/ImportPumpPerform2dByExcelCtrl.cs
@@ -296,6 +296,8 @@
             _qh = new Yw.Geometry.CubicSpline2d(_qh_pt_list);
             _qe = new Yw.Geometry.CubicSpline2d(_qe_pt_list);
             _qp = new Yw.Geometry.CubicSpline2d(_qp_pt_list);
+
+            var test_pt_list = _qe.GetPointList( );
             this.xtrPerform2dChart1.SetBindingData(_qh, _qe, _qp, string.Empty, true);
             return true;
         }

--
Gitblit v1.9.3