//Загрузка параметров и подготовка формы, если ввод абсолютных значений _isAbsolute=true, иначе ручной ввод public void LoadForInput(ThreadController thread, bool isAbsolute) { DataContext = thread; _isAbsolute = isAbsolute; if (isAbsolute) { thread.State = State.AbsoluteEdit; gridParams.Columns[5].Visibility = Visibility.Visible; //Время gridParams.Columns[6].Visibility = Visibility.Visible; //Значение gridParams.Columns[7].Visibility = Visibility.Visible; //Старое время gridParams.Columns[8].Visibility = Visibility.Visible; //Старое значение gridParams.Columns[9].Visibility = Visibility.Collapsed; //По умолчанию Title = "Поток " + thread.Id + ". Редактирование абсолютных значений"; thread.LoadAbsolute(); thread.CurrentOperation = "Редактирование абсолютных значений"; } else { thread.State = State.HandInput; gridParams.Columns[5].Visibility = Visibility.Collapsed; //Время gridParams.Columns[6].Visibility = Visibility.Collapsed; //Значение gridParams.Columns[7].Visibility = Visibility.Collapsed; //Старое время gridParams.Columns[8].Visibility = Visibility.Collapsed; //Старое значение gridParams.Columns[9].Visibility = Visibility.Visible; //По умолчанию Title = "Поток " + thread.Id + ". Параметры ручного ввода"; thread.StartAtom(Atom.LoadHandInput, thread.LoadHandInput); thread.CurrentOperation = "Ручной ввод значений"; } }
//Загрузка потока контроллера public void AddThread(IRecordRead rec) { var t = new ThreadController(rec) { App = this, Synchro = Synchro }; ThreadsDic.Add(t.Id, t); Threads.Add(t); MonitorHistory.AddHistoryTables(t.Id); }
//Добавить ошибку public void AddError(ThreadController thread, //Поток ErrorCommand er, //Ошибка DateTime time, //Время возникновения CommandLog command) //Текущая команда { try { SqlDb.Execute(SqlProps, "INSERT INTO ErrorsList" + thread.Id + "(ThreadId, ThreadDescription, ThreadProjects, PeriodBegin, PeriodEnd, Description, Params, Time, Command, Context) " + "VALUES (" + thread.Id + ",'" + thread.Comment + "', '" + thread.ProjectsString + "', " + thread.PeriodBegin.ToSqlString() + ", " + thread.PeriodEnd.ToSqlString() + ",'" + er.Text + "', '" + er.Params + "', " + time.ToSqlString() + ", '" + command.Name + "' ,'" + er.Context + "')"); } catch { } }
//Экспорт проекта в другой поток public void ExportProject(ThreadController thread, Project project) { DeleteProject(project); if (thread.State == State.Setup) { thread.PasteProject(project); } else { using (thread.StartAtom(Atom.PasteProject, 0, 100, "Проект " + project.Code, project.Code)) { thread.PasteProject(project); thread.SaveSetup(); } } }