Hydro/Yw.Hydro.Core/Yw.Hydro.Core.csproj
@@ -7,7 +7,7 @@ </PropertyGroup> <ItemGroup> <PackageReference Include="Yw.Service.Hydro.Core" Version="3.6.3" /> <PackageReference Include="Yw.Service.Hydro.Core" Version="3.6.5" /> </ItemGroup> <ItemGroup> WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.Designer.cs
@@ -107,7 +107,7 @@ ribbonControl1.ShowPageHeadersMode = DevExpress.XtraBars.Ribbon.ShowPageHeadersMode.ShowOnMultiplePages; ribbonControl1.ShowQatLocationSelector = false; ribbonControl1.ShowToolbarCustomizeItem = false; ribbonControl1.Size = new Size(1206, 101); ribbonControl1.Size = new Size(1206, 128); ribbonControl1.Toolbar.ShowCustomizeItem = false; ribbonControl1.ToolbarLocation = DevExpress.XtraBars.Ribbon.RibbonQuickAccessToolbarLocation.Hidden; // @@ -418,12 +418,12 @@ tabPane1.Controls.Add(tabPageBimface); tabPane1.Controls.Add(tabPageQ3d); tabPane1.Dock = DockStyle.Fill; tabPane1.Location = new Point(0, 101); tabPane1.Location = new Point(0, 128); tabPane1.Name = "tabPane1"; tabPane1.Pages.AddRange(new DevExpress.XtraBars.Navigation.NavigationPageBase[] { tabPageBimface, tabPageQ3d }); tabPane1.RegularSize = new Size(931, 434); tabPane1.RegularSize = new Size(931, 407); tabPane1.SelectedPage = tabPageBimface; tabPane1.Size = new Size(931, 434); tabPane1.Size = new Size(931, 407); tabPane1.TabIndex = 1; tabPane1.Text = "tabPane1"; // @@ -450,17 +450,17 @@ docPnlRight.Controls.Add(controlContainerRight); docPnlRight.Dock = DevExpress.XtraBars.Docking.DockingStyle.Right; docPnlRight.ID = new Guid("cffe2560-3445-4488-83cf-b9e4b936ff18"); docPnlRight.Location = new Point(931, 101); docPnlRight.Location = new Point(931, 128); docPnlRight.Name = "docPnlRight"; docPnlRight.OriginalSize = new Size(275, 200); docPnlRight.Size = new Size(275, 599); docPnlRight.Size = new Size(275, 572); docPnlRight.Text = "屿§"; // // controlContainerRight // controlContainerRight.Location = new Point(4, 26); controlContainerRight.Name = "controlContainerRight"; controlContainerRight.Size = new Size(268, 570); controlContainerRight.Size = new Size(268, 543); controlContainerRight.TabIndex = 0; // // docPnlBottom WinFrmUI/HStation.WinFrmUI.Xhs.Core/03-simulation/06-simulation/XhsProjectSimulationCorePage.cs
@@ -1,7 +1,9 @@ global using Yw.EPAnet; using DevExpress.Mvvm.Native; using DevExpress.XtraRichEdit.Layout; using DevExpress.XtraSpreadsheet.Commands; using HStation.WinFrmUI.PhartRelation; using Yw.Pump; using Yw.WinFrmUI.Bimface; using Yw.WinFrmUI.Hydro; @@ -245,50 +247,22 @@ { ShowPropertyCtrl(); } if (_parter == null) { _propertyCtrl?.SelectParter(null); return; } _propertyCtrl?.SelectParter(_parter.Code); if (_calcuResult != null) { if (_calcuResult.Succeed) { var allCalcuParterList = _calcuResult.GetParterList(); var calcuParter = allCalcuParterList.Find(x => x.Id == _parter.Code); if (calcuParter != null) { IHydroCalcuResult calcuProperty = null; if (calcuParter is Yw.EPAnet.CalcuNode calcuNode) { var calcuNodeProperty = new Yw.WinFrmUI.HydroCalcuNodeResult(); calcuNodeProperty.Code = _parter.Code; calcuNodeProperty.CalcuPress = calcuNode.Press; calcuNodeProperty.CalcuDemand = calcuNode.Demand; calcuNodeProperty.CalcuHead = calcuNode.Head; calcuProperty = calcuNodeProperty; } else if (calcuParter is Yw.EPAnet.CalcuLink calcuLink) { var calcuLinkProperty = new Yw.WinFrmUI.HydroCalcuLinkResult(); calcuLinkProperty.Code = _parter.Code; calcuLinkProperty.CalcuHeadLoss = calcuLink.Headloss; calcuLinkProperty.CalcuFlow = calcuLink.Flow; calcuLinkProperty.CalcuVelocity = calcuLink.Velocity; calcuProperty = calcuLinkProperty; } if (calcuProperty != null) { _propertyCtrl?.UpdateCalcuProperty(calcuProperty); } } var allCalcuResultList = GetAllCalcuResultList(); if (allCalcuResultList != null && allCalcuResultList.Count > 0) { var calcuResult = allCalcuResultList.Find(x => x.Code == _parter.Code); if (calcuResult != null) { _propertyCtrl?.UpdateCalcuProperty(calcuResult); } } } #endregion @@ -970,6 +944,68 @@ #region æ°´åè®¡ç® #region åææ¡ä»¶ //æ¾ç¤ºè®¡ç®åææ¡ä»¶çªä½ private async void ShowCalcuPrefixDlg() { if (_hydroInfo == null) { return; } var dlg = new SetHydroCalcuPrefixDlg(); dlg.SetBindingData(_hydroInfo); dlg.HydroViewEvent += async (parter) => { _parter = parter; if (_parter != null) { await _bimfaceCtrl?.ZoomAndSelectComponents(new List<string>() { _parter.Code }); } ShowProperty(); }; dlg.HydroCalcuEvent += async () => { if (_hydroInfo == null) { return; } //æ ¡éª _checkResult = _hydroInfo.Check(); if (!_checkResult.Succeed) { ShowCheckCtrl(); TipFormHelper.ShowWarn("æ ¡éªå¤±è´¥ï¼è¯·æ£æ¥åéè¯"); return; } var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); _calcuResult = netWork.Calcu(); if (_calcuResult.Succeed) { GetAllCalcuResultList(false); await _bimfaceCtrl?.SetLogicCalcuCustomLabels(_calcuResult); TipFormHelper.ShowSucceed("è®¡ç®æåï¼"); } else { ShowCalcuFailedCtrl(); TipFormHelper.ShowError("计ç®å¤±è´¥ï¼"); } }; if (dlg.ShowDialog() == DialogResult.Cancel) { await _bimfaceCtrl?.ClearLogicCalcuCustomLabels(); } } #endregion #region 计ç®å¤±è´¥ //计ç®å¤±è´¥æ§ä»¶ private HydroCalcuFailedCtrl _calcuFailedCtrl = null; @@ -1008,8 +1044,16 @@ this.docPnlBottom.Height = 350; } #endregion #region 计ç®ç»æ //ææè®¡ç®ç»æå表 private List<IHydroCalcuResult> _allCalcuResultList = null; //è·å计ç®ç»æ private List<IHydroCalcuResult> GetAllCalcuResultList() //true 使ç¨ç¼åï¼false ä¸ä½¿ç¨ç¼å private List<IHydroCalcuResult> GetAllCalcuResultList(bool isCache = true) { if (_hydroInfo == null) { @@ -1023,7 +1067,12 @@ { return default; } var list = new List<IHydroCalcuResult>(); if (isCache) { return _allCalcuResultList; } _allCalcuResultList = new List<IHydroCalcuResult>(); var allNodeList = _hydroInfo.GetAllNodes(); if (allNodeList != null && allNodeList.Count > 0) { @@ -1042,91 +1091,86 @@ CalcuHead = calcuNode.Head, CalcuDemand = calcuNode.Demand }; list.Add(calcuResult); _allCalcuResultList.Add(calcuResult); } } } } var allListList = _hydroInfo.GetAllLinks(); if (allListList != null && allListList.Count > 0) var allLinkList = _hydroInfo.GetAllLinks(); if (allLinkList != null && allLinkList.Count > 0) { var allCalcuLinkList = _calcuResult.LinkList; if (allCalcuLinkList != null && allCalcuLinkList.Count > 0) { foreach (var link in allListList) foreach (var link in allLinkList) { var calcuLink = allCalcuLinkList.Find(x => x.Id == link.Code); if (calcuLink != null) { var calcuResult = new HydroCalcuLinkResult() if (link is Yw.Model.HydroPumpInfo pump) { Code = link.Code, CalcuFlow = calcuLink.Flow, CalcuVelocity = calcuLink.Velocity, CalcuHeadLoss = calcuLink.Headloss }; list.Add(calcuResult); var calcuResult = new HydroCalcuPumpResult() { Code = link.Code, CalcuFlow = calcuLink.Flow, CalcuVelocity = calcuLink.Velocity, CalcuHeadLoss = calcuLink.Headloss, CalcuQ = calcuLink.Flow }; if (calcuResult.CalcuQ > 0) { var startCalcuNode = _calcuResult.NodeList?.Find(x => x.Id == link.StartCode); var endCalcuNode = _calcuResult.NodeList?.Find(x => x.Id == link.EndCode); if (startCalcuNode != null && endCalcuNode != null) { calcuResult.CalcuH = Math.Abs(startCalcuNode.Press - endCalcuNode.Press); } if (pump.RatedN.HasValue) { var curveqp = _hydroInfo.Curves?.Find(x => x.Code == pump.CurveQP); if (curveqp != null) { if (curveqp.CurveData != null && curveqp.CurveData.Count > 3) { var point2dList = curveqp.CurveData.Select(x => new Yw.Geometry.Point2d(x.X, x.Y)).ToList(); var point2dSimularList = point2dList.GetQPPointListByN(pump.RatedN.Value, pump.RatedN.Value * pump.SpeedRatio); var pumpCurveQp = new Yw.Pump.CurveQP(eFeatType.Cubic, point2dSimularList); calcuResult.CalcuP = pumpCurveQp.FeatCurve.GetPointY(calcuResult.CalcuQ.Value); } } } if (calcuResult.CalcuH.HasValue && calcuResult.CalcuP.HasValue) { calcuResult.CalcuE = Yw.Pump.CalculationHelper.CalcuE(calcuResult.CalcuQ.Value, calcuResult.CalcuH.Value, calcuResult.CalcuP.Value); } } _allCalcuResultList.Add(calcuResult); } else { var calcuResult = new HydroCalcuLinkResult() { Code = link.Code, CalcuFlow = calcuLink.Flow, CalcuVelocity = calcuLink.Velocity, CalcuHeadLoss = calcuLink.Headloss }; _allCalcuResultList.Add(calcuResult); } } } } } return list; return _allCalcuResultList; } //æ¾ç¤ºè®¡ç®åæçªä½ private async void ShowCalcuPrefixDlg() { if (_hydroInfo == null) { return; } var dlg = new SetHydroCalcuPrefixDlg(); dlg.SetBindingData(_hydroInfo); dlg.HydroViewEvent += async (parter) => { _parter = parter; if (_parter != null) { await _bimfaceCtrl?.ZoomAndSelectComponents(new List<string>() { _parter.Code }); } ShowProperty(); }; dlg.HydroCalcuEvent += async () => { if (_hydroInfo == null) { return; } //æ ¡éª _checkResult = _hydroInfo.Check(); if (!_checkResult.Succeed) { ShowCheckCtrl(); TipFormHelper.ShowWarn("æ ¡éªå¤±è´¥ï¼è¯·æ£æ¥åéè¯"); return; } var netWork = Yw.Hydro.ParseHelper.ToNetwork(_hydroInfo); _calcuResult = netWork.Calcu(); if (_calcuResult.Succeed) { await _bimfaceCtrl?.SetLogicCalcuCustomLabels(_calcuResult); TipFormHelper.ShowSucceed("è®¡ç®æåï¼"); } else { ShowCalcuFailedCtrl(); TipFormHelper.ShowError("计ç®å¤±è´¥ï¼"); } }; if (dlg.ShowDialog() == DialogResult.Cancel) { await _bimfaceCtrl?.ClearLogicCalcuCustomLabels(); } } #endregion //æ°´åè®¡ç® private void barBtnHydroCalcu_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-calcu/HydroCalcuPumpResult.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,30 @@ namespace Yw.WinFrmUI { /// <summary> /// /// </summary> public class HydroCalcuPumpResult : HydroCalcuLinkResult, IHydroCalcuPumpResult { /// <summary> /// æµé (m³/h) /// </summary> public double? CalcuQ { get; set; } /// <summary> /// æ¬ç¨ï¼mï¼ /// </summary> public double? CalcuH { get; set; } /// <summary> /// åçï¼kWï¼ /// </summary> public double? CalcuP { get; set; } /// <summary> /// æçï¼%ï¼ /// </summary> public double? CalcuE { get; set; } } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/00-core/04-calcu/IHydroCalcuPumpResult.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Yw.WinFrmUI { /// <summary> /// /// </summary> public interface IHydroCalcuPumpResult : IHydroCalcuLinkResult { /// <summary> /// è®¡ç®æµé /// </summary> double? CalcuQ { get; set; } /// <summary> /// è®¡ç®æ¬ç¨ /// </summary> double? CalcuH { get; set; } /// <summary> /// 计ç®åç /// </summary> double? CalcuP { get; set; } /// <summary> /// è®¡ç®æç /// </summary> double? CalcuE { get; set; } } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/03-link/00-core/HydroLinkPropertyViewModel.cs
@@ -66,7 +66,7 @@ [DisplayUnit("m³/h")] [IsHydroCalcuPro(true)] [ShowEditor(false)] public double? CalcuFlow { get; set; } public virtual double? CalcuFlow { get; set; } /// <summary> /// æµé @@ -78,7 +78,7 @@ [DisplayUnit("m/s")] [IsHydroCalcuPro(true)] [ShowEditor(false)] public double? CalcuVelocity { get; set; } public virtual double? CalcuVelocity { get; set; } /// <summary> /// 水头æå¤± @@ -90,7 +90,7 @@ [DisplayUnit("m")] [IsHydroCalcuPro(true)] [ShowEditor(false)] public double? CalcuHeadLoss { get; set; } public virtual double? CalcuHeadLoss { get; set; } /// <summary> /// æ´æ°å±æ§ WinFrmUI/Yw.WinFrmUI.Hydro.Core/03-property/03-link/02-pump/HydroPumpPropertyViewModel.cs
@@ -5,7 +5,7 @@ /// <summary> /// æ°´æ³µå±æ§è§å¾ /// </summary> public class HydroPumpPropertyViewModel : HydroLinkPropertyViewModel public class HydroPumpPropertyViewModel : HydroLinkPropertyViewModel, IHydroCalcuPumpResult { /// <summary> /// @@ -203,6 +203,92 @@ /// <summary> /// æµé /// </summary> [Category("计ç®ç»æ")] [DisplayName("æµé")] [PropertyOrder(10001)] [DisplayUnit("m³/h")] [IsHydroCalcuPro(true)] [ShowEditor(false)] [Browsable(false)] public override double? CalcuFlow { get; set; } /// <summary> /// æµé /// </summary> [Category("计ç®ç»æ")] [DisplayName("æµé")] [PropertyOrder(10002)] [DisplayUnit("m/s")] [IsHydroCalcuPro(true)] [ShowEditor(false)] [Browsable(false)] public override double? CalcuVelocity { get; set; } /// <summary> /// 水头æå¤± /// </summary> [Category("计ç®ç»æ")] [DisplayName("水头æå¤±")] [PropertyOrder(10003)] [DisplayUnit("m")] [IsHydroCalcuPro(true)] [ShowEditor(false)] [Browsable(false)] public override double? CalcuHeadLoss { get; set; } /// <summary> /// æµé /// </summary> [Category("计ç®ç»æ")] [DisplayName("æµé")] [PropertyOrder(11001)] [DisplayUnit("m³/h")] [IsHydroCalcuPro(true)] [ShowEditor(false)] [Browsable(true)] public double? CalcuQ { get; set; } /// <summary> /// æ¬ç¨ /// </summary> [Category("计ç®ç»æ")] [DisplayName("æ¬ç¨")] [PropertyOrder(11002)] [DisplayUnit("m")] [IsHydroCalcuPro(true)] [ShowEditor(false)] [Browsable(true)] public double? CalcuH { get; set; } /// <summary> /// åç /// </summary> [Category("计ç®ç»æ")] [DisplayName("åç")] [PropertyOrder(11003)] [DisplayUnit("kW")] [IsHydroCalcuPro(true)] [ShowEditor(false)] [Browsable(true)] public double? CalcuP { get; set; } /// <summary> /// æç /// </summary> [Category("计ç®ç»æ")] [DisplayName("æç")] [PropertyOrder(11004)] [DisplayUnit("%")] [IsHydroCalcuPro(true)] [ShowEditor(false)] [Browsable(true)] public double? CalcuE { get; set; } /// <summary> /// æ´æ°å±æ§ /// </summary> public override void UpdateProperty(HydroParterInfo rhs, List<HydroParterInfo> allParterList) @@ -237,7 +323,20 @@ } } /// <summary> /// æ´æ°è®¡ç®å±æ§ /// </summary> public override void UpdateCalcuProperty(IHydroCalcuResult rhs) { base.UpdateCalcuProperty(rhs); if (rhs is IHydroCalcuPumpResult calcuPumpProperty) { this.CalcuQ = calcuPumpProperty.CalcuQ.HasValue ? Math.Round(calcuPumpProperty.CalcuQ.Value, 1) : null; this.CalcuH = calcuPumpProperty.CalcuH.HasValue ? Math.Round(calcuPumpProperty.CalcuH.Value, 2) : null; this.CalcuP = calcuPumpProperty.CalcuP.HasValue ? Math.Round(calcuPumpProperty.CalcuP.Value, 1) : null; this.CalcuE = calcuPumpProperty.CalcuE.HasValue ? Math.Round(calcuPumpProperty.CalcuE.Value, 1) : null; } } } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-parter/03-link/00-core/HydroLinkViewModel.cs
@@ -3,7 +3,7 @@ /// <summary> /// /// </summary> public class HydroLinkViewModel : HydroVisualViewModel public class HydroLinkViewModel : HydroVisualViewModel, IHydroCalcuLinkResult { /// <summary> @@ -58,19 +58,19 @@ /// è®¡ç®æµé ï¼m³/hï¼ /// </summary> [DisplayName("è®¡ç®æµé(m³/h)")] public double? CalcuFlow { get; set; } public virtual double? CalcuFlow { get; set; } /// <summary> /// è®¡ç®æµéï¼m/sï¼ /// </summary> [DisplayName("è®¡ç®æµé(m/s)")] public double? CalcuVelocity { get; set; } public virtual double? CalcuVelocity { get; set; } /// <summary> /// è®¡ç®æ°´å¤´æå¤±ï¼mï¼ /// </summary> [DisplayName("è®¡ç®æ°´å¤´æå¤±(m)")] public double? CalcuHeadLoss { get; set; } public virtual double? CalcuHeadLoss { get; set; } /// <summary> /// Vmo WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-parter/03-link/02-pump/HydroPumpListCtrl.Designer.cs
@@ -54,11 +54,12 @@ colSpeedRatioPattern = new DevExpress.XtraGrid.Columns.GridColumn(); colPrice = new DevExpress.XtraGrid.Columns.GridColumn(); colPricePattern = new DevExpress.XtraGrid.Columns.GridColumn(); colCalcuFlow = new DevExpress.XtraGrid.Columns.GridColumn(); colCalcuVelocity = new DevExpress.XtraGrid.Columns.GridColumn(); colCalcuHeadLoss = new DevExpress.XtraGrid.Columns.GridColumn(); colFlagsString = new DevExpress.XtraGrid.Columns.GridColumn(); colDescription = new DevExpress.XtraGrid.Columns.GridColumn(); colCalcuQ = new DevExpress.XtraGrid.Columns.GridColumn(); colCalcuH = new DevExpress.XtraGrid.Columns.GridColumn(); colCalcuP = new DevExpress.XtraGrid.Columns.GridColumn(); colCalcuE = new DevExpress.XtraGrid.Columns.GridColumn(); ((ISupportInitialize)gridControl1).BeginInit(); ((ISupportInitialize)hydroPumpViewModelBindingSource).BeginInit(); ((ISupportInitialize)gridView1).BeginInit(); @@ -81,7 +82,7 @@ // // gridView1 // gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colDbLocked, colCode, colName, colModelType, colHasDb, colStartCode, colEndCode, colLinkStatus, colRatedP, colRatedQ, colRatedH, colRatedN, colRatedHz, colCurrentHz, colHasCurve, colCurveQH, colCurveQP, colCurveQE, colSpeedRatio, colSpeedRatioPattern, colPrice, colPricePattern, colCalcuFlow, colCalcuVelocity, colCalcuHeadLoss, colFlagsString, colDescription }); gridView1.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] { colDbLocked, colCode, colName, colModelType, colHasDb, colStartCode, colEndCode, colLinkStatus, colRatedP, colRatedQ, colRatedH, colRatedN, colRatedHz, colCurrentHz, colHasCurve, colCurveQH, colCurveQP, colCurveQE, colSpeedRatio, colSpeedRatioPattern, colPrice, colPricePattern, colCalcuQ, colCalcuH, colCalcuP, colCalcuE, colFlagsString, colDescription }); gridView1.GridControl = gridControl1; gridView1.Name = "gridView1"; gridView1.OptionsFind.AlwaysVisible = true; @@ -307,36 +308,6 @@ colPricePattern.VisibleIndex = 21; colPricePattern.Width = 100; // // colCalcuFlow // colCalcuFlow.FieldName = "CalcuFlow"; colCalcuFlow.MaxWidth = 100; colCalcuFlow.MinWidth = 100; colCalcuFlow.Name = "colCalcuFlow"; colCalcuFlow.Visible = true; colCalcuFlow.VisibleIndex = 22; colCalcuFlow.Width = 100; // // colCalcuVelocity // colCalcuVelocity.FieldName = "CalcuVelocity"; colCalcuVelocity.MaxWidth = 100; colCalcuVelocity.MinWidth = 100; colCalcuVelocity.Name = "colCalcuVelocity"; colCalcuVelocity.Visible = true; colCalcuVelocity.VisibleIndex = 23; colCalcuVelocity.Width = 100; // // colCalcuHeadLoss // colCalcuHeadLoss.FieldName = "CalcuHeadLoss"; colCalcuHeadLoss.MaxWidth = 100; colCalcuHeadLoss.MinWidth = 100; colCalcuHeadLoss.Name = "colCalcuHeadLoss"; colCalcuHeadLoss.Visible = true; colCalcuHeadLoss.VisibleIndex = 24; colCalcuHeadLoss.Width = 100; // // colFlagsString // colFlagsString.FieldName = "FlagsString"; @@ -344,7 +315,7 @@ colFlagsString.MinWidth = 100; colFlagsString.Name = "colFlagsString"; colFlagsString.Visible = true; colFlagsString.VisibleIndex = 25; colFlagsString.VisibleIndex = 26; colFlagsString.Width = 100; // // colDescription @@ -353,8 +324,48 @@ colDescription.MinWidth = 100; colDescription.Name = "colDescription"; colDescription.Visible = true; colDescription.VisibleIndex = 26; colDescription.VisibleIndex = 27; colDescription.Width = 100; // // colCalcuQ // colCalcuQ.FieldName = "CalcuQ"; colCalcuQ.MaxWidth = 100; colCalcuQ.MinWidth = 100; colCalcuQ.Name = "colCalcuQ"; colCalcuQ.Visible = true; colCalcuQ.VisibleIndex = 22; colCalcuQ.Width = 100; // // colCalcuH // colCalcuH.FieldName = "CalcuH"; colCalcuH.MaxWidth = 100; colCalcuH.MinWidth = 100; colCalcuH.Name = "colCalcuH"; colCalcuH.Visible = true; colCalcuH.VisibleIndex = 23; colCalcuH.Width = 100; // // colCalcuP // colCalcuP.FieldName = "CalcuP"; colCalcuP.MaxWidth = 100; colCalcuP.MinWidth = 100; colCalcuP.Name = "colCalcuP"; colCalcuP.Visible = true; colCalcuP.VisibleIndex = 24; colCalcuP.Width = 100; // // colCalcuE // colCalcuE.FieldName = "CalcuE"; colCalcuE.MaxWidth = 100; colCalcuE.MinWidth = 100; colCalcuE.Name = "colCalcuE"; colCalcuE.Visible = true; colCalcuE.VisibleIndex = 25; colCalcuE.Width = 100; // // HydroPumpListCtrl // @@ -394,12 +405,13 @@ private DevExpress.XtraGrid.Columns.GridColumn colRatedH; private DevExpress.XtraGrid.Columns.GridColumn colRatedN; private DevExpress.XtraGrid.Columns.GridColumn colCurveQP; private DevExpress.XtraGrid.Columns.GridColumn colCalcuFlow; private DevExpress.XtraGrid.Columns.GridColumn colCalcuVelocity; private DevExpress.XtraGrid.Columns.GridColumn colCalcuHeadLoss; private DevExpress.XtraGrid.Columns.GridColumn colHasDb; private DevExpress.XtraGrid.Columns.GridColumn colRatedHz; private DevExpress.XtraGrid.Columns.GridColumn colCurrentHz; private DevExpress.XtraGrid.Columns.GridColumn colHasCurve; private DevExpress.XtraGrid.Columns.GridColumn colCalcuQ; private DevExpress.XtraGrid.Columns.GridColumn colCalcuH; private DevExpress.XtraGrid.Columns.GridColumn colCalcuP; private DevExpress.XtraGrid.Columns.GridColumn colCalcuE; } } WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-parter/03-link/02-pump/HydroPumpListCtrl.cs
@@ -49,8 +49,8 @@ { foreach (var pump in hydroInfo.Pumps) { var calcuLinkResult = allCalcuResultList?.Find(x => x.Code == pump.Code) as HydroCalcuLinkResult; var vm = new HydroPumpViewModel(pump, calcuLinkResult); var calcuPumpResult = allCalcuResultList?.Find(x => x.Code == pump.Code) as HydroCalcuPumpResult; var vm = new HydroPumpViewModel(pump, calcuPumpResult); _allBindingList.Add(vm); } } @@ -93,9 +93,10 @@ this.colSpeedRatioPattern.Visible = false; this.colPrice.Visible = false; this.colPricePattern.Visible = false; this.colCalcuFlow.Visible = false; this.colCalcuVelocity.Visible = false; this.colCalcuHeadLoss.Visible = false; this.colCalcuQ.Visible = false; this.colCalcuH.Visible = false; this.colCalcuP.Visible = false; this.colCalcuE.Visible = false; this.colFlagsString.Visible = true; this.colDescription.Visible = true; } @@ -127,9 +128,10 @@ this.colSpeedRatioPattern.Visible = false; this.colPrice.Visible = false; this.colPricePattern.Visible = false; this.colCalcuFlow.Visible = false; this.colCalcuVelocity.Visible = false; this.colCalcuHeadLoss.Visible = false; this.colCalcuQ.Visible = false; this.colCalcuH.Visible = false; this.colCalcuP.Visible = false; this.colCalcuE.Visible = false; this.colFlagsString.Visible = true; this.colDescription.Visible = true; } @@ -161,9 +163,10 @@ this.colSpeedRatioPattern.Visible = false; this.colPrice.Visible = false; this.colPricePattern.Visible = false; this.colCalcuFlow.Visible = true; this.colCalcuVelocity.Visible = true; this.colCalcuHeadLoss.Visible = true; this.colCalcuQ.Visible = true; this.colCalcuH.Visible = true; this.colCalcuP.Visible = true; this.colCalcuE.Visible = true; this.colFlagsString.Visible = true; this.colDescription.Visible = true; } WinFrmUI/Yw.WinFrmUI.Hydro.Core/04-parter/03-link/02-pump/HydroPumpViewModel.cs
@@ -3,7 +3,7 @@ /// <summary> /// /// </summary> public class HydroPumpViewModel : HydroLinkViewModel public class HydroPumpViewModel : HydroLinkViewModel, IHydroCalcuPumpResult { /// <summary> /// @@ -35,7 +35,7 @@ /// <summary> /// /// </summary> public HydroPumpViewModel(Yw.Model.HydroPumpInfo rhs, Yw.WinFrmUI.HydroCalcuLinkResult calcuResult) : base(rhs, calcuResult) public HydroPumpViewModel(Yw.Model.HydroPumpInfo rhs, Yw.WinFrmUI.HydroCalcuPumpResult calcuResult) : base(rhs, calcuResult) { this.RatedP = rhs.RatedP; this.RatedQ = rhs.RatedQ; @@ -52,6 +52,14 @@ this.PricePattern = rhs.PricePattern; this.Vmo = rhs; if (calcuResult != null) { this.CalcuQ = calcuResult.CalcuQ.HasValue ? Math.Round(calcuResult.CalcuQ.Value, 1) : null; this.CalcuH = calcuResult.CalcuH.HasValue ? Math.Round(calcuResult.CalcuH.Value, 2) : null; this.CalcuP = calcuResult.CalcuP.HasValue ? Math.Round(calcuResult.CalcuP.Value, 1) : null; this.CalcuE = calcuResult.CalcuE.HasValue ? Math.Round(calcuResult.CalcuE.Value, 1) : null; } } /// <summary> @@ -159,6 +167,48 @@ [DisplayName("ä»·æ ¼æ¨¡å¼")] public string PricePattern { get; set; } /// <summary> /// è®¡ç®æµé ï¼m³/hï¼ /// </summary> [DisplayName("è®¡ç®æµé(m³/h)")] public override double? CalcuFlow { get; set; } /// <summary> /// è®¡ç®æµéï¼m/sï¼ /// </summary> [DisplayName("è®¡ç®æµé(m/s)")] public override double? CalcuVelocity { get; set; } /// <summary> /// è®¡ç®æ°´å¤´æå¤±ï¼mï¼ /// </summary> [DisplayName("è®¡ç®æ°´å¤´æå¤±(m)")] public override double? CalcuHeadLoss { get; set; } /// <summary> /// è®¡ç®æµé ï¼m³/hï¼ /// </summary> [DisplayName("è®¡ç®æµé(m³/h)")] public double? CalcuQ { get; set; } /// <summary> /// è®¡ç®æ¬ç¨ ï¼mï¼ /// </summary> [DisplayName("è®¡ç®æ¬ç¨(m)")] public double? CalcuH { get; set; } /// <summary> /// 计ç®åç ï¼kWï¼ /// </summary> [DisplayName("计ç®åç(kW)")] public double? CalcuP { get; set; } /// <summary> /// è®¡ç®æç ï¼%ï¼ /// </summary> [DisplayName("è®¡ç®æç(%)")] public double? CalcuE { get; set; } /// <summary> ///