//Загрузка параметров ручного ввода для редактирования public void LoadHandInput() { ClearLists(); foreach (var pr in ProjectsList) { try { using (var rec = new ReaderAdo(pr.File, "SELECT * FROM CalcParams WHERE (CalcParamType Is Not Null) And (CalcOn=True) And (TaskOn=True) ORDER BY Task, Code")) while (rec.Read()) { var gip = new GridInputParam(pr.Code, rec, false); if (!ProjectsForFilter.Contains(gip.Project)) { ProjectsForFilter.Add(gip.Project); } if (!TasksForFilter.Contains(gip.Task)) { TasksForFilter.Add(gip.Task); } if (!DataTypesForFilter.Contains(gip.DataType)) { DataTypesForFilter.Add(gip.DataType); } GridInputParams.Add(gip); } } catch (Exception ex) { AddError("Не найден или неправильный проект", ex, pr.Code); MessageBox.Show("Не найден или неправильный проект", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } }
//Загрузка абсолютных значений для редактирования public void LoadAbsolute() { ClearLists(); foreach (var pr in ProjectsList) { using (StartAtom(Atom.LoadAbsolute, 0, 100, "Проект " + pr.Code, pr.Code)) { try { if (SysTabl.SubValueS(pr.File, "ArchiveOptions", "IsAbsolute") == "True") { //Чтение значений из архива var apars = Archive.ReadAbsoluteEdit(pr.Code, false); //Чтение параметров из проекта using (var rec = new ReaderAdo(pr.File, "SELECT CalcParamsArchive.FullCode as Code, CalcParams.Task, CalcParams.Name, CalcSubParams.Name AS SubName, " + "CalcParamsArchive.Units, CalcParamsArchive.DataType, CalcParamsArchive.SuperProcessType, CalcParams.Comment " + "FROM CalcParams INNER JOIN (CalcSubParams RIGHT JOIN CalcParamsArchive ON CalcSubParams.CalcParamId = CalcParamsArchive.CalcSubParamId) ON CalcParams.CalcParamId = CalcParamsArchive.CalcParamId " + "WHERE (CalcParams.CalcOn=True) And (CalcParams.TaskOn=True) And ((CalcSubParams.CalcOn=True) Or (CalcSubParams.CalcOn Is Null)) " + "ORDER BY Task, FullCode;")) while (rec.Read()) { var sp = rec.GetString("SuperProcessType").ToSuperProcess(); if (sp.IsAbsolute()) { var gip = new GridInputParam(pr.Code, rec, true); if (!ProjectsForFilter.Contains(gip.Project)) { ProjectsForFilter.Add(gip.Project); } if (!TasksForFilter.Contains(gip.Task)) { TasksForFilter.Add(gip.Task); } if (!DataTypesForFilter.Contains(gip.DataType)) { DataTypesForFilter.Add(gip.DataType); } if (apars.ContainsKey(gip.Code)) { var hip = apars[gip.Code]; gip.OldValue = hip.OldValue; gip.OldTime = hip.OldTime.ToString(); gip.Value = hip.Value; gip.Time = hip.Time == Different.MinDate ? null : hip.Time.ToString(); } GridInputParams.Add(gip); } } } } catch (Exception ex) { AddError("Ошибка загрузки абсолютных значений", ex); MessageBox.Show("Ошибка загрузки абсолютных значений", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error); } } } }
//Очистка списка параметров и выпадающих списков private void ClearLists() { GridInputParams.Clear(); ProjectsForFilter.Clear(); ProjectsForFilter.Add("<Все>"); TasksForFilter.Clear(); TasksForFilter.Add("<Все>"); DataTypesForFilter.Clear(); DataTypesForFilter.Add("<Все>"); }