using DevExpress.XtraEditors;
|
using System;
|
using System.Collections.Generic;
|
using System.Windows.Forms;
|
|
namespace IStation.WinFrmUI.Basic
|
{
|
public partial class PumpCurveMgrPage : DocumentPage
|
{
|
public PumpCurveMgrPage()
|
{
|
InitializeComponent();
|
this.PageTitle.Caption = "泵曲线";
|
this.gridViewCurvePoints.SetNormalView();
|
this.pumpCurveMappingListCtrl1.FocusedChangedEvent += PumpCurveMappingListCtrl1_FocusedChangedEvent;
|
}
|
|
|
private Model.PumpCurveMapping _pumpCurveMapping = null;
|
private Model.PumpCurve _pumpCurve = null;
|
private List<Model.PumpCurve> _allPumpCurveList = null;
|
// private List<ViewModel.CurveRatedPoint> _allCurveRatedPoints = null;
|
|
/// <summary>
|
/// 初始化数据
|
/// </summary>
|
public override void InitialDataSource()
|
{
|
_pumpCurve = null;
|
_allPumpCurveList = new BLL.PumpCurve().GetAll();
|
this.pumpCurveMappingListCtrl1.SetBindingData();
|
}
|
|
public override void RefreshDataSource()
|
{
|
_pumpCurve = null;
|
_allPumpCurveList = new BLL.PumpCurve().GetAll();
|
this.pumpCurveMappingListCtrl1.SetBindingData();
|
}
|
|
//曲线变换列表
|
private void PumpCurveMappingListCtrl1_FocusedChangedEvent(Model.PumpCurveMapping obj)
|
{
|
_pumpCurveMapping = obj;
|
_pumpCurve = null;
|
this.chartFeatCurveViewCtrl1.ClearData();
|
if (_allPumpCurveList != null && _pumpCurveMapping != null)
|
{
|
_pumpCurve = _allPumpCurveList?.Find(x => x.ID == obj?.CurveID);
|
}
|
if (_pumpCurve == null)
|
return;
|
SetBindingData(_pumpCurve);
|
}
|
|
//绑定数据
|
private void SetBindingData(Model.PumpCurve pumpCurve)
|
{
|
if (pumpCurve == null || pumpCurve.CurveInfo == null)
|
return;
|
if (pumpCurve.CurveInfo.CurveQH == null)
|
return;
|
|
List<Model.CurvePoint> qhPoints = null, qePoints = null, qpPoints = null;
|
var curveInfo = pumpCurve.CurveInfo;
|
if (curveInfo.CurveQH.DefinePoints != null)
|
qhPoints = curveInfo.CurveQH.DefinePoints;
|
else
|
qhPoints = curveInfo.CurveQH.GetFitPoints(12);
|
|
if (curveInfo.CurveQE != null)
|
if (curveInfo.CurveQE.DefinePoints != null)
|
qePoints = curveInfo.CurveQE.DefinePoints;
|
else
|
qePoints = curveInfo.CurveQE?.GetFitPoints(12);
|
|
if (curveInfo.CurveQP != null)
|
if (curveInfo.CurveQP?.DefinePoints != null)
|
qpPoints = curveInfo.CurveQP.DefinePoints;
|
else
|
qpPoints = curveInfo.CurveQP?.GetFitPoints(12);
|
|
#region 曲线点
|
/*_allCurveRatedPoints = new List<ViewModel.CurveRatedPoint>();
|
for (int i = 0; i < qhPoints.Count; i++)
|
{
|
var curveRatedPoint = new ViewModel.CurveRatedPoint();
|
curveRatedPoint.Q = qhPoints[i].X;
|
curveRatedPoint.H = qhPoints[i].Y;
|
if (qePoints != null)
|
curveRatedPoint.E = qePoints[i].Y;
|
if (qpPoints != null)
|
curveRatedPoint.P = qpPoints[i].Y;
|
|
curveRatedPoint.MathRound();
|
_allCurveRatedPoints.Add(curveRatedPoint);
|
}
|
|
this.curveRatedPointBindingSource.DataSource = _allCurveRatedPoints;*/
|
|
#endregion
|
|
#region 曲线
|
|
this.chartFeatCurveViewCtrl1.SetCurveInfo(curveInfo.CurveQH, curveInfo.CurveQE, curveInfo.CurveQP);
|
this.chartFeatCurveViewCtrl1.UpdateChart(true);
|
this.chartFeatCurveViewCtrl1.SetWorkPointQ_Auto();
|
|
#endregion
|
|
#region 曲线编辑
|
Model.eCurveFitType
|
qhFitType = curveInfo.CurveQH.FitType,
|
qeFitType = Model.eCurveFitType.CubicCurve,
|
qpFitType = Model.eCurveFitType.CubicCurve;
|
|
if (curveInfo.CurveQE != null)
|
qeFitType = curveInfo.CurveQE.FitType;
|
|
if (curveInfo.CurveQP != null)
|
qpFitType = curveInfo.CurveQP.FitType;
|
|
this.featCurveByEditCtrl1.InitialBindingData(qhPoints, qePoints, qpPoints, qhFitType, qeFitType, qpFitType);
|
this.featCurveByEditCtrl1.Enabled = true;
|
#endregion
|
}
|
|
//修改泵曲线信息
|
private void barBtnEditPumpCurveInfo_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurve == null)
|
return;
|
WaitFrmHelper.ShowWaitForm();
|
var dlg = new EditPumpCurveInfoDlg();
|
dlg.Shown += delegate { WaitFrmHelper.HideWaitForm(); };
|
dlg.SetBindingData(_pumpCurve);
|
dlg.ReloadDataEvent += (rhs) =>
|
{
|
rhs.UpdateTime = DateTime.Now;
|
var result = new BLL.PumpCurve().Update( rhs);
|
if (result)
|
{
|
_pumpCurve.Reset(rhs);
|
SetBindingData(_pumpCurve);
|
}
|
return result;
|
};
|
dlg.ShowDialog();
|
}
|
|
//修改泵曲线名称
|
private void barBtnEditPumpCurveOtherName_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurveMapping == null)
|
return;
|
WaitFrmHelper.ShowWaitForm();
|
var dlg = new EditOtherNameDlg();
|
dlg.Shown += delegate { WaitFrmHelper.HideWaitForm(); };
|
dlg.SetBindingData(_pumpCurveMapping.OtherName);
|
dlg.ReloadDataEvent += (rhs) =>
|
{
|
var model = new Model.PumpCurveMapping(_pumpCurveMapping);
|
model.OtherName = rhs;
|
var result = new BLL.PumpCurveMapping().Update( model);
|
if (result)
|
{
|
_pumpCurveMapping.Reset(model);
|
this.pumpCurveMappingListCtrl1.UpdateOtherName(rhs);
|
}
|
return result;
|
};
|
dlg.ShowDialog();
|
}
|
|
//设置工作曲线
|
private void barBtnSetWorkPumpCurve_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurveMapping == null)
|
return;
|
var result = new BLL.PumpCurveMapping().UpdateWokrCurve( _pumpCurveMapping.ID);
|
if (result)
|
{
|
_pumpCurveMapping.IsWorking = true;
|
this.pumpCurveMappingListCtrl1.UpdateWorkingCurve();
|
}
|
}
|
|
//刷新
|
private void barBtnReload_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (this.tabPane1.SelectedPage == this.tabNavigationPageCurveEdit)
|
{
|
XtraMessageBox.Show("曲线编辑页面无法刷新!");
|
return;
|
}
|
InitialDataSource();
|
}
|
|
//曲线编辑 设置图表坐标
|
private void barBtnSetCurveEditCoord_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurve == null)
|
return;
|
this.featCurveByEditCtrl1.SetCoordinateByDialog();
|
}
|
|
//曲线编辑 取消修改
|
private void barBtnCancelCurveEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (XtraMessageBox.Show("是否取消修改?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) != DialogResult.Yes)
|
return;
|
SetBindingData(_pumpCurve);
|
}
|
|
//曲线编辑 保存
|
private void barBtnSaveCurveEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
|
{
|
if (_pumpCurve == null)
|
return;
|
if (XtraMessageBox.Show("是否保存曲线?", "提示信息", MessageBoxButtons.YesNo, MessageBoxIcon.Information) != DialogResult.Yes)
|
return;
|
|
this.featCurveByEditCtrl1.GetPointListInfo(out List<Model.CurvePoint> qhCurvePoints,
|
out List<Model.CurvePoint> qeCurvePoints,
|
out List<Model.CurvePoint> qpCurvePoints);
|
|
var curveInfo = _pumpCurve.CurveInfo;
|
if (curveInfo.CurveQH != null && qhCurvePoints != null)
|
{
|
_pumpCurve.CurveInfo.CurveQH = new Model.CurveExpress(qhCurvePoints, curveInfo.CurveQH.FitType, true);
|
}
|
if (curveInfo.CurveQE != null && qeCurvePoints != null)
|
{
|
_pumpCurve.CurveInfo.CurveQE = new Model.CurveExpress(qeCurvePoints, curveInfo.CurveQE.FitType, true);
|
}
|
if (curveInfo.CurveQP != null && qpCurvePoints != null)
|
{
|
_pumpCurve.CurveInfo.CurveQP = new Model.CurveExpress(qpCurvePoints, curveInfo.CurveQP.FitType, true);
|
}
|
|
var result = new BLL.PumpCurve().Update( _pumpCurve);
|
if (!result)
|
{
|
XtraMessageBox.Show("保存失败!");
|
return;
|
}
|
XtraMessageBox.Show("保存成功!");
|
}
|
|
//选择页变换
|
private void tabPane1_SelectedPageChanged(object sender, DevExpress.XtraBars.Navigation.SelectedPageChangedEventArgs e)
|
{
|
|
if (this.tabPane1.SelectedPage == this.tabNavigationPageCurveEdit)
|
{
|
this.ribbonPageGroupCurveEdit.Visible = true;
|
}
|
else
|
{
|
this.ribbonPageGroupCurveEdit.Visible = false;
|
}
|
}
|
|
|
}
|
}
|