Shuxia Ning
2024-10-23 5dd7ab9852c9a5659cc916e9ed986b5099efeaf8
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
using DevExpress.XtraEditors;
using DevExpress.XtraTabbedMdi;
 
namespace Yw.WinFrmUI
{
    public partial class HydroTankBulkSetListCtrl : DevExpress.XtraEditors.XtraUserControl, IHydroParterBulkSetListCtrl
    {
        public HydroTankBulkSetListCtrl()
        {
            InitializeComponent();
            this.gridView1.SetNormalView(30);
            this.gridView1.RegistCustomDrawRowIndicator(40);
        }
 
        /// <summary>
        /// 水力点击事件
        /// </summary>
        public event Action<Yw.Model.HydroParterInfo> HydroClickEvent;
 
        /// <summary>
        /// 是否拥有水利列表
        /// </summary>
        public bool HasHydroList
        {
            get { return _allBindingList != null && _allBindingList.Count > 0; }
        }
 
        //所有列表
        private List<HydroTankBulkSetViewModel> _allList = null;
        //所有绑定列表
        private List<HydroTankBulkSetViewModel> _allBindingList = null;
 
        /// <summary>
        /// 绑定数据
        /// </summary>
        public void SetBindingData(Yw.Model.HydroModelInfo hydroInfo)
        {
            _allList = new List<HydroTankBulkSetViewModel>();
            if (hydroInfo != null && hydroInfo.Tanks != null && hydroInfo.Tanks.Count > 0)
            {
                foreach (var tank in hydroInfo.Tanks)
                {
                    var vm = new HydroTankBulkSetViewModel(tank);
                    _allList.Add(vm);
                }
            }
            Search();
        }
 
        //查询
        private void Search()
        {
            if (_allList == null || _allList.Count < 1)
            {
                return;
            }
            var name = this.txtName.Text.Trim();
            var code = this.txtCode.Text.Trim();
            var modelType = this.txtModelType.Text.Trim();
            _allBindingList = _allList;
            if (!string.IsNullOrEmpty(name))
            {
                _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.Name) && x.Name.Contains(name)).ToList();
            }
            if (!string.IsNullOrEmpty(code))
            {
                _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.Code) && x.Code.Contains(code)).ToList();
            }
            if (!string.IsNullOrEmpty(modelType))
            {
                _allBindingList = _allBindingList.Where(x => !string.IsNullOrEmpty(x.ModelType) && x.ModelType.Contains(modelType)).ToList();
            }
            this.hydroTankBulkSetViewModelBindingSource.DataSource = _allBindingList;
            this.hydroTankBulkSetViewModelBindingSource.ResetBindings(false);
        }
 
        //重置
        private void Reset()
        {
            this.txtName.EditValue = null;
            this.txtCode.EditValue = null;
            this.txtModelType.EditValue = null;
            Search();
        }
 
        //设置
        private void Set()
        {
            Search();
            if (_allBindingList == null || _allBindingList.Count < 1)
            {
                XtraMessageBox.Show("无可设置水池数据");
                return;
            }
            var dlg = new HydroTankBulkSetDlg();
            dlg.SetBindingData(_allBindingList.Select(x => x.Vmo).ToList());
            dlg.ReloadDataEvent += (list) =>
            {
                _allBindingList.ForEach(x =>
                {
                    x.PoolElev = x.Vmo.PoolElev;
                    x.InitLevel = x.Vmo.InitLevel;
                    x.MinLevel = x.Vmo.MinLevel;
                    x.MaxLevel = x.Vmo.MaxLevel;
                    x.DN = x.Vmo.DN;
                    x.OverFlow = x.Vmo.OverFlow;
                });
                this.hydroTankBulkSetViewModelBindingSource.DataSource = _allBindingList;
                this.hydroTankBulkSetViewModelBindingSource.ResetBindings(false);
            };
            dlg.ShowDialog();
        }
 
        //行点击事件
        private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
        {
            var row = this.gridView1.GetRow(e.RowHandle) as HydroTankBulkSetViewModel;
            if (row == null)
            {
                return;
            }
            this.HydroClickEvent?.Invoke(row.Vmo);
        }
 
        //查询
        private void btnSearch_Click(object sender, EventArgs e)
        {
            Search();
        }
 
        //重置
        private void btnReset_Click(object sender, EventArgs e)
        {
            Reset();
        }
 
        //设置
        private void btnSet_Click(object sender, EventArgs e)
        {
            Set();
        }
 
 
    }
}