| | |
| | | using DevExpress.XtraEditors; |
| | | using System; |
| | | using System.Collections.Generic; |
| | | using System.ComponentModel; |
| | | using System.Data; |
| | | using System.Drawing; |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Windows.Forms; |
| | | using System.Data; |
| | | |
| | | namespace HStation.WinFrmUI |
| | | { |
| | |
| | | this.gridView1.RegistCustomDrawCell(); |
| | | this.generalSearchCtrl1.SearchEvent += Search; |
| | | this.generalSearchCtrl1.ClearEvent += Clear; |
| | | this.valvePhartDiagramRelationGridViewCtrl1.SelectDataEvent += SelectData; |
| | | } |
| | | |
| | | public List<AssetsValveSingleMatchingViewModel> _allList = null;//所有列表 |
| | | private List<AssetsValveSingleMatchingViewModel> _allBindingList = null;//所有绑定列表 |
| | | private AssetsValveMainVmo _selected = null;//当前选中 |
| | | |
| | | private AssetsValveSingleMatchingViewModel _row; |
| | | private ValveMatchingViewModel _viewModel; |
| | | |
| | | private long? _curveDbId; |
| | | |
| | | public class ValveMatchingViewModel |
| | | { |
| | | public ValveMatchingViewModel() |
| | | { |
| | | } |
| | | |
| | | public AssetsValveMainVmo Vmo { get; set; } |
| | | public string MatchingCurveDbId { get; set; } |
| | | |
| | | public List<HydroFactorCurveViewModel> MatchingCurvesQL { get; set; } |
| | | public List<HydroCurvePointViewModel> MatchingCurveOL { get; set; } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | | /// </summary> |
| | | public async void SetBindingData(string dbId) |
| | | public async void SetBindingData(string dbId, string curveDbId) |
| | | { |
| | | var allList = await BLLFactory<HStation.BLL.AssetsValveMain>.Instance.GetAll(); |
| | | _allList = new List<AssetsValveSingleMatchingViewModel>(); |
| | | allList.ForEach(x => _allList.Add(new AssetsValveSingleMatchingViewModel(x))); |
| | | if (long.TryParse(dbId, out long id)) |
| | | if (allList != null) |
| | | { |
| | | var item = allList?.Find(x => x.ID == id); |
| | | _selected = item; |
| | | _allList = new List<AssetsValveSingleMatchingViewModel>(); |
| | | allList.ForEach(x => _allList.Add(new AssetsValveSingleMatchingViewModel(x))); |
| | | if (long.TryParse(dbId, out long id)) |
| | | { |
| | | var item = allList?.Find(x => x.ID == id); |
| | | _selected = item; |
| | | } |
| | | if (long.TryParse(curveDbId, out long curveId)) |
| | | { |
| | | _curveDbId = curveId; |
| | | } |
| | | Search(); |
| | | } |
| | | Search(); |
| | | await Task.Delay(300); |
| | | if (_selected != null) |
| | | { |
| | | if (_allBindingList != null && _allBindingList.Count > 0) |
| | | { |
| | | await Task.Run(() => |
| | | { |
| | | var dataSourceIndex = _allBindingList.FindIndex(x => x.Vmo == _selected); |
| | | if (dataSourceIndex >= 0) |
| | | { |
| | | var rowIndex = this.gridView1.GetRowHandle(dataSourceIndex); |
| | | this.gridView1.FocusedRowHandle = rowIndex; |
| | | } |
| | | }); |
| | | var dataSourceIndex = _allBindingList.FindIndex(x => x.Vmo == _selected); |
| | | if (dataSourceIndex >= 0) |
| | | { |
| | | var rowIndex = this.gridView1.GetRowHandle(dataSourceIndex); |
| | | this.gridView1.FocusedRowHandle = rowIndex; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | /// <summary> |
| | | /// 获取 |
| | | /// </summary> |
| | | public AssetsValveMainVmo Get() |
| | | public ValveMatchingViewModel Get() |
| | | { |
| | | var vm = this.gridView1.GetFocusedRow() as AssetsValveSingleMatchingViewModel; |
| | | if (vm == null) |
| | | { |
| | | return default; |
| | | } |
| | | return vm.Vmo; |
| | | /* var vm = this.gridView1.GetFocusedRow() as AssetsValveSingleMatchingViewModel; |
| | | if (vm == null) |
| | | { |
| | | return default; |
| | | } |
| | | _viewModel.Vmo = vm; |
| | | */ |
| | | return _viewModel; |
| | | } |
| | | |
| | | //聚焦改变 |
| | | private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) |
| | | { |
| | | _viewModel = new ValveMatchingViewModel(); |
| | | var row = this.gridView1.GetFocusedRow() as AssetsValveSingleMatchingViewModel; |
| | | if (row == null) |
| | | { |
| | | return; |
| | | } |
| | | this.phartDiagramRelationGridViewCtrl1.SetBindingData(HStation.Assets.DataType.ValveMain, row.Vmo.ID); |
| | | _row = row; |
| | | _viewModel.Vmo = row.Vmo; |
| | | this.valvePhartDiagramRelationGridViewCtrl1.SetBindingData(HStation.Assets.DataType.ValveMain, row.Vmo.ID, _curveDbId); |
| | | } |
| | | |
| | | //曲线数据关联变化 |
| | | private void SelectData(PhartDiagramRelationExtensionsVmo def) |
| | | { |
| | | if (def != null) |
| | | { |
| | | _viewModel.MatchingCurveDbId = def.ID.ToString(); |
| | | _viewModel.MatchingCurveOL = new List<HydroCurvePointViewModel>(); |
| | | _viewModel.MatchingCurvesQL = new List<HydroFactorCurveViewModel>(); |
| | | for (int i = 0; i < def.Diagram.GraphList.Count; i++) |
| | | { |
| | | var curve = def.Diagram.GraphList[i].GetFeatPointList(); |
| | | if (def.Diagram.GraphList[i].GraphType == 11) |
| | | { |
| | | var opening = Yw.WinFrmUI.PhartGraphHelper.GetGraphParas<Yw.WinFrmUI.Phart.QLGraphParasViewModel>((Yw.Ahart.eCurveType)def.Diagram.GraphList[i].GraphType, def.Diagram.GraphList[i].GraphParas); |
| | | var model = new HydroFactorCurveViewModel(); |
| | | model.CurveFactor = opening.Opening ?? 0; |
| | | model.CurveData = new List<HydroCurvePointViewModel>(); |
| | | foreach (var item in curve) |
| | | { |
| | | model.CurveData.Add(new HydroCurvePointViewModel(item.X, item.Y)); |
| | | } |
| | | _viewModel.MatchingCurvesQL.Add(model); |
| | | } |
| | | else if (def.Diagram.GraphList[i].GraphType == 12) |
| | | { |
| | | foreach (var item in curve) |
| | | { |
| | | _viewModel.MatchingCurveOL.Add(new HydroCurvePointViewModel(item.X, item.Y)); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |