| | |
| | | |
| | | namespace HStation.WinFrmUI |
| | | { |
| | | public partial class SetSchemePipeListCtrl : DevExpress.XtraEditors.XtraUserControl, IHydroParterList |
| | | public partial class SetSchemePipeListCtrl : DevExpress.XtraEditors.XtraUserControl, ISetSchemeParterList |
| | | { |
| | | public SetSchemePipeListCtrl() |
| | | { |
| | | InitializeComponent(); |
| | | this.layoutControl1.SetupLayoutControl(); |
| | | this.gridView1.SetNormalView(30); |
| | | this.gridView1.RegistCustomDrawRowIndicator(40); |
| | | this.gridView1.BorderStyle = BorderStyles.NoBorder; |
| | | this.layoutControl1.SetupLayoutControl(); |
| | | InitialLinkStatus(); |
| | | this.generalSearchAndSelectCtrl1.SearchEvent += () => |
| | | { |
| | | Search(); |
| | | }; |
| | | this.generalSearchAndSelectCtrl1.ClearEvent += () => |
| | | { |
| | | Clear(); |
| | | }; |
| | | this.generalSearchAndSelectCtrl1.SelectEvent += () => |
| | | { |
| | | TipFormHelper.Show(eTipStatus.Info, "批量选择待更新"); |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 水力点击事件 |
| | | /// </summary> |
| | | public event Action<Yw.Model.HydroParterInfo> HydroClickEvent; |
| | | |
| | | /// <summary> |
| | | /// 水力改变事件 |
| | | /// </summary> |
| | | public event Action<List<HydroParterInfo>> HydroChangedEvent; |
| | | |
| | | /// <summary> |
| | | /// 水力记录改变事件 |
| | | /// </summary> |
| | | public event Action<SetSchemeParterRecord> HydroRecordChangedEvent; |
| | | |
| | | /// <summary> |
| | | /// 显示查询面板 |
| | |
| | | get { return _allList != null && _allList.Count > 0; } |
| | | } |
| | | |
| | | //水力信息 |
| | | private Yw.Model.HydroModelInfo _hydroInfo = null; |
| | | |
| | | //所有列表 |
| | | private List<HydroPipeViewModel> _allList = null; |
| | | |
| | | //所有绑定列表 |
| | | private List<HydroPipeViewModel> _allBindingList = null; |
| | | |
| | |
| | | /// </summary> |
| | | public void SetBindingData(HydroModelInfo hydroInfo) |
| | | { |
| | | _hydroInfo = hydroInfo; |
| | | _allList = new List<HydroPipeViewModel>(); |
| | | if (hydroInfo != null && hydroInfo.Pipes != null && hydroInfo.Pipes.Count > 0) |
| | | { |
| | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | | /// </summary> |
| | | public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, List<HydroCalcuResult> allCalcuResultList) |
| | | public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, List<HydroCalcuVisualResult> allCalcuResultList) |
| | | { |
| | | _allList = new List<HydroPipeViewModel>(); |
| | | if (hydroInfo != null && hydroInfo.Pipes != null && hydroInfo.Pipes.Count > 0) |
| | |
| | | /// <summary> |
| | | /// 更新计算属性 |
| | | /// </summary> |
| | | public void UpdateCalcuProperty(List<HydroCalcuResult> allCalcuResultList) |
| | | public void UpdateCalcuProperty(List<HydroCalcuVisualResult> allCalcuResultList) |
| | | { |
| | | if (allCalcuResultList != null && allCalcuResultList.Count > 0) |
| | | { |
| | |
| | | } |
| | | |
| | | //设置 |
| | | private void Set() |
| | | private void SelectChange() |
| | | { |
| | | Search(); |
| | | if (_allBindingList == null || _allBindingList.Count < 1) |
| | | var row = this.gridView1.GetFocusedRow() as HydroPipeViewModel; |
| | | if (row == null) |
| | | { |
| | | XtraMessageBox.Show("无可设置管道数据"); |
| | | return; |
| | | } |
| | | var dlg = new SetHydroPipeDlg(); |
| | | dlg.SetBindingData(_allBindingList.Select(x => x.Vmo).ToList()); |
| | | dlg.ReloadDataEvent += (list) => |
| | | { |
| | | _allBindingList.ForEach(x => |
| | | { |
| | | x.UpdateProperty(); |
| | | }); |
| | | this.hydroPipeViewModelBindingSource.ResetBindings(false); |
| | | var allParterList = _allBindingList.Select(x => x.Vmo as HydroParterInfo).ToList(); |
| | | this.HydroChangedEvent?.Invoke(allParterList); |
| | | }; |
| | | dlg.ShowDialog(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置简单显示模式 |
| | | /// </summary> |
| | | public void SetSimpleView() |
| | | { |
| | | this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | this.colDbLocked.Visible = false; |
| | | this.colName.Visible = true; |
| | | this.colCode.Visible = true; |
| | | this.colModelType.Visible = true; |
| | | this.colLinkStatus.Visible = false; |
| | | this.colMaterial.Visible = true; |
| | | this.colDiameter.Visible = true; |
| | | this.colLength.Visible = false; |
| | | this.colRoughness.Visible = false; |
| | | this.colMinorLoss.Visible = false; |
| | | this.colCalcuFlow.Visible = false; |
| | | this.colCalcuVelocity.Visible = false; |
| | | this.colCalcuHeadLoss.Visible = false; |
| | | this.colHasDb.Visible = false; |
| | | this.colFlags.Visible = true; |
| | | this.colDescription.Visible = true; |
| | | this.colSet.Visible = false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置正常显示模式 |
| | | /// </summary> |
| | | public void SetNormalView() |
| | | { |
| | | this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | this.colDbLocked.Visible = true; |
| | | this.colName.Visible = true; |
| | | this.colCode.Visible = true; |
| | | this.colModelType.Visible = true; |
| | | this.colLinkStatus.Visible = true; |
| | | this.colMaterial.Visible = true; |
| | | this.colDiameter.Visible = true; |
| | | this.colLength.Visible = true; |
| | | this.colRoughness.Visible = true; |
| | | this.colMinorLoss.Visible = true; |
| | | this.colCalcuFlow.Visible = false; |
| | | this.colCalcuVelocity.Visible = false; |
| | | this.colCalcuHeadLoss.Visible = false; |
| | | this.colHasDb.Visible = true; |
| | | this.colFlags.Visible = true; |
| | | this.colDescription.Visible = true; |
| | | this.colSet.Visible = true; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置计算显示模式 |
| | | /// </summary> |
| | | public void SetCalcuView() |
| | | { |
| | | this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | this.colDbLocked.Visible = true; |
| | | this.colName.Visible = true; |
| | | this.colCode.Visible = true; |
| | | this.colModelType.Visible = true; |
| | | this.colLinkStatus.Visible = true; |
| | | this.colMaterial.Visible = true; |
| | | this.colDiameter.Visible = true; |
| | | this.colLength.Visible = true; |
| | | this.colRoughness.Visible = true; |
| | | this.colMinorLoss.Visible = true; |
| | | this.colCalcuFlow.Visible = true; |
| | | this.colCalcuVelocity.Visible = true; |
| | | this.colCalcuHeadLoss.Visible = true; |
| | | this.colHasDb.Visible = true; |
| | | this.colFlags.Visible = true; |
| | | this.colDescription.Visible = true; |
| | | this.colSet.Visible = true; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 设置批量设置模式 |
| | | /// </summary> |
| | | public void SetBulkSetView() |
| | | { |
| | | this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; |
| | | this.colDbLocked.Visible = true; |
| | | this.colName.Visible = true; |
| | | this.colCode.Visible = true; |
| | | this.colModelType.Visible = true; |
| | | this.colLinkStatus.Visible = true; |
| | | this.colMaterial.Visible = true; |
| | | this.colDiameter.Visible = true; |
| | | this.colLength.Visible = true; |
| | | this.colRoughness.Visible = true; |
| | | this.colMinorLoss.Visible = true; |
| | | this.colCalcuFlow.Visible = false; |
| | | this.colCalcuVelocity.Visible = false; |
| | | this.colCalcuHeadLoss.Visible = false; |
| | | this.colHasDb.Visible = true; |
| | | this.colFlags.Visible = true; |
| | | this.colDescription.Visible = true; |
| | | this.colSet.Visible = true; |
| | | } |
| | | |
| | | private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) |
| | | { |
| | | var row = this.gridView1.GetRow(e.RowHandle) as HydroPipeViewModel; |
| | | if (row == null) |
| | | { |
| | | return; |
| | | } |
| | | /* var row = this.gridView1.GetRow(e.RowHandle) as HydroPipeViewModel; |
| | | if (row == null) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (e.Column == this.colSet) |
| | | { |
| | | var dlg = new SetHydroPipeDlg(); |
| | | dlg.SetBindingData(row.Vmo); |
| | | dlg.ReloadDataEvent += (list) => |
| | | { |
| | | row.UpdateProperty(); |
| | | this.gridView1.RefreshRow(e.RowHandle); |
| | | this.HydroChangedEvent?.Invoke(new List<Yw.Model.HydroParterInfo>() { row.Vmo }); |
| | | }; |
| | | dlg.ShowDialog(); |
| | | } |
| | | else |
| | | { |
| | | this.HydroClickEvent?.Invoke(row.Vmo); |
| | | } |
| | | if (e.Column == this.colSelect) |
| | | { |
| | | var input = AssetsMatchingParasHelper.Create(_hydroInfo, row.Vmo, null); |
| | | var dlg = new SimulationPipeSingleMatchingDlg(); |
| | | dlg.SetBindingData(input); |
| | | dlg.ReloadDataEvent += (output) => |
| | | { |
| | | var bol = AssetsMatchingParasHelper.Apply(_hydroInfo, output); |
| | | if (bol) |
| | | { |
| | | row.UpdateProperty(); |
| | | this.gridView1.RefreshRow(e.RowHandle); |
| | | this.HydroChangedEvent?.Invoke(new List<Yw.Model.HydroParterInfo>() { row.Vmo }); |
| | | |
| | | var record = new SetSchemeParterRecord(); |
| | | record.Name = row.Vmo.Name; |
| | | record.Code = row.Vmo.Code; |
| | | record.Catalog = Yw.Hydro.ParterCatalog.Pipe; |
| | | record.MatchingModel = output; |
| | | |
| | | record.Items = new List<SetSchemeParterRecordItem>() { |
| | | new() {Name="型号",BeforeValue=$"{output.ModelType}",AfterValue=$"{output.MatchingModelType}"}, |
| | | new() {Name="材料",BeforeValue=$"{output.Material}",AfterValue=$"{output.MatchingMaterial}"}, |
| | | new() {Name="直径(mm)",BeforeValue=$"{output.Diameter}",AfterValue=$"{output.MatchingDiameter}"}, |
| | | new() {Name="粗糙系数",BeforeValue=$"{output.Roughness}",AfterValue=$"{output.MatchingRoughness}"}, |
| | | new() {Name="局阻系数",BeforeValue=$"{output.MinorLoss}",AfterValue=$"{output.MatchingMinorLoss}"}, |
| | | }; |
| | | this.HydroRecordChangedEvent?.Invoke(record); |
| | | } |
| | | }; |
| | | dlg.ShowDialog(); |
| | | } |
| | | else |
| | | { |
| | | this.HydroClickEvent?.Invoke(row.Vmo); |
| | | }*/ |
| | | } |
| | | |
| | | |
| | | //初始化管段状态 |
| | | private void InitialLinkStatus() |
| | | { |
| | | this.imgCmbLinkStatus.Properties.BeginUpdate(); |
| | | this.imgCmbLinkStatus.Properties.Items.Clear(); |
| | | this.imgCmbLinkStatus.Properties.Items.Add("全部", string.Empty, -1); |
| | | this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.LinkStatus.Open), Yw.Hydro.LinkStatus.Open, -1); |
| | | this.imgCmbLinkStatus.Properties.Items.Add(HydroLinkStatusHelper.GetStatusName(Yw.Hydro.LinkStatus.Closed), Yw.Hydro.LinkStatus.Closed, -1); |
| | | this.imgCmbLinkStatus.Properties.EndUpdate(); |
| | | } |
| | | |
| | | |
| | | #region BtnClick |
| | | |
| | | private void buttonEditSearch_ButtonClick(object sender, ButtonPressedEventArgs e) |
| | | { |
| | | var obj = e.Button.Tag; |
| | | if (obj is string tag) |
| | | { |
| | | BtnClick(tag); |
| | | } |
| | | } |
| | | |
| | | private void buttonEditSet_ButtonClick(object sender, ButtonPressedEventArgs e) |
| | | { |
| | | var obj = e.Button.Tag; |
| | | if (obj is string tag) |
| | | { |
| | | BtnClick(tag); |
| | | } |
| | | } |
| | | |
| | | private void BtnClick(string tag) |
| | | { |
| | | switch (tag) |
| | | { |
| | | case "Search": |
| | | { |
| | | Search(); |
| | | } |
| | | break; |
| | | case "Clear": |
| | | { |
| | | Clear(); |
| | | } |
| | | break; |
| | | case "Set": |
| | | { |
| | | Set(); |
| | | } |
| | | break; |
| | | default: |
| | | { |
| | | |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | } |
| | | } |
| | | } |