ningshuxia
2025-03-31 d321346f204a69b1929cc39098a5d88f44509e7b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using DevExpress.XtraEditors;
using System;
using System.Windows.Forms;
 
namespace IStation.WinFrmUI.Basic
{
    public partial class CopyAndExpandCurveDlg : XtraForm
    {
        public CopyAndExpandCurveDlg()
        {
            InitializeComponent();
            IconOptions.Icon = WinFrmUI.Properties.Resources.App;
            dataLayoutControl1.SetupLayoutControl();
        }
 
        /// <summary>
        /// 回调事件
        /// </summary>
        public event Func<string, Model.FeatCurveExpressGroup, bool> ReloadDataEvent;
 
        private Model.PumpCurveExMapping _pumpCurveExMapping = null;
 
        private Model.FeatCurveExpressGroup _expandFeatCurveExpressGroup = null;
 
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData(Model.PumpCurveExMapping model)
        {
            if (model == null)
                return;
            if (model.CurveInfo == null)
                return;
 
            _pumpCurveExMapping = model;
            _expandFeatCurveExpressGroup = _pumpCurveExMapping.CurveInfo.Copy();
 
            chartFeatCurveViewCtrl1.SetBindingData(model.CurveInfo.CurveQH, model.CurveInfo.CurveQE, model.CurveInfo.CurveQP);
 
            txtOtherName.EditValue = _pumpCurveExMapping.OtherName;
            txtExpand.EditValue = 100;
        }
 
        //比例修改完成
        private void txtExpand_EditValueChanged(object sender, EventArgs e)
        {
            if (_pumpCurveExMapping == null || _pumpCurveExMapping.CurveInfo == null)
                return;
            var value = int.Parse(txtExpand.EditValue.ToString());
            double ratioExtend = value / 100f;
 
            var curveInfo = _pumpCurveExMapping.CurveInfo;
            var qhCurve = curveInfo.CurveQH;
            var qeCurve = curveInfo.CurveQE;
            var qpCurve = curveInfo.CurveQP;
 
            var qhExPoints = IStation.Model.FitCurveHelper.GetFitPointsByExtend(qhCurve, ratioExtend, 12);
            _expandFeatCurveExpressGroup.CurveQH = new Model.CurveExpress(qhExPoints, qhCurve.FitType, true);
 
            if (qeCurve != null)
            {
                var qeExPoints = IStation.Model.FitCurveHelper.GetFitPointsByExtend(qeCurve, ratioExtend, 12);
                _expandFeatCurveExpressGroup.CurveQE = new Model.CurveExpress(qeExPoints, qeCurve.FitType, true);
            }
 
            if (qpCurve != null)
            {
                var qpExPoints = IStation.Model.FitCurveHelper.GetFitPointsByExtend(qpCurve, ratioExtend, 12);
                _expandFeatCurveExpressGroup.CurveQP = new Model.CurveExpress(qpExPoints, qpCurve.FitType, true);
            }
 
            chartFeatCurveViewCtrl1.SetBindingData(_expandFeatCurveExpressGroup.CurveQH, _expandFeatCurveExpressGroup.CurveQE, _expandFeatCurveExpressGroup.CurveQP);
        }
 
        //验证
        private bool Valid()
        {
            dxErrorProvider1.ClearErrors();
            if (string.IsNullOrEmpty(txtOtherName.Text.Trim()))
            {
                dxErrorProvider1.SetError(txtOtherName, "必填项");
                return false;
            }
            return true;
        }
 
        //确定
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (!Valid())
                return;
            var name = txtOtherName.Text.Trim();
 
            var result = ReloadDataEvent?.Invoke(name, _expandFeatCurveExpressGroup);
            if (result == null || !result.Value)
            {
                XtraMessageBox.Show("复制失败!");
                return;
            }
            XtraMessageBox.Show("复制成功!");
            DialogResult = DialogResult.OK;
            Close();
        }
 
    }
}