| | |
| | | using DevExpress.XtraEditors; |
| | | using DevExpress.XtraGantt.Scheduling; |
| | | using DevExpress.XtraGrid.Views.Grid; |
| | | using System.ComponentModel; |
| | | using Yw.WinFrmUI; |
| | | |
| | | namespace PBS.WinFrmUI |
| | | { |
| | |
| | | public ElecPriceMgr() |
| | | { |
| | | InitializeComponent(); |
| | | this.gridView1.SetNormalView(30); |
| | | this.gridView1.CellMerge += GridView1_CellMerge; |
| | | this.gridView1.OptionsView.AllowCellMerge = true; |
| | | } |
| | | |
| | | private void BtnAdd_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) |
| | |
| | | AddElePrice(); |
| | | } |
| | | |
| | | private BindingList<ElecPriceViewModel> _allBindingList = null;//所有绑定列表 |
| | | |
| | | private PBS.Vmo.ElecPriceVmo _elecPrice = null; |
| | | |
| | | public override void InitialDataSource() |
| | | { |
| | | SetBindingData(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | | /// </summary> |
| | | public async void SetBindingData() |
| | | { |
| | | _allBindingList = new BindingList<ElecPriceViewModel>(); |
| | | var bll = new BLL.ElecPrice(); |
| | | var allList = await bll.GetAll(); |
| | | if (allList != null) |
| | | _elecPrice = allList.First(); |
| | | if (_elecPrice != null) |
| | | { |
| | | if (_elecPrice.Settings != null && _elecPrice.Settings.MonthList != null) |
| | | { |
| | | var months = _elecPrice.Settings.MonthList.OrderBy(x => x.StartMonth); |
| | | foreach (var month in months) |
| | | { |
| | | if (month.HourList == null) |
| | | continue; |
| | | var belongName = $"{month.StartMonth}~{month.EndMonth}(月)"; |
| | | var hours = month.HourList.OrderBy(x => x.StartHour); |
| | | foreach (var hour in hours) |
| | | { |
| | | var vm = new ElecPriceViewModel(belongName, hour); |
| | | vm.StartMonth = month.StartMonth; |
| | | vm.EndMonth = month.EndMonth; |
| | | _allBindingList.Add(vm); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _elecPrice.Settings = new Vmo.ElecPriceSetting(); |
| | | _elecPrice.Settings.MonthList = new List<Vmo.ElecPriceMonthSetting> { new Vmo.ElecPriceMonthSetting() }; |
| | | } |
| | | } |
| | | this.elecPriceViewModelBindingSource.DataSource = _allBindingList; |
| | | this.elecPriceViewModelBindingSource.ResetBindings(false); |
| | | //this.gridView1.BestFitColumns(); |
| | | } |
| | | |
| | | //添加电费 |
| | | public void AddElePrice() |
| | | { |
| | | var dlg = new AddElectricDlg(); |
| | | dlg.SetBindingData(); |
| | | dlg.ReloadDataEvent += (price) => |
| | | dlg.ReloadDataEvent += async (price) => |
| | | { |
| | | /* var bll = new BLL.ElecPrice(); |
| | | _elecPrice.Settings.MonthList.Add(price); |
| | | var bol = bll.Update(_elecPrice); |
| | | if (bol) |
| | | { |
| | | this.SetBindingData(); |
| | | this.currentViewModelBindingSource.ResetBindings(false); |
| | | return true; |
| | | }*/ |
| | | var bll = new BLL.ElecPrice(); |
| | | _elecPrice.Settings.MonthList.Add(price); |
| | | var bol = await bll.Update(_elecPrice); |
| | | if (bol) |
| | | { |
| | | foreach (var item in price.HourList) |
| | | { |
| | | this._allBindingList.Add(new ElecPriceViewModel |
| | | { |
| | | BelongName = $"{price.StartMonth}~{price.EndMonth}(月)", |
| | | StartHour = item.StartHour, |
| | | EndHour = item.EndHour, |
| | | Price = item.Price |
| | | }); |
| | | } |
| | | this.elecPriceViewModelBindingSource.ResetBindings(false); |
| | | return true; |
| | | } |
| | | return false; |
| | | }; |
| | | dlg.ShowDialog(); |
| | | } |
| | | |
| | | // var oldbelongName= _allBindingList.Where(e=>e.BelongName==belongName).FirstOrDefault(); |
| | | //if (oldbelongName == null) |
| | | |
| | | //编辑电费 |
| | | /* public void EditElePrice() |
| | | { |
| | | var row = gridView1.GetCurrentViewModel(_allBindingList); |
| | | if (row == null) |
| | | return; |
| | | var editTime = _elecPrice.Settings; //提问:这句话点不到hourlist new一个monthsetting就能.到hourlist |
| | | var FindMonth = editTime.MonthList.Find(x => x.StartMonth == row.StartMonth && x.EndMonth == row.EndMonth); |
| | | var addHour = _elecPrice.Settings.MonthList.IndexOf(FindMonth); |
| | | var editHour = editTime.MonthList[addHour]; |
| | | var dlg = new EditElectricDlg(); |
| | | dlg.SetBindingData(editHour.HourList); |
| | | dlg.ReLoadDataevent += (price) => |
| | | { |
| | | editHour.HourList.Clear(); |
| | | editHour.HourList = price; |
| | | var bll = new BLL.ElecPrice(); |
| | | var isok = bll.Update(_elecPrice); |
| | | if (isok) |
| | | { |
| | | this.currentViewModelBindingSource.ResetBindings(false); |
| | | this.SetBindingData(); |
| | | return true; |
| | | } |
| | | return false; |
| | | }; |
| | | dlg.ShowDialog(); |
| | | }*/ |
| | | public void EditElePrice() |
| | | { |
| | | var row = gridView1.GetCurrentViewModel(_allBindingList); |
| | | if (row == null) |
| | | return; |
| | | var editTime = _elecPrice.Settings; |
| | | var FindMonth = editTime.MonthList.Find(x => x.StartMonth == row.StartMonth && x.EndMonth == row.EndMonth); |
| | | var dlg = new EditElectricDlg(); |
| | | dlg.SetBindingData(FindMonth.HourList); |
| | | dlg.ReLoadDataevent += async (price) => |
| | | { |
| | | FindMonth.HourList.Clear(); |
| | | FindMonth.HourList = price; |
| | | var bll = new BLL.ElecPrice(); |
| | | var isok = await bll.Update(_elecPrice); |
| | | if (isok) |
| | | { |
| | | this.SetBindingData(); |
| | | return true; |
| | | } |
| | | return false; |
| | | }; |
| | | dlg.ShowDialog(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 删除电费 |
| | | /// </summary> |
| | | /* public void DeletePrice() |
| | | { |
| | | var row = this.gridView1.GetCurrentViewModel(_allBindingList); |
| | | if (row == null) |
| | | return; |
| | | if (XtraMessageBox.Show("确定要删除所选中?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) != DialogResult.OK) |
| | | return; |
| | | public async void DeletePrice() |
| | | { |
| | | var row = this.gridView1.GetCurrentViewModel(_allBindingList); |
| | | if (row == null) |
| | | return; |
| | | if (XtraMessageBox.Show("确定要删除所选中?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information) != DialogResult.OK) |
| | | return; |
| | | |
| | | _elecPrice.Settings.MonthList.RemoveAll(x => x.StartMonth == row.StartMonth && x.EndMonth == row.EndMonth); |
| | | _elecPrice.Settings.MonthList.RemoveAll(x => x.StartMonth == row.StartMonth && x.EndMonth == row.EndMonth); |
| | | var isok = await new BLL.ElecPrice().Update(_elecPrice); |
| | | if (isok) |
| | | { |
| | | this.elecPriceViewModelBindingSource.ResetBindings(false); |
| | | } |
| | | this.SetBindingData(); |
| | | this.elecPriceViewModelBindingSource.ResetBindings(false); |
| | | MessageBox.Show("删除成功", "提示"); |
| | | } |
| | | |
| | | var isok = new BLL.ElecPrice().Update(_elecPrice); |
| | | if (isok) |
| | | { |
| | | this.currentViewModelBindingSource.ResetBindings(false); |
| | | } |
| | | this.SetBindingData(); |
| | | this.currentViewModelBindingSource.ResetBindings(false); |
| | | MessageBox.Show("删除成功", "提示"); |
| | | }*/ |
| | | //控制只允许分组合并 |
| | | private void GridView1_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e) |
| | | { |
| | | if (e.Column.FieldName == "BelongName") |
| | | { |
| | | // 获取当前单元格和下一个单元格的值 |
| | | var value1 = gridView1.GetRowCellValue(e.RowHandle1, e.Column); |
| | | var value2 = gridView1.GetRowCellValue(e.RowHandle2, e.Column); |
| | | |
| | | // 如果两个单元格的值相等,则允许合并 |
| | | e.Merge = value1 != null && value1.Equals(value2); |
| | | e.Handled = true; |
| | | } |
| | | else |
| | | { |
| | | // 其他列不允许合并 |
| | | e.Merge = false; |
| | | e.Handled = true; |
| | | } |
| | | } |
| | | |
| | | private void BtnEdit_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) |
| | | { |
| | | EditElePrice(); |
| | | } |
| | | |
| | | private void BtnDelete_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) |
| | | { |
| | | DeletePrice(); |
| | | } |
| | | } |
| | | } |