| | |
| | | using Yw.Model; |
| | | using DevExpress.XtraGrid.Views.Grid; |
| | | using DevExpress.XtraPrinting; |
| | | using Yw.Model; |
| | | |
| | | namespace Yw.WinFrmUI |
| | | { |
| | |
| | | /// </summary> |
| | | public event Action<List<HydroVisualViewModel>> HydroChangedViewEvent; |
| | | |
| | | |
| | | /// <summary> |
| | | /// 是否拥有水力列表 |
| | | /// </summary> |
| | |
| | | get { return _allList != null && _allList.Count > 0; } |
| | | } |
| | | |
| | | //所有列表 |
| | | private List<HydroPipeViewModel> _allList = null; |
| | | //所有绑定列表 |
| | | private List<HydroPipeViewModel> _allBindingList = null; |
| | | |
| | | private List<HydroPipeViewModel> _allList = null;//所有列表 |
| | | private List<HydroPipeViewModel> _allBindingList = null;//所有绑定列表 |
| | | private HydroChangeHelper _changeHelper = null;//改变辅助类 |
| | | private HydroPropStatusHelper _propStatusHelper = null;//属性状态辅助类 |
| | | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | | /// </summary> |
| | | public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo) |
| | | public void SetBindingData |
| | | ( |
| | | Yw.Model.HydroModelInfo hydroInfo, |
| | | HydroChangeHelper changeHelper = null, |
| | | HydroPropStatusHelper propStatusHelper = null |
| | | ) |
| | | { |
| | | SetBindingData(hydroInfo, allCalcuResultVisualDict: null); |
| | | SetBindingData(hydroInfo, allCalcuResultVisualDict: null, changeHelper, propStatusHelper); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | | /// </summary> |
| | | public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, List<HydroCalcuVisualResult> allCalcuResultList) |
| | | public void SetBindingData |
| | | ( |
| | | Yw.Model.HydroModelInfo hydroInfo, |
| | | List<HydroCalcuVisualResult> allCalcuResultList, |
| | | HydroChangeHelper changeHelper = null, |
| | | HydroPropStatusHelper propStatusHelper = null |
| | | ) |
| | | { |
| | | var allCalcuResultVisualDict = allCalcuResultList?.ToDictionary(x => x.Code); |
| | | SetBindingData(hydroInfo, allCalcuResultVisualDict); |
| | | SetBindingData(hydroInfo, allCalcuResultVisualDict, changeHelper, propStatusHelper); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | | /// </summary> |
| | | public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo, Dictionary<string, HydroCalcuVisualResult> allCalcuResultVisualDict) |
| | | public void SetBindingData |
| | | ( |
| | | HydroModelInfo hydroInfo, |
| | | Dictionary<string, HydroCalcuVisualResult> allCalcuResultVisualDict, |
| | | HydroChangeHelper changeHelper = null, |
| | | HydroPropStatusHelper propStatusHelper = null |
| | | ) |
| | | { |
| | | _allList = new List<HydroPipeViewModel>(); |
| | | _changeHelper = changeHelper; |
| | | _propStatusHelper = propStatusHelper; |
| | | if (hydroInfo != null && hydroInfo.Pipes != null && hydroInfo.Pipes.Count > 0) |
| | | { |
| | | foreach (var visual in hydroInfo.Pipes) |
| | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | | /// </summary> |
| | | public void SetBindingData(List<HydroVisualViewModel> allVisualViewModelList) |
| | | public void SetBindingData |
| | | ( |
| | | List<HydroVisualViewModel> allVisualViewModelList, |
| | | HydroChangeHelper changeHelper = null, |
| | | HydroPropStatusHelper propStatusHelper = null |
| | | ) |
| | | { |
| | | _allList = new List<HydroPipeViewModel>(); |
| | | _changeHelper = changeHelper; |
| | | _propStatusHelper = propStatusHelper; |
| | | allVisualViewModelList?.ForEach(x => |
| | | { |
| | | if (x.Vmo.Catalog == Yw.Hydro.ParterCatalog.Pipe) |
| | |
| | | { |
| | | return; |
| | | } |
| | | var name = this.txtName.Text.Trim(); |
| | | var code = this.txtCode.Text.Trim(); |
| | | var modelType = this.txtModelType.Text.Trim(); |
| | | _allBindingList = _allList; |
| | | |
| | | var name = this.txtName.Text.Trim(); |
| | | if (!string.IsNullOrEmpty(name)) |
| | | { |
| | | _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.Name) && x.Name.Contains(name)).ToList(); |
| | | } |
| | | var code = this.txtCode.Text.Trim(); |
| | | if (!string.IsNullOrEmpty(code)) |
| | | { |
| | | _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.Code) && x.Code.Contains(code)).ToList(); |
| | | } |
| | | var modelType = this.txtModelType.Text.Trim(); |
| | | if (!string.IsNullOrEmpty(modelType)) |
| | | { |
| | | _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.ModelType) && x.ModelType.Contains(modelType)).ToList(); |
| | | } |
| | | double? diameterMin = this.txtDiameterMin.EditValue == null ? null : double.Parse(this.txtDiameterMin.EditValue.ToString()); |
| | | if (diameterMin.HasValue) |
| | | { |
| | | _allBindingList = _allBindingList.Where(x => x.Diameter >= diameterMin.Value).ToList(); |
| | | } |
| | | double? diameterMax = this.txtDiameterMax.EditValue == null ? null : double.Parse(this.txtDiameterMax.EditValue.ToString()); |
| | | if (diameterMax.HasValue) |
| | | { |
| | | _allBindingList = _allBindingList.Where(x => x.Diameter <= diameterMax.Value).ToList(); |
| | | } |
| | | this.hydroPipeViewModelBindingSource.DataSource = _allBindingList; |
| | | this.hydroPipeViewModelBindingSource.ResetBindings(false); |
| | |
| | | return; |
| | | } |
| | | var dlg = new SetHydroPipeDlg(); |
| | | dlg.SetBindingData(_allBindingList.Select(x => x.Vmo).ToList()); |
| | | dlg.SetBindingData(_allBindingList.Select(x => x.Vmo).ToList(), _changeHelper, _propStatusHelper); |
| | | dlg.ReloadDataEvent += (list) => |
| | | { |
| | | if (list == null || list.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | _allBindingList.ForEach(x => x.UpdateProperty()); |
| | | this.hydroPipeViewModelBindingSource.ResetBindings(false); |
| | | var allVisualViewModelList = _allBindingList.Select(x => x as HydroVisualViewModel).ToList(); |
| | |
| | | dlg.ShowDialog(); |
| | | } |
| | | |
| | | |
| | | //行单元点击事件 |
| | | private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) |
| | | { |
| | | var row = this.gridView1.GetRow(e.RowHandle) as HydroPipeViewModel; |
| | |
| | | if (e.Column == this.colSet) |
| | | { |
| | | var dlg = new SetHydroPipeDlg(); |
| | | dlg.SetBindingData(row.Vmo); |
| | | dlg.SetBindingData(row.Vmo, _changeHelper, _propStatusHelper); |
| | | dlg.ReloadDataEvent += (list) => |
| | | { |
| | | if (list == null || list.Count < 1) |
| | | { |
| | | return; |
| | | } |
| | | row.UpdateProperty(); |
| | | this.gridView1.RefreshRow(e.RowHandle); |
| | | this.HydroChangedViewEvent?.Invoke(new List<HydroVisualViewModel>() { row }); |
| | |
| | | { |
| | | this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | this.colDbLocked.Visible = false; |
| | | this.colBeginGroup.Visible = false; |
| | | this.colName.Visible = true; |
| | | this.colCode.Visible = true; |
| | | this.colModelType.Visible = true; |
| | |
| | | this.colDiameter.Visible = true; |
| | | this.colLength.Visible = false; |
| | | this.colRoughness.Visible = false; |
| | | this.colMinorLoss.Visible = false; |
| | | this.colHasDb.Visible = false; |
| | | this.colFlags.Visible = true; |
| | | this.colDescription.Visible = true; |
| | |
| | | this.colCalcuPr1.Visible = false; |
| | | this.colCalcuPr2.Visible = false; |
| | | this.colCalcuVelocity.Visible = false; |
| | | this.colCalcuMinorLoss.Visible = false; |
| | | this.colCalcuFrictionLoss.Visible = false; |
| | | this.colSet.Visible = false; |
| | | } |
| | |
| | | { |
| | | this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | this.colDbLocked.Visible = true; |
| | | this.colBeginGroup.Visible = true; |
| | | this.colName.Visible = true; |
| | | this.colCode.Visible = true; |
| | | this.colModelType.Visible = true; |
| | |
| | | this.colDiameter.Visible = true; |
| | | this.colLength.Visible = true; |
| | | this.colRoughness.Visible = true; |
| | | this.colMinorLoss.Visible = true; |
| | | this.colHasDb.Visible = true; |
| | | this.colFlags.Visible = true; |
| | | this.colDescription.Visible = true; |
| | |
| | | this.colCalcuPr1.Visible = false; |
| | | this.colCalcuPr2.Visible = false; |
| | | this.colCalcuVelocity.Visible = false; |
| | | this.colCalcuMinorLoss.Visible = false; |
| | | this.colCalcuFrictionLoss.Visible = false; |
| | | this.colSet.Visible = true; |
| | | } |
| | |
| | | { |
| | | this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | this.colDbLocked.Visible = true; |
| | | this.colBeginGroup.Visible = true; |
| | | this.colName.Visible = true; |
| | | this.colCode.Visible = true; |
| | | this.colModelType.Visible = true; |
| | |
| | | this.colDiameter.Visible = true; |
| | | this.colLength.Visible = true; |
| | | this.colRoughness.Visible = true; |
| | | this.colMinorLoss.Visible = true; |
| | | this.colHasDb.Visible = true; |
| | | this.colFlags.Visible = true; |
| | | this.colDescription.Visible = true; |
| | | this.colCalcuFrictionLoss.Visible = true; |
| | | this.colCalcuMinorLoss.Visible = true; |
| | | this.colCalcuVelocity.Visible = true; |
| | | this.colCalcuPr2.Visible = true; |
| | | this.colCalcuPr1.Visible = true; |
| | |
| | | { |
| | | this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Always; |
| | | this.colDbLocked.Visible = true; |
| | | this.colBeginGroup.Visible = true; |
| | | this.colName.Visible = true; |
| | | this.colCode.Visible = true; |
| | | this.colModelType.Visible = true; |
| | |
| | | this.colDiameter.Visible = true; |
| | | this.colLength.Visible = true; |
| | | this.colRoughness.Visible = true; |
| | | this.colMinorLoss.Visible = true; |
| | | this.colHasDb.Visible = true; |
| | | this.colFlags.Visible = true; |
| | | this.colDescription.Visible = true; |
| | |
| | | this.colCalcuPr1.Visible = false; |
| | | this.colCalcuPr2.Visible = false; |
| | | this.colCalcuVelocity.Visible = false; |
| | | this.colCalcuMinorLoss.Visible = false; |
| | | this.colCalcuFrictionLoss.Visible = false; |
| | | this.colSet.Visible = true; |
| | | } |
| | |
| | | { |
| | | this.groupForHead.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | this.colDbLocked.Visible = true; |
| | | this.colBeginGroup.Visible = true; |
| | | this.colName.Visible = true; |
| | | this.colCode.Visible = true; |
| | | this.colModelType.Visible = true; |
| | |
| | | this.colDiameter.Visible = true; |
| | | this.colLength.Visible = true; |
| | | this.colRoughness.Visible = true; |
| | | this.colMinorLoss.Visible = true; |
| | | this.colHasDb.Visible = true; |
| | | this.colFlags.Visible = true; |
| | | this.colDescription.Visible = true; |
| | | this.colCalcuFrictionLoss.Visible = true; |
| | | this.colCalcuMinorLoss.Visible = true; |
| | | this.colCalcuVelocity.Visible = true; |
| | | this.colCalcuPr2.Visible = true; |
| | | this.colCalcuPr1.Visible = true; |
| | | this.colCalcuQ.Visible = true; |
| | | this.colSet.Visible = false; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public GridView GetGridView() |
| | | { |
| | | return this.gridView1; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | public void ExportToXlsx() |
| | | { |
| | | var filePath = FileDialogHelper.SaveFile("导出Excel文件", "Excel文件|*.xlsx"); |
| | | if (string.IsNullOrEmpty(filePath)) |
| | | { |
| | | return; |
| | | } |
| | | var options = new XlsxExportOptions |
| | | { |
| | | ExportMode = XlsxExportMode.SingleFile, // 导出模式 |
| | | ShowGridLines = true, // 显示网格线 |
| | | TextExportMode = TextExportMode.Value, // 导出文本模式 |
| | | SheetName = "管道" // 工作表名称 |
| | | }; |
| | | this.gridView1.ExportToXlsx(filePath, options); |
| | | } |
| | | |
| | | |
| | | } |
| | | } |