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(); } } }