using DevExpress.XtraEditors;
using System;
using System.IO;
using System.Windows.Forms;
namespace IStation.WinFrmUI.Curve
{
///
/// 通过Excel导入曲线
///
public partial class ImportCurveByFeatCurveExpressGroupDlg : XtraForm
{
public ImportCurveByFeatCurveExpressGroupDlg()
{
InitializeComponent();
}
private Model.FeatCurveExpressGroup _express;
public Action ReloadDataEvent;
///
/// 绑定数据
///
public void SetBindingData()
{
this.SourceFromImageComboBoxEdit.Properties.AddEnum(typeof(Model.eCurveSourceFrom), false);
this.SourceFromImageComboBoxEdit.EditValue = Model.eCurveSourceFrom.SCADA数据分析;
this.QHCurveFitTypeImageComboBoxEdit.Properties.AddEnum(typeof(Model.eCurveFitType), false);
this.QHCurveFitTypeImageComboBoxEdit.EditValue = Model.eCurveFitType.CubicCurve;
this.QECurveFitTypeImageComboBoxEdit.Properties.AddEnum(typeof(Model.eCurveFitType), false);
this.QECurveFitTypeImageComboBoxEdit.EditValue = Model.eCurveFitType.CubicCurve;
this.QPCurveFitTypeImageComboBoxEdit.Properties.AddEnum(typeof(Model.eCurveFitType), false);
this.QPCurveFitTypeImageComboBoxEdit.EditValue = Model.eCurveFitType.CubicCurve;
}
//选择文件
private void ExcelBtnEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
var dlg = new System.Windows.Forms.OpenFileDialog();
dlg.Filter = "Curve 文件(*.curve)|*.curve";
dlg.CheckFileExists = true;
if (dlg.ShowDialog() != DialogResult.OK)
return;
this.ExcelBtnEdit.Text = dlg.FileName;
_express = CurveExpressFileHelper.ImportByCurveExpress(dlg.FileName, out string msg);
if (_express == null)
{
this.CurveCodeTextEdit.Text = string.Empty;
this.layoutGroupInfo.Enabled = false;
this.chartFeatCurveViewCtrl1.ClearData();
XtraMessageBox.Show(msg);
}
else
{
this.CurveCodeTextEdit.Text = Path.GetFileNameWithoutExtension(dlg.FileName);
this.layoutGroupInfo.Enabled = true;
InitialCurveChart(_express);
this.QHCurveFitTypeImageComboBoxEdit.EditValue = _express.CurveQH.FitType;
this.QECurveFitTypeImageComboBoxEdit.EditValue = _express.CurveQE.FitType;
this.QPCurveFitTypeImageComboBoxEdit.EditValue = _express.CurveQP.FitType;
}
}
private void QHCurveFitTypeImageComboBoxEdit_SelectedIndexChanged(object sender, EventArgs e)
{
if (_express == null)
return;
_express.CurveQH.FitType = (Model.eCurveFitType)this.QHCurveFitTypeImageComboBoxEdit.EditValue;
InitialCurveChart(_express);
}
private void QECurveFitTypeImageComboBoxEdit_SelectedIndexChanged(object sender, EventArgs e)
{
if (_express == null)
return;
_express.CurveQE.FitType = (Model.eCurveFitType)this.QECurveFitTypeImageComboBoxEdit.EditValue;
InitialCurveChart(_express);
}
private void QPCurveFitTypeImageComboBoxEdit_SelectedIndexChanged(object sender, EventArgs e)
{
if (_express == null)
return;
_express.CurveQP.FitType = (Model.eCurveFitType)this.QPCurveFitTypeImageComboBoxEdit.EditValue;
InitialCurveChart(_express);
}
private void InitialCurveChart(Model.FeatCurveExpressGroup express)
{
if (express == null)
return;
this.chartFeatCurveViewCtrl1.SetCurveInfo(express.CurveQH, express.CurveQE, express.CurveQP);
this.chartFeatCurveViewCtrl1.UpdateChart(true);
}
//验证
private bool Valid()
{
this.dxErrorProvider1.ClearErrors();
if (_express == null)
{
XtraMessageBox.Show("无数据!");
return false;
}
if (string.IsNullOrEmpty(this.CurveCodeTextEdit.Text.Trim()))
{
this.dxErrorProvider1.SetError(this.CurveCodeTextEdit, "必填项");
return false;
}
if (string.IsNullOrEmpty(this.SourceFromImageComboBoxEdit.Text.Trim()))
{
this.dxErrorProvider1.SetError(this.SourceFromImageComboBoxEdit, "必选项");
return false;
}
if (string.IsNullOrEmpty(this.QHCurveFitTypeImageComboBoxEdit.Text.Trim()))
{
this.dxErrorProvider1.SetError(this.QHCurveFitTypeImageComboBoxEdit, "必选项");
return false;
}
return true;
}
//确定
private void btnOK_Click(object sender, EventArgs e)
{
if (!Valid())
return;
var curveCode = this.CurveCodeTextEdit.Text.Trim();
var sourceFrom = (Model.eCurveSourceFrom)this.SourceFromImageComboBoxEdit.EditValue;
this.ReloadDataEvent?.Invoke(curveCode, sourceFrom, _express);
this.DialogResult = DialogResult.OK;
this.Close();
}
}
}