using DevExpress.XtraEditors; using DevExpress.XtraGrid.Views.Grid; using IStation.CalcModel; using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace IStation.WinFrmUI.CalcErQu { public partial class CalcParasMainPage定水位 : DocumentPage { List _allCalcPumpInfos; public CalcParasMainPage定水位() { InitializeComponent(); this.PageTitle.Caption = "定水位分析"; this.SurfaceGuid = new SurfaceGuid() { Modular = eModular.CalcErQu2, Function = this.PageTitle.Caption }; this.gridViewMain.OptionsDetail.ShowDetailTabs = false;//不显示TAB名 this.gridViewMain.OptionsView.ShowGroupPanel = false;//隐藏最上面的GroupPanel this.gridViewMain.OptionsSelection.MultiSelect = false;//单选 //this.gridViewMain.OptionsBehavior.Editable = false;//只读 this.gridViewMain.IndicatorWidth = 4; this.gridViewMain.RowClick += new DevExpress.XtraGrid.Views.Grid.RowClickEventHandler(this.GridViewMain_RowClick); //this.gridViewMain.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(this.GridViewMain_CustomDrawRowIndicator); //this.gridViewMain.CustomUnboundColumnData += new DevExpress.XtraGrid.Views.Base.CustomColumnDataEventHandler(this.GridViewMain_CustomUnboundColumnData); //this.gridViewMain.DoubleClick += new System.EventHandler(this.GridViewMain_DoubleClick); this.gridViewMain.RowCellClick += new DevExpress.XtraGrid.Views.Grid.RowCellClickEventHandler(this.GridViewMain_RowCellClick); this.gridViewMain.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(this.gridViewMain_CellValueChanged); // //layoutControlGroup3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; this.anaResultInfoDefaultCtrl.OnRefreshTimeSpan += (anaPrj) => { RefreshPrjRangeTime(anaPrj); }; dateEditDay.DateTime = DateTime.Now.Date; _allAnaPrjs = new List(); this.bindingSource1.DataSource = _allAnaPrjs; } private bool _isInitialPageFinished = false; List _elePriceMonthList = null; private void InitialElePrice() { if (_elePriceMonthList == null) { var bllElecPrice = new BLL.ElecPrice(); var allPrices = bllElecPrice.GetAll(); _elePriceMonthList = allPrices.First().Settings.MonthList; } } /// /// /// private void InitalPumpInfo() { if (_allCalcPumpInfos == null) { var allCurveList = new BLL.PumpCurve().GetAll(); var allPumpMapList = new BLL.PumpCurveMapping().GetAll(); var allPumpList = new BLL.Product().GetAllPump(); _allCalcPumpInfos = new List(); foreach (var pump in allPumpList) { var curve_wrk_map = (from x in allPumpMapList where x.PumpID == pump.ID && x.IsWorking select x).FirstOrDefault(); if (curve_wrk_map == null) { MessageBox.Show(pump.Name + "未设置工作曲线"); return; } var curve = allCurveList.Find(x => x.ID == curve_wrk_map.CurveID); IStation.CalcModel.PumpInfo calcPumpInfo = new IStation.CalcModel.PumpInfo(); calcPumpInfo.Product = pump; calcPumpInfo.ID = pump.ID; calcPumpInfo.Name = pump.Name; calcPumpInfo.CurveInfo = curve.CurveInfo; calcPumpInfo.RatedParas = pump.RatedParas; _allCalcPumpInfos.Add(calcPumpInfo); } } } private List _allAnaPrjs = null; private void AddProject(AnaPrj prj) { if (prj == null) return; if (string.IsNullOrEmpty(prj.ID)) prj.ID = Guid.NewGuid().ToString("N"); _allAnaPrjs.Add(prj); this.bindingSource1.DataSource = _allAnaPrjs; this.bindingSource1.ResetBindings(false); } /// /// 初始化数据 /// public override void InitialDataSource() { imageComboClacOptType.SelectedIndex = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.OptSortType; textEditTotalFlow水库放水量.Text = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.LastTargetTotalFlow.ToString(); _isInitialPageFinished = true; } /// /// 刷新数据 /// public override void RefreshDataSource() { } #region GridView AnaPrj _gridViewPrj; private void gridViewMain_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e) { if (e.Column == this.colPrjName) { var prj = gridViewMain.GetRow(e.RowHandle) as AnaPrj; for (int i = 0; i < this.xtraTabControl1.TabPages.Count; i++) { if (this.xtraTabControl1.TabPages[i].Tag == null) continue; if(prj.ID == this.xtraTabControl1.TabPages[i].Tag.ToString()) { this.xtraTabControl1.TabPages[i].Text = e.Value.ToString(); return; } } } } private void GridViewMain_RowClick(object sender, RowClickEventArgs e) { if (e.RowHandle < 0) return; if (e.Button == System.Windows.Forms.MouseButtons.Right) { _gridViewPrj = gridViewMain.GetRow(e.RowHandle) as AnaPrj; contextMenuStrip1.Show(gridControl1, e.Location); } else { //SetRibbonButtonDisp(SPump.WinFrmUI.SeriesTreeView.eNodeLevel.Pump); } } private void GridViewMain_RowCellClick(object sender, RowCellClickEventArgs e) { if (e.Column == colDetail) { var anaPrj = this.gridViewMain.GetRow(e.RowHandle) as IStation.CalcModel.AnaPrj; if (anaPrj != null) { DateTime rangeStartTime, rangeEndTime; GetAnaRangeTime(out rangeStartTime, out rangeEndTime); this.tabPageDefault.Text = anaPrj.Name; this.tabPageDefault.Tag = anaPrj.ID; this.anaResultInfoDefaultCtrl.SetBindingData(this._targetTotalFlow, rangeStartTime, rangeEndTime, anaPrj); } } if (e.Column == colDL) { var anaPrj = this.gridViewMain.GetRow(e.RowHandle) as IStation.CalcModel.AnaPrj; if (anaPrj != null) { foreach (DevExpress.XtraTab.XtraTabPage tab in this.xtraTabControl1.TabPages) { if (tab.Tag == null) continue; if (tab.Tag.ToString() == anaPrj.ID) { this.xtraTabControl1.SelectedTabPage = tab; return; } } AddPrjPanel(anaPrj); } } if (e.Column == this.colDelete) { var anaPrj = this.gridViewMain.GetRow(e.RowHandle) as IStation.CalcModel.AnaPrj; if (anaPrj != null) { for(int i = 0; i < this._allAnaPrjs.Count; i++) { if (_allAnaPrjs[i].ID == anaPrj.ID) { _allAnaPrjs.RemoveAt(i); this.bindingSource1.ResetBindings(false); } } } } } private void MenuItem复制Prj_Click(object sender, EventArgs e) { if (_gridViewPrj == null) return; var new_gridViewPrj = new AnaPrj(_gridViewPrj); new_gridViewPrj.ID = Guid.NewGuid().ToString("N"); AddProject( new_gridViewPrj ); } private void MenuItem默认面板查看Prj_Click(object sender, EventArgs e) { if (_gridViewPrj == null) return; DateTime rangeStartTime, rangeEndTime; GetAnaRangeTime(out rangeStartTime, out rangeEndTime); this.tabPageDefault.Text = _gridViewPrj.Name; this.tabPageDefault.Tag = _gridViewPrj.ID; this.anaResultInfoDefaultCtrl.SetBindingData( this._targetTotalFlow, rangeStartTime, rangeEndTime, _gridViewPrj); } private void MenuItem新建面板查看Prj_Click(object sender, EventArgs e) { if (_gridViewPrj == null) return; foreach (DevExpress.XtraTab.XtraTabPage tab in this.xtraTabControl1.TabPages) { if (tab.Tag == null) continue; if (tab.Tag.ToString() == _gridViewPrj.ID) { this.xtraTabControl1.SelectedTabPage = tab; return; } } AddPrjPanel(_gridViewPrj ); } #endregion /// /// /// /// /// private void GetAnaRangeTime(out DateTime startTime, out DateTime endTime) { var day = this.dateEditDay.DateTime.Date; var startHour = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.StartHourPerDay; if (startHour < 1) { startTime = day; endTime = startTime.AddDays(1); } else { startTime = new DateTime(day.Year, day.Month, day.Day, startHour, 0, 0); endTime = startTime.AddDays(1); } } /// /// /// /// /// private void btnStartCalc_Click(object sender, EventArgs e) { IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.OptSortType = imageComboClacOptType.SelectedIndex; IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.LastTargetTotalFlow = Convert.ToDouble(textEditTotalFlow水库放水量.Text); IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.Save(); AnaOptResult(); } double _targetTotalFlow; private void AnaOptResult() { if (string.IsNullOrEmpty(textEditTotalFlow水库放水量.Text)) { MessageBox.Show("请输入水库放水量"); return; } var list = reservoirParasRequestCtrl.GetHourValues(); if (list == null || list.Count() == 0) { MessageBox.Show("请输入目标水位"); return; } if (!Initial长江水位()) { MessageBox.Show("请输入长江水位信息"); return; } this._targetTotalFlow = 10000 * Convert.ToDouble(textEditTotalFlow水库放水量.Text); if (_targetTotalFlow < 1) { MessageBox.Show("请输入水库放水量"); return; } InitalPumpInfo(); InitialElePrice(); var list水库面积 = IStation.BLL.ReservoirHelper.GetList(); if(list水库面积 == null) { MessageBox.Show("请在设置中,设置水库面积"); return; } var area = list水库面积.First().Area; var total_resev_height = Convert.ToDouble(textEditTotalFlow水库放水量.Text) / area; //IStation.WinFrmUI.WaitFrmHelper.ShowWaitForm(this); // IStation.Calc.ErQuCalcBaseHelper calcHelper = GetCalcHelper(true ); // string error_info; // var anaPrjs = calcHelper.CalcOptPrjs(this._targetTotalFlow, out error_info); // IStation.WinFrmUI.WaitFrmHelper.HideWaitForm(this); // if (!string.IsNullOrEmpty(error_info) || anaPrjs == null || anaPrjs.Count() == 0) // { // MessageBox.Show(error_info); // return; // } // anaPrjs.Sort(new AnaPrj.Comparer(GetSortType())); // foreach (var prj in anaPrjs) // { // prj.Name = string.Format("目标:{0} ({1})", //this.textEditTotalFlow万.Text,this.imageComboClacOptType.Text); // prj.SumMoney = Math.Round(prj.SumMoney, 0); // prj.SumFlow = Math.Round(prj.SumFlow, 0); // prj.SumPower = Math.Round(prj.SumPower, 0); // } // DateTime rangeStartTime, rangeEndTime; // GetAnaRangeTime(out rangeStartTime, out rangeEndTime); // var defaultPrj = anaPrjs.First(); // this.tabPageDefault.Text = defaultPrj.Name; // this.tabPageDefault.Tag = defaultPrj.ID; // this.anaResultInfoDefaultCtrl.SetPumpInfo(_allCalcPumpInfos); // this.anaResultInfoDefaultCtrl.SetRiverWaterLevels(this._waterLevels长江); // this.anaResultInfoDefaultCtrl.SetBindingData(_targetTotalFlow,rangeStartTime, rangeEndTime, defaultPrj); // AddProject(defaultPrj); } private void labelControlDebug清空_Click(object sender, EventArgs e) { listBoxDebug.Items.Clear(); } private void bbi电价信息_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { ViewElecPriceByDay frm = new ViewElecPriceByDay(); frm.SetBindingData(dateEditDay.DateTime.Date); frm.Show(); } private void bbi手动添加方案_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (!Initial长江水位()) return; InitalPumpInfo(); InitialElePrice(); DateTime rangeStartTime, rangeEndTime; GetAnaRangeTime(out rangeStartTime, out rangeEndTime); SetPrjItemSpanTimeDlg frm = new SetPrjItemSpanTimeDlg(); frm.SetDay(rangeStartTime, rangeEndTime); frm.OnRefreshData += (name, rangelist) => { AddManuPrj(name, rangelist); }; if (frm.ShowDialog(this) != DialogResult.OK) return; } private void AddManuPrj(string PrjName, List list) { IStation.WinFrmUI.WaitFrmHelper.ShowWaitForm(this); IStation.Calc.ErQuCalcBaseHelper calcHelper = GetCalcHelper(false ); string error_info; AnaPrj anaPrj = new AnaPrj(); anaPrj.Type = 1; calcHelper.CalcManuPrj(list, ref anaPrj, out error_info); IStation.WinFrmUI.WaitFrmHelper.HideWaitForm(this); if (!string.IsNullOrEmpty(error_info) || anaPrj == null) { MessageBox.Show(error_info); return; } anaPrj.Name = PrjName; if (string.IsNullOrEmpty(anaPrj.Name)) { anaPrj.Name = string.Format("目标:{0} (手动)", this.textEditTotalFlow水库放水量.Text ); } if (string.IsNullOrEmpty(anaPrj.ID)) { anaPrj.ID = Guid.NewGuid().ToString("N"); } anaPrj.SumMoney = Math.Round(anaPrj.SumMoney, 0); anaPrj.SumFlow = Math.Round(anaPrj.SumFlow, 0); anaPrj.SumPower = Math.Round(anaPrj.SumPower, 0); AddProject(anaPrj); AddPrjPanel(anaPrj ); } private void AddPrjPanel(AnaPrj anaPrj ) { DateTime rangeStartTime, rangeEndTime; GetAnaRangeTime(out rangeStartTime, out rangeEndTime); var anaResultInfoCtrlm = new IStation.WinFrmUI.CalcErQu.AnaResultInfoCtrl定水量(); anaResultInfoCtrlm.Location = new System.Drawing.Point(0, 0); anaResultInfoCtrlm.Margin = new System.Windows.Forms.Padding(0); anaResultInfoCtrlm.MinimumSize = new System.Drawing.Size(300, 0); anaResultInfoCtrlm.Name = "anaResultInfoCtrlManu" + anaPrj.ID; anaResultInfoCtrlm.Size = new System.Drawing.Size(963, 637); anaResultInfoCtrlm.Dock = DockStyle.Fill; this.layoutControl1.Controls.Add(anaResultInfoCtrlm); anaResultInfoCtrlm.SetPumpInfo(_allCalcPumpInfos); anaResultInfoCtrlm.SetRiverWaterLevels(this._waterLevels长江); anaResultInfoCtrlm.SetBindingData(this._targetTotalFlow, rangeStartTime, rangeEndTime, anaPrj); anaResultInfoCtrlm.OnRefreshTimeSpan += (anaPrj2) => { RefreshPrjRangeTime(anaPrj2); }; var tabPageManu = new DevExpress.XtraTab.XtraTabPage(); this.xtraTabControl1.TabPages.Insert( this.xtraTabControl1.TabPages.Count-1, tabPageManu); tabPageManu.Controls.Add(anaResultInfoCtrlm); tabPageManu.Name = "Tab"+ anaPrj.ID; tabPageManu.Size = new System.Drawing.Size(967, 724); tabPageManu.Text = anaPrj.Name; tabPageManu.Tag = anaPrj.ID; return; } private void RereshPrjTimeSpan(IStation.CalcModel.AnaPrj anaPrj, List time_list) { //DateTime rangeStartTime, rangeEndTime; //GetAnaRangeTime(out rangeStartTime, out rangeEndTime); //IStation.WinFrmUI.WaitFrmHelper.ShowWaitForm(this); //IStation.Calc.ErQuCalcBaseHelper calcHelper = GetCalcHelper(false); //string error_info; //calcHelper.CalcManuPrj(time_list, ref anaPrj, out error_info); //IStation.WinFrmUI.WaitFrmHelper.HideWaitForm(this); //if (!string.IsNullOrEmpty(error_info) || anaPrj == null) //{ // MessageBox.Show(error_info); // return; //} //anaPrj.SumMoney = Math.Round(anaPrj.SumMoney, 0); //anaPrj.SumFlow = Math.Round(anaPrj.SumFlow, 0); //anaPrj.SumPower = Math.Round(anaPrj.SumPower, 0); //foreach (DevExpress.XtraTab.XtraTabPage tab in this.xtraTabControl1.TabPages) //{ // if (tab.Tag == null) // continue; // if (tab.Tag.ToString() == anaPrj.ID) // { // tab.Text = anaPrj.Name; // this.xtraTabControl1.SelectedTabPage = tab; // var result_ctrl = tab.Controls[0] as AnaResultInfoCtrl; // result_ctrl.SetBindingData(this._targetTotalFlow, rangeStartTime, rangeEndTime, anaPrj); // break; // } //} } private void bbi分析配置_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { AnaSettingMgrDlg frm = new AnaSettingMgrDlg(); if (frm.ShowDialog() != DialogResult.OK) return; } private void bbi导出计算迭代基础数据_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (string.IsNullOrEmpty(textEditTotalFlow水库放水量.Text)) { return; } if (!Initial长江水位()) { MessageBox.Show("请输入长江水位信息"); return; } InitalPumpInfo(); InitialElePrice(); IStation.Calc.ErQuCalcBaseHelper calcHelper = GetCalcHelper(false ); SaveFileDialog saveFileDlg = new SaveFileDialog(); saveFileDlg.Filter = "csv 文件(*.csv)|*.csv"; if (saveFileDlg.ShowDialog() != DialogResult.OK) return; string error_info; calcHelper.ExportTimeData(saveFileDlg.FileName, out error_info); if (!string.IsNullOrEmpty(error_info)) MessageBox.Show(error_info); } private IStation.Calc.ErQuCalcBaseHelper GetCalcHelper(bool isIgnoreOpenLimitAble) { DateTime rangeStartTime, rangeEndTime; GetAnaRangeTime(out rangeStartTime, out rangeEndTime); IStation.Calc.ErQuCalcBaseHelper calcHelper = IStation.Calc.ErQuCalcBaseHelper.Build(); calcHelper.MinOpenPumpMinute = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.MinOpenTimeMinute; calcHelper.MinSwitchPumpMinute = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.MinSwitchTimeMinute; calcHelper.SetPumpInfo(_allCalcPumpInfos); calcHelper.SetCalcTimeRange(rangeStartTime, rangeEndTime); calcHelper.StartOpenCount = Convert.ToInt32(imageComboCurrentOpenCount.EditValue); calcHelper.MaxPumpSwitchCount = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.MaxPumpSwitchCount; calcHelper.ElecPrice = _elePriceMonthList; calcHelper.CalcSpaceMinute = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.CalcSpaceMinute; calcHelper.RiverWaterLevels = _waterLevels长江; calcHelper.IsDispDebug = true; calcHelper.OnShowDebugInfo += (info) => { if (tabPageDebug.PageVisible) this.listBoxDebug.Items.Add(info); }; calcHelper.SetClacOptType(GetCalcOptType()); //不许切泵时间 if (!string.IsNullOrEmpty(IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.SwitchPumpIgnoreTimes)) { var ttt = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.SwitchPumpIgnoreTimes.Split( new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); List limit_times = new List(); foreach (var t in ttt) { var ddd = t.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries); if (Convert.ToBoolean(ddd[0]) == false) continue; var st = ddd[1].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); var ed = ddd[2].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); int ed_h = Convert.ToInt32(ed[0]); int st_h = Convert.ToInt32(st[0]); IStaton.CalcModel.TimeRange v = new IStaton.CalcModel.TimeRange(); if (ed_h <= rangeStartTime.Hour) { var nextDay = rangeStartTime.AddDays(1); v.Start = new DateTime(nextDay.Year, nextDay.Month, nextDay.Day, st_h, Convert.ToInt32(st[1]), 0); } else { v.Start = new DateTime(rangeStartTime.Year, rangeStartTime.Month, rangeStartTime.Day, st_h, Convert.ToInt32(st[1]), 0); } //v.Start = new DateTime(rangeStartTime.Year, rangeStartTime.Month, // rangeStartTime.Day, Convert.ToInt32(st[0]), Convert.ToInt32(st[1]), 0); bool isNext = ed_h > 23 ? true : false; //v.StartM = Convert.ToInt32(ed[1]); //ed_h > 23 ? ed_h - 24 : ed_h; if (isNext) { var nextDay = v.Start.AddDays(1); v.End = new DateTime(nextDay.Year, nextDay.Month, nextDay.Day, ed_h - 24, Convert.ToInt32(ed[1]), 0); } else { v.End = new DateTime(v.Start.Year, v.Start.Month, v.Start.Day, ed_h, Convert.ToInt32(ed[1]), 0); } if (v.End > v.Start) { limit_times.Add(v); } } calcHelper.LimitSwitchPumpTimes = limit_times; } //不许开泵时间 if (isIgnoreOpenLimitAble==true && !string.IsNullOrEmpty(IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.OpenPumpIgnoreTimes)) { var ttt = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.OpenPumpIgnoreTimes.Split( new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); List limit_times = new List(); foreach (var t in ttt) { var ddd = t.Split(new char[] { '-' }, StringSplitOptions.RemoveEmptyEntries); if (Convert.ToBoolean(ddd[0]) == false) continue; var st = ddd[1].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); var ed = ddd[2].Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries); int ed_h = Convert.ToInt32(ed[0]); int st_h = Convert.ToInt32(st[0]); IStaton.CalcModel.TimeRange v = new IStaton.CalcModel.TimeRange(); if (ed_h <= rangeStartTime.Hour) { var nextDay = rangeStartTime.AddDays(1); v.Start = new DateTime(nextDay.Year, nextDay.Month, nextDay.Day, st_h, Convert.ToInt32(st[1]), 0); } else { v.Start = new DateTime(rangeStartTime.Year, rangeStartTime.Month, rangeStartTime.Day, st_h, Convert.ToInt32(st[1]), 0); } bool isNext = ed_h > 23 ? true : false; //ed_h > 23 ? ed_h - 24 : ed_h; if (isNext) { var nextDay = v.Start.AddDays(1); v.End = new DateTime(nextDay.Year, nextDay.Month, nextDay.Day, ed_h - 24, Convert.ToInt32(ed[1]), 0); } else { v.End = new DateTime(v.Start.Year, v.Start.Month, v.Start.Day, ed_h, Convert.ToInt32(ed[1]), 0); } if (v.End > v.Start) { limit_times.Add(v); } } calcHelper.LimitOpenPumpTimes = limit_times; } return calcHelper; } private eCalcOptType GetCalcOptType() { eCalcOptType sortType = eCalcOptType.功率; if (this.imageComboClacOptType.SelectedIndex == 0) { sortType = eCalcOptType.功率; } else if (this.imageComboClacOptType.SelectedIndex == 1) { sortType = eCalcOptType.电费; } return sortType; } #region 长江水位 List _waterLevels长江 = null; private void dateEditDay_EditValueChanged(object sender, EventArgs e) { if (_isInitialPageFinished == false) return; Initial长江水位(); DateTime rangeStartTime, rangeEndTime; GetAnaRangeTime(out rangeStartTime, out rangeEndTime); _isInitial长江水位Chart = true; viewRealTimeRiverWaterLevelCtrl1.SetBindingData3Day(rangeStartTime, rangeEndTime); } private bool Initial长江水位() { DateTime rangeStartTime, rangeEndTime; GetAnaRangeTime(out rangeStartTime, out rangeEndTime); WaitFrmHelper.ShowWaitForm(this); string error = null; try { string benchmark = ""; this._waterLevels长江 = IStation.WinFrmUI.CalcErQu.TideHelper.GetByTime( rangeStartTime, rangeEndTime, out benchmark, out error); if (benchmark != null && _waterLevels长江!=null) { layoutControlGroup2.Text = string.Format ("长江水位: 暂时认为潮汐查询的数据( 就是成行基准,如不是,需要修正),网站返回备注是:{0}", benchmark); var base_level = IStation.WinFrmUI.CalcErQu.Properties.Settings.Default.RiverWaterLevelBase; if (Math.Abs(base_level) > 0.1) { List waterLevels长江xz = new List(); foreach(var m in _waterLevels长江) { Model.TimeWaterLevel m2 = new Model.TimeWaterLevel(m); m2.Level += base_level; waterLevels长江xz.Add(m2); } this._waterLevels长江 = waterLevels长江xz; } return true; } else { layoutControlGroup2.Text = "长江水位:"+ error; return false; } } catch (Exception ex) { error = ex.Message; } finally { WaitFrmHelper.HideWaitForm(this); if (!string.IsNullOrEmpty(error)) { MessageBox.Show(error); } } return false; } private void bbi显示长江水位曲线_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (!Initial长江水位()) return; ViewRealTimeRiverWaterLevelDlg frm = new ViewRealTimeRiverWaterLevelDlg(); frm.SetBindingData(_waterLevels长江); frm.Show(); } private void layoutControlGroup2_CustomButtonUnchecked(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e) { if (_isInitial长江水位Chart) return; DateTime rangeStartTime, rangeEndTime; GetAnaRangeTime(out rangeStartTime, out rangeEndTime); _isInitial长江水位Chart = true; viewRealTimeRiverWaterLevelCtrl1.SetBindingData3Day(rangeStartTime, rangeEndTime); //viewRealTimeRiverWaterLevelCtrl1.SetStripRange(); } private bool _isInitial长江水位Chart = false; private void bbi长江水位_油猴插件输入_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { InputRiverWaterLevelData油猴Dlg frm = new InputRiverWaterLevelData油猴Dlg(); frm.SetDay(this.dateEditDay.DateTime); if (frm.ShowDialog() == DialogResult.OK) { this._waterLevels长江 = frm.GetWaterLevels长江(); } } private void btnRefresh水位_Click(object sender, EventArgs e) { //if (imageComboWL.SelectedIndex == 0) //{ Initial长江水位(); //} //else //{ // InputRiverWaterLevelData油猴Dlg frm = new InputRiverWaterLevelData油猴Dlg(); // frm.SetDay(this.dateEditDay.DateTime); // if (frm.ShowDialog() == DialogResult.OK) // { // this._waterLevels长江 = frm.GetWaterLevels长江(); // } //} } #endregion private void layoutControlGroup7_CustomButtonClick(object sender, DevExpress.XtraBars.Docking2010.BaseButtonEventArgs e) { var btn = e.Button as DevExpress.XtraEditors.ButtonsPanelControl.GroupBoxButton; if (btn == null || btn.Tag == null) return; if (btn.Tag.ToString() == "Export") { SaveFileDialog dlg = new SaveFileDialog(); dlg.Title = "导出信息列表"; dlg.FileName = "信息列表.xls"; dlg.Filter = "excel文件 (*.xls)|*.xls"; if (dlg.ShowDialog() == DialogResult.OK) this.gridControl1.ExportToXls(dlg.FileName); } if (btn.Tag.ToString() == "Empty") { this._allAnaPrjs.Clear(); this.bindingSource1.ResetBindings(false); } } private void RefreshPrjRangeTime(AnaPrj anaPrj) { if (anaPrj == null) return; DateTime rangeStartTime, rangeEndTime; GetAnaRangeTime(out rangeStartTime, out rangeEndTime); SetPrjItemSpanTimeDlg frm = new SetPrjItemSpanTimeDlg(); frm.SetDay(rangeStartTime, rangeEndTime); frm.SetBindingData(anaPrj); frm.OnRefreshData += (name,list) => { anaPrj.Name = name; RereshPrjTimeSpan(anaPrj, list); }; if (frm.ShowDialog() == DialogResult.OK) { } } } }