private void ButSyntax_Click(object sender, EventArgs e) { bool er = false; var sh = _book.ActiveShape(); if (sh != null) { try { var rs = new ReportShapeDebug(sh, ShapeFormula.Text); if (!rs.ErrMess.IsEmpty()) { Different.MessageError(rs.ErrMess); er = true; } } catch (Exception ex) { ex.MessageError("Ошибка синтаксиса или применения формулы"); er = true; } } if (!er) { Different.MessageInfo("Формула корректна"); } }
private void butArchiveRanges_Click(object sender, RoutedEventArgs e) { foreach (var p in ThreadC.Providers) { if (p.ProviderType == ProviderType.Archive) { var ar = (IArchive)General.RunProvider(p.Code, p.Name, p.Inf, (ThreadCalc)DataContext); string s = "Диапазоны архива результатов\n"; foreach (var proj in ThreadC.Projects.Values) { var ranges = ar.ReadRanges(proj.Code, ReportType.Calc); s += "\nПроект: " + proj.Code + "\n"; if (ranges.Count == 0) { s += "Архив пустой\n"; } foreach (var range in ranges) { s += range.Key.ToRussian() + ": " + range.Value.Begin + " - " + range.Value.End + "\n"; } } Different.MessageInfo(s); } } }
//Открывает окно потока private void OpenThreadWindow() { if (gridThreads.SelectedItem == null) { Different.MessageInfo("Не выбран поток"); return; } var t = (ThreadController)gridThreads.SelectedItem; if (App.ThreadWindows.ContainsKey(t.Id)) { App.ThreadWindows[t.Id].Focus(); } else { var w = new ThreadWindow { DataContext = t, App = App }; t.ThreadWindow = w; App.ThreadWindows.Add(t.Id, w); w.Show(); t.UpdateState(); } gridThreads.UnselectAllCells(); }
private void butLoadInterval_Click(object sender, EventArgs e) { try { if (Intervals.Rows.Count == 0) { return; } if (!GeneralRep.CheckOneSheet(false)) { return; } GeneralRep.Application.Visible = false; _book.IsReportForming = true; var row = Intervals.Rows[Intervals.SelectedCells[0].RowIndex]; var beg = row.Get("PeriodBegin").ToDateTime(); var en = row.Get("PeriodEnd").ToDateTime(); var cname = row.Get("IntervalName"); _book.Interval = new ArchiveInterval(IntervalType.Single, beg, en, cname); using (_book.StartAtom("Заполнение отчета из журнала", true, beg + " - " + en + " " + cname)) { try { _book.AddEvent("Загрузка интервала", beg + " - " + en + " " + cname); using (_book.Start(10, 40)) _book.ReadReportProject(); using (_book.Start(40)) { _book.FormingBook = _book.Workbook; _book.FillReport("Все листы"); } if (_book.Forms.ContainsKey(ReporterCommand.Report)) { var f = (FormReport)_book.Forms[ReporterCommand.Report]; f.PeriodBegin.Text = beg.ToString(); f.PeriodEnd.Text = en.ToString(); f.IntervalName.Text = cname; } } catch (Exception ex) { _book.AddError("Ошибка заполнения отчета", ex); } _book.ShowError(); } Different.MessageInfo("Отчет загружен из журнала.\nОтчет: " + _book.Code + ", " + _book.Name + "\nПериод: " + beg.ToString() + " - " + en.ToString()); } catch (Exception ex) { GeneralRep.ShowError("Ошибка заполнения отчета", ex); } GeneralRep.Application.Visible = true; _book.Workbook.Activate(); _book.IsReportForming = false; }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { bool stop = true; foreach (var t in App.Threads) { stop &= t.State != State.Calc && t.State != State.FinishCalc && t.State != State.Waiting && t.State != State.FinishWaiting && t.State != State.GetTime; } if (!stop) { Different.MessageInfo("Для закрытия контроллера расчетов нужно чтобы все потоки были остановлены"); e.Cancel = true; } else { try { if (AppInfoWindow != null) { AppInfoWindow.Close(); } } catch {} foreach (var tt in App.Threads) { try { var t = (ThreadController)tt; if (t.HandInputWindow != null && t.HandInputWindow.IsVisible) { var vw = t.HandInputWindow.ValuesVindow; if (vw != null && vw.Visibility == Visibility.Visible) { ((GridInputParam)vw.DataContext).SaveHandValues(); vw.Close(); } t.HandInputWindow.ValuesVindow = null; if (t.HandInputWindow.IsVisible) { t.HandInputWindow.Close(); } } if (t.SetupWindow != null && t.SetupWindow.IsVisible) { t.SetupWindow.Close(); } if (t.ThreadWindow != null && t.ThreadWindow.IsVisible) { t.ThreadWindow.Close(); } t.CloseThread(); } catch {} } try { DaoDb.Compress(General.ControllerFile, 100000000, General.TmpDir); } catch { } } }
private bool SetInitialPeriod() { _videoBegin = VideoBegin.Text.ToDateTime(); _videoEnd = VideoEnd.Text.ToDateTime(); _periodLength = PeriodLength.Text.ToInt(); _betweenPeriods = BetweenPeriods.Text.ToInt(); if (_periodLength == 0 || _betweenPeriods == 0) { Different.MessageInfo("Не заполнена длина интервала отчета или длительность ожидание"); return(false); } SaveSettings(); _periodBegin = _videoBegin; _periodEnd = _periodBegin.AddMinutes(_periodLength); PeriodBegin.Text = _periodBegin.ToString(); PeriodEnd.Text = _periodEnd.ToString(); return(_book.CheckPeriodTime(PeriodBegin.Text, PeriodEnd.Text) != null); }
private bool SetInitialPeriod() { _periodLength = PeriodLength.Text.ToInt(); _sourcesLate = SourcesLate.Text.ToInt(); if (_periodLength == 0) { Different.MessageInfo("Не заполнена длина интервала отчета"); return(false); } SaveSettings(); var d = DateTime.Now.AddMinutes(-_sourcesLate); d = d.Date.AddHours(d.Hour).AddMinutes(d.Minute); _periodEnd = d.AddMinutes(-(d.Minute % _periodLength)); _periodBegin = _periodEnd.AddMinutes(-_periodLength); PeriodBegin.Text = _periodBegin.ToString(); PeriodEnd.Text = _periodEnd.ToString(); return(_book.CheckPeriodTime(PeriodBegin.Text, PeriodEnd.Text) != null); }
private void ButClearArchive_Click(object sender, RoutedEventArgs e) { try { foreach (var p in ThreadC.Providers) { if (p.ProviderType == ProviderType.Archive) { var ar = (IArchive)General.RunProvider(p.Code, p.Name, p.Inf, (ThreadCalc)DataContext); string s = "Произвести очистку архива?\nПровайдер: " + p.Code + "\n"; foreach (var proj in ThreadC.Projects.Values) { var ranges = ar.ReadRanges(proj.Code, ReportType.Calc); s += "\nПроект: " + proj.Code + "\n"; if (ranges.Count == 0) { s += "Архив пустой\n"; } foreach (var range in ranges) { s += range.Key.ToRussian() + ": " + range.Value.Begin + " - " + range.Value.End + "\n"; } } if (Different.MessageQuestion(s)) { ar.ClearArchive(); Different.MessageInfo("Архив успешно очищен"); } } } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show("Не удалось очистить архив \n" + ex.Message + "\n" + ex.StackTrace); } }