Exemplo n.º 1
0
        private void FormFiltersParams_Load(object sender, EventArgs e)
        {
            _book      = GeneralRep.ActiveBook;
            _linksForm = (FormPutLinks)_book.Forms[ReporterCommand.PutLinks];
            MakeFiltersLists();
            var sys = _book.SysPage;

            sys.GetControl(FilterOtm);
            sys.GetControl(RelationOtm);
            sys.GetControl(FilterFullCode);
            sys.GetControl(RelationFullCode);
            sys.GetControl(FilterCode);
            sys.GetControl(RelationCode);
            sys.GetControl(FilterSubCode);
            sys.GetControl(RelationSubCode);
            sys.GetControl(FilterName);
            sys.GetControl(RelationName);
            sys.GetControl(FilterComment);
            sys.GetControl(RelationComment);
            sys.GetControl(FilterTask);
            sys.GetControl(RelationTask);
            sys.GetControl(FilterUnits);
            sys.GetControl(RelationUnits);
            sys.GetControl(FilterDataType);
            sys.GetControl(RelationDataType);
            sys.GetControl(FilterSuperProcess);
            sys.GetControl(RelationSuperProcess);
            sys.GetControl(FilterCalcParamType);
            sys.GetControl(RelationCalcParamType);
            new ToolTip().SetToolTip(ButFilter, "Применить фильтр к списку параметров");
            new ToolTip().SetToolTip(ButClearFilter, "Снять фильтр со списка параметров");
            new ToolTip().SetToolTip(ButFind, "Поиск в списке параметров");
        }
Exemplo n.º 2
0
 private void FormSaveReport_Load(object sender, EventArgs e)
 {
     _book             = GeneralRep.ActiveBook;
     IntervalName.Text = _book.Interval.Name;
     PeriodBegin.Text  = _book.Interval.Begin.ToString();
     PeriodEnd.Text    = _book.Interval.End.ToString();
 }
Exemplo n.º 3
0
        private void FormFiltersIntervals_Load(object sender, EventArgs e)
        {
            _book          = GeneralRep.ActiveBook;
            _intervalsForm = (FormIntervals)_book.Forms[ReporterCommand.Intervals];
            var sys = _book.SysPage;

            sys.GetControl(FilterOtm, "FilterOtmIntervals");
            sys.GetControl(RelationOtm, "RelationOtmIntervals");
            sys.GetControl(FilterName, "FilterNameIntervals");
            sys.GetControl(RelationName, "RelationNameIntervals");
            sys.GetControl(FilterBegin1, "FilterBegin1Intervals");
            sys.GetControl(RelationBegin1, "RelationBegin1Intervals");
            sys.GetControl(FilterBegin2, "FilterBegin2Intervals");
            sys.GetControl(RelationBegin2, "RelationBegin2Intervals");
            sys.GetControl(FilterEnd1, "FilterEnd1Intervals");
            sys.GetControl(RelationEnd1, "RelationEnd1Intervals");
            sys.GetControl(FilterEnd2, "FilterEnd2Intervals");
            sys.GetControl(RelationEnd2, "RelationEnd2Intervals");
            sys.GetControl(FilterTimeChange1, "FilterTimeChange1Intervals");
            sys.GetControl(RelationTimeChange1, "RelationTimeChange1Intervals");
            sys.GetControl(FilterTimeChange2, "FilterTimeChange2Intervals");
            sys.GetControl(RelationTimeChange2, "RelationTimeChange2Intervals");
            FilterBegin1.ChangePickerValue(PickerBegin1);
            FilterBegin2.ChangePickerValue(PickerBegin2);
            FilterEnd1.ChangePickerValue(PickerEnd1);
            FilterEnd2.ChangePickerValue(PickerEnd2);
            FilterTimeChange1.ChangePickerValue(PickerTimeChange1);
            FilterTimeChange2.ChangePickerValue(PickerTimeChange2);
            new ToolTip().SetToolTip(ButFilter, "Применить фильтр к журналу отчетов");
            new ToolTip().SetToolTip(ButClearFilter, "Снять фильтр с журнала отчетов");
            new ToolTip().SetToolTip(ButFind, "Поиск в журнале отчетов");
        }
Exemplo n.º 4
0
        //Инициализация, version - версия Excel
        public static void Initialize(Application application, string version)
        {
            try
            {
                if (_isInitialized)
                {
                    return;
                }
                IsActivated = new DbVersion().ACheck("Excel") >= 1;
                if (!IsActivated)
                {
                    return;
                }

                General.Initialize();

                Application = application;
                CommonBook  = new ReportBook("", null);
                CommonBook.OpenHistory(General.ReporterDir + @"ReporterHistory\" + version + "History.accdb", General.HistryTemplateFile);
                _isInitialized = true;
            }
            catch (Exception ex)
            {
                ex.MessageError("Ошибка при инициализации построителя отчетов");
            }
        }
Exemplo n.º 5
0
        //Загрузка списка шаблонов в таблицу
        private void FormLinksTemplate_Load(object sender, EventArgs e)
        {
            try
            {
                _book = GeneralRep.ActiveBook;
                _book.SysPage.GetTemplatesList(Template);
                var items = LinkPropsPanel.CellLinkType.Items;
                items.Clear();
                items.Add(LinkType.Combined.ToRussian());
                items.Add(LinkType.CombinedList.ToRussian());
                items.Add(LinkType.MomentsList.ToRussian());
                items.Add(LinkType.Absolute.ToRussian());
                items.Add(LinkType.AbsoluteEdit.ToRussian());
                items.Add(LinkType.AbsoluteCombined.ToRussian());
                items.Add(LinkType.AbsoluteList.ToRussian());
                items.Add(LinkType.HandInput.ToRussian());
                items.Add(LinkType.Result.ToRussian());

                _template = Template.Text = _book.SysPage.GetValue("CurTemplate");
                LoadTemplate();
            }
            catch (Exception ex)
            {
                GeneralRep.ShowError("Ошибка при загрузке списка шаблонов", ex);
            }
        }
Exemplo n.º 6
0
 //Загрузка из рекордсета ReporterData
 public ReportProjectForData(ReportBook book, IRecordRead rec) : base(book, rec)
 {
     ProjectChangeTime = Different.MinDate;
     ArchiveChangeTime = Different.MinDate;
     DataChangeTime    = Different.MinDate;
     LoadArchive(rec, book);
 }
Exemplo n.º 7
0
 private void FormIntervalsWin_Load(object sender, EventArgs e)
 {
     _book = GeneralRep.ActiveBook;
     UpdateIntervals();
     new ToolTip().SetToolTip(butFilter, "Фильтрация и поиск в журнале отчетов");
     new ToolTip().SetToolTip(butCheckAll, "Отметить все");
     new ToolTip().SetToolTip(butUncheckAll, "Снять все отметки");
     new ToolTip().SetToolTip(butLoadInterval, "Загрузить выбранный отчет из журнала");
     new ToolTip().SetToolTip(butDeleteIntervals, "Удалить все отмеченные отчеты из журнала");
 }
Exemplo n.º 8
0
 //Спрятать активную книгу со всеми формами
 private static void HideBook()
 {
     if (ActiveBook != null)
     {
         foreach (var f in ActiveBook.Forms.Values)
         {
             f.Hide();
         }
         ActiveBook = null;
     }
 }
Exemplo n.º 9
0
        private void ButExport_Click(object sender, EventArgs e)
        {
            if (Template.Text.IsEmpty())
            {
                Different.MessageError("Не указано имя шаблона");
                return;
            }
            SaveTemplate();
            var f = new DialogCommand(DialogType.OpenExcel)
            {
                DialogTitle  = "Файл отчета для экспорта шаблона",
                ErrorMessage = "Указан недопустимый файл отчета"
            }.Run();

            try
            {
                if (!f.IsEmpty())
                {
                    var        t     = _book.SysPage.GetTemplate(Template.Text);
                    var        p     = _book.SysPage.GerTemplateGeneralProps(Template.Text);
                    Workbook   rbook = null;
                    ReportBook book  = null;
                    bool       notb  = true;
                    foreach (var b in GeneralRep.Books.Values)
                    {
                        try
                        {
                            if (b.Workbook.FullName == f)
                            {
                                notb  = false;
                                book  = b;
                                rbook = b.Workbook;
                            }
                        }
                        catch { }
                    }
                    if (notb)
                    {
                        rbook = GeneralRep.Application.Workbooks.Open(f);
                        book  = GeneralRep.ActiveBook;
                    }
                    if (book.SysPage.TemplateX(Template.Text) == -1 || Different.MessageQuestion("В отчете " + book.Code + " уже есть шаблон " + Template.Text + ". Заменить?"))
                    {
                        book.SysPage.PutTemplate(Template.Text, p.ToPropertyString(), t);
                        rbook.Save();
                    }
                    if (notb)
                    {
                        rbook.Close();
                    }
                }
            }
            catch { Different.MessageError("Ошибка при экспорте шаблона в файл " + f); }
        }
Exemplo n.º 10
0
 //Загрузка из рекордсета ReporterData (recd) и файла данных отчета (rec)
 public ReportProject(ReportBook book, IRecordRead recd, IRecordRead rec)
     : base(book, recd)
 {
     IsUsed      = rec.GetBool("IsUsed");
     IsHandInput = rec.GetBool("IsHandInput");
     if (IsUsed)
     {
         LoadArchive(recd, book);
     }
     if (IsHandInput)
     {
         GetHandInputFile();
     }
 }
Exemplo n.º 11
0
 private void ButSetupReport_Click(object sender, EventArgs e)
 {
     try
     {
         Workbook wbook = GeneralRep.Application.Workbooks.Open(SelectedReportFile.Text);
         var      code  = new SysPage(wbook).GetValue("Report");
         var      book  = new ReportBook(code, wbook);
         GeneralRep.Books.Add(code, book);
         book.RunCommandReporter(ReporterCommand.Setup);
     }
     catch
     {
         Different.MessageError("Указан недопустимый файл бланка отчета");
     }
 }
Exemplo n.º 12
0
        //Загрузка из рекордсета ReporterData или файла данных отчета
        public ReportProjectBase(ReportBook book, IRecordRead rec)
        {
            Book  = book;
            Code  = rec.GetString("Project");
            Code2 = rec.GetString("ProjectCode2");
            Name  = rec.GetString("ProjectName");
            var prs = book.SysPage.GetProjects();

            if (prs.ContainsKey(CodeFinal))
            {
                CalcMode = prs[CodeFinal].CalcMode;
            }
            File = rec.GetString("ProjectFile");
            if (!DbVersion.IsProject(File))
            {
                File = null;
            }
        }
Exemplo n.º 13
0
        private void FormLiveReport_Load(object sender, EventArgs e)
        {
            _book             = GeneralRep.ActiveBook;
            _book.FormingBook = _book.Workbook;
            var sys = _book.SysPage;

            using (_book.StartAtom("Открытие формы динамических отчетов"))
            {
                try
                {
                    _book.AddEvent("Настройка внешнего вида");
                    PeriodLength.Text = sys.GetValue("LiveReportPeriodLength");
                    SourcesLate.Text  = sys.GetValue("LiveReportSourcesLate");
                    FillPages.Text    = sys.GetValue("LiveReportFillPages");
                }
                catch (Exception ex)
                {
                    GeneralRep.ShowError("Ошибка при открытии формы динамических отчетов", ex);
                }
            }
        }
Exemplo n.º 14
0
        private void FormVideo_Load(object sender, EventArgs e)
        {
            _book             = GeneralRep.ActiveBook;
            _book.FormingBook = _book.Workbook;
            var sys = _book.SysPage;

            using (_book.StartAtom("Открытие формы видеомагнитофона"))
            {
                try
                {
                    _book.AddEvent("Настройка внешнего вида");
                    VideoBegin.Text     = sys.GetValue("VideoBegin");
                    VideoEnd.Text       = sys.GetValue("VideoEnd");
                    PeriodLength.Text   = sys.GetValue("VideoPeriodLength");
                    BetweenPeriods.Text = sys.GetValue("VideoBetweenPeriods");
                    FillPages.Text      = sys.GetValue("VideoFillPages");
                    UpdateSourcesTime();
                }
                catch (Exception ex)
                {
                    GeneralRep.ShowError("Ошибка при открытии формы видеомагнитофона", ex);
                }
            }
        }
Exemplo n.º 15
0
 //Загрузка из файла данных отчета (recd)
 public ReportProjectForLinks(ReportBook book, IRecordRead rec)
     : base(book, rec)
 {
     IsUsed      = false;
     IsHandInput = false;
 }
Exemplo n.º 16
0
        private void FormReportWin_Load(object sender, EventArgs e)
        {
            _book = GeneralRep.ActiveBook;
            var sys = _book.SysPage;

            using (_book.StartAtom("Открытие формы построения отчета"))
            {
                try
                {
                    _book.AddEvent("Настройка внешнего вида");
                    panelPeriod.Visible      = !_book.OnlyAbsolute;
                    butSaveHandInput.Visible = _book.HandInputProjects.Count > 0;

                    //Загрузка данных с SysPage
                    IntervalName.Text = sys.GetValue("DefaultCalcName");
                    if (IntervalName.Text.IsEmpty())
                    {
                        IntervalName.Text = sys.GetValue("CalcName");
                    }
                    FillPages.Text        = sys.GetValue("FillPages");
                    SaveToArchive.Checked = sys.GetBoolValue("SaveToArchive");
                    PeriodEnd.Enabled     = PeriodEndPicker.Enabled = _book.DifferentLength != DifferentLength.Equals;
                    string s = "";
                    int    d = sys.GetIntValue("DayLength");
                    if (d != 0)
                    {
                        s += d + " сут ";
                    }
                    d = sys.GetIntValue("HourLength");
                    if (d != 0)
                    {
                        s += d + " час ";
                    }
                    d = sys.GetIntValue("MinuteLength");
                    if (d != 0)
                    {
                        s += d + " мин ";
                    }
                    PeriodLength.Text           = s;
                    butPreviousInterval.Enabled = butNextInterval.Enabled = s != "";

                    switch (_book.DefaultPeriod)
                    {
                    case "Previous":
                        _book.SysPage.GetControl(PeriodBegin);
                        _book.SysPage.GetControl(PeriodEnd);
                        PeriodBegin.ChangePickerValue(PeriodBeginPicker);
                        PeriodEnd.ChangePickerValue(PeriodEndPicker);
                        break;

                    case "Now":
                        SetNowPeriod();
                        break;
                    }
                    UpdateSourcesTime();
                }
                catch (Exception ex)
                {
                    GeneralRep.ShowError("Ошибка при открытии формы построения отчетов", ex);
                }
            }
        }
Exemplo n.º 17
0
 //Установить текущую книгу активной, вызывается при смене книги или при открытии новой
 public static void ChangeActiveBook()
 {
     if (!IsActivated)
     {
         return;
     }
     try
     {
         if (!SysPage.IsInfoTask())
         {
             HideBook();
         }
         else
         {
             var wb = Application.ActiveWorkbook;
             var s  = new SysPage(wb).GetValue("Report");
             using (CommonBook.StartLog("Смена активной книги", "", s))
             {
                 try
                 {
                     if (IsOpening && !ProgrammOpening && !s.IsEmpty())
                     {
                         try //Чтобы не вылазила загадочная ошибка
                         {
                             if (Books.ContainsKey(s) && Books[s].Workbook.FullName != wb.FullName)
                             {
                                 Different.MessageError("Файл отчета с кодом " + s + " уже открыт");
                             }
                         }
                         catch { }
                     }
                     if (s.IsEmpty())
                     {
                         ActiveBook = null;
                     }
                     else if (ActiveBook == null || ActiveBook.Code.ToLower() != s.ToLower())
                     {
                         HideBook();
                         if (Books.ContainsKey(s))
                         {
                             ActiveBook = Books[s];
                             foreach (var f in ActiveBook.Forms.Values)
                             {
                                 f.Show();
                             }
                         }
                         else
                         {
                             ActiveBook = new ReportBook(s, wb);
                             ActiveBook.OpenHistory(General.ReporterDir + @"ReporterHistory\" + s + "History.accdb", General.HistryTemplateFile);
                             Books.Add(s, ActiveBook);
                             ActiveBook.LoadSetup();
                         }
                     }
                 }
                 catch (Exception ex)
                 {
                     CommonBook.AddError("Ошибка при открытии отчета", ex);
                     throw;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         ex.MessageError("Ошибка при открытии отчета", "Системная ошибка построителя отчетов");
     }
     IsOpening       = false;
     ProgrammOpening = false;
 }
Exemplo n.º 18
0
        private void FormSetupWin_Load(object sender, EventArgs e)
        {
            _setupIsLoaded = false;
            _book          = GeneralRep.ActiveBook;
            _book.AddEvent("Загрузка свойств отчета");
            var sys = _book.SysPage;

            try
            {   //Свойства отчета
                sys.GetControl(CodeReport, "Report");
                sys.GetControl(NameReport, "ReportName");
                sys.GetControl(DescriptionReport, "ReportDescription");
                FileReport.Text = GeneralRep.Application.ActiveWorkbook.FullName;
                sys.GetControl(MonthLength);
                sys.GetControl(DayLength);
                sys.GetControl(HourLength);
                sys.GetControl(MinuteLength);
                sys.GetControl(DayStart);
                sys.GetControl(HourStart);
                sys.GetControl(MinuteStart);
                radioDifferent.Checked           = sys.GetBoolValue("DifferentLength");
                radioLess.Checked                = sys.GetValue("DifferentLength") == "Less";
                radioEquals.Checked              = sys.GetValue("DifferentLength") == "Equals";
                radioNow.Checked                 = sys.GetValue("DefaultPeriod") == "Now";
                radioPrevious.Checked            = sys.GetValue("DefaultPeriod") != "Now";
                DifferentBegin.Checked           = sys.GetBoolValue("DifferentBegin");
                CalcName.Text                    = sys.GetValue("DefaultCalcName");
                AllowProjectsRepetitions.Checked = sys.GetBoolValue("AllowProjectsRepetitions");
            }
            catch (Exception ex)
            {
                GeneralRep.ShowError("Текущий файл не является файлом отчета InfoTask или был поврежден", ex);
                Close();
                return;
            }

            _book.AddEvent("Загрузка настроек из ReporterData");
            Providers.Rows.Clear();
            try
            {
                if (CodeReport.Text != null)
                {
                    using (var db = new DaoDb(General.ReporterFile))
                    {
                        int rid = 0;
                        using (var rec = new RecDao(db, "SELECT * FROM Reports WHERE Report = '" + CodeReport.Text + "'"))
                            if (rec.HasRows())
                            {
                                ThreadId.Text         = rec.GetInt("ThreadId").ToString();
                                UseOneArchive.Checked = rec.GetBool("UseOneArchive");
                                ServerReport.Text     = rec.GetString("ServerReport");
                                var dic = rec.GetString("FormInf").ToPropertyDicS();
                                FormToTemplate.Checked    = dic["FormTo"] == "Template";
                                FormToDir.Checked         = dic["FormTo"] == "Dir";
                                FormToFile.Checked        = dic["FormTo"] == "File";
                                ResultDir.Text            = dic["ResultDir"];
                                ResultFileName.Text       = dic["ResultFileName"];
                                ResultFile.Text           = dic["ResultFile"];
                                AddDateToName.Checked     = dic.GetBool("AddDateToName");
                                DateNameFormat.Text       = dic["DateNameFormat"];
                                AddBeginToName.Checked    = dic.GetBool("AddBeginToName");
                                BeginNameFormat.Text      = dic["BeginNameFormat"];
                                AddEndToName.Checked      = dic.GetBool("AddEndToName");
                                EndNameFormat.Text        = dic["EndNameFormat"];
                                AddCalcNameToName.Checked = dic.GetBool("AddCalcNameToName");
                                AddSheetToName.Checked    = dic.GetBool("AddSheetToName");
                                SetFocusToFormed.Checked  = dic.GetBool("SetFocusToFormed");
                                rid = rec.GetInt("ReportId");
                                _codes.Add("Report_Archive", rec.GetString("CodeArchive"));
                                _infs.Add("Report_Archive", rec.GetString("InfArchive"));
                            }
                        SetFormingEnabled();
                        labelThreadId.Visible = ThreadId.Visible;

                        //Список проектов
                        using (var recr = new RecDao(db, "SELECT * FROM Projects WHERE ReportId =" + rid))
                            foreach (var pr in sys.GetProjects().Values)
                            {
                                int  rn    = Projects.Rows.Add();
                                var  cells = Projects.Rows[rn].Cells;
                                bool b     = recr.FindFirst("Project", pr.Code);
                                if (AllowProjectsRepetitions.Checked)
                                {
                                    b = !pr.Code2.IsEmpty()
                                        ? recr.FindFirst("ProjectCode2", pr.Code2)
                                        : recr.FindFirst("(Project='" + pr.Code + "') AND ((ProjectCode2 = '') OR (ProjectCode2 Is Null))");
                                }
                                if (b)
                                {
                                    recr.GetToDataGrid("ProjectFile", cells);
                                    recr.GetToDataGrid("ProjectName", cells);
                                    if (AllowProjectsRepetitions.Checked)
                                    {
                                        recr.GetToDataGrid("ProjectCode2", cells);
                                    }
                                    cells["Project"] = new DataGridViewTextBoxCell();
                                    if (!UseOneArchive.Checked && pr.CalcMode != CalcModeType.Internal)
                                    {
                                        var acode = recr.GetString("CodeArchive");
                                        var ainf  = recr.GetString("InfArchive");
                                        _codes.Add(pr.CodeFinal + "_Archive", acode);
                                        _infs.Add(pr.CodeFinal + "_Archive", ainf);
                                    }
                                }
                                cells["Project"].Value         = pr.Code;
                                cells["ProjectCalcMode"].Value = pr.CalcMode.ToRussian();
                                if (AllowProjectsRepetitions.Checked)
                                {
                                    cells["ProjectCode2"].Value = pr.Code2;
                                }
                            }
                    }
                }
            }
            catch (Exception ex)
            {
                GeneralRep.ShowError("Неправильный файл ReporterData.accdb", ex);
                Close();
                return;
            }

            _book.AddEvent("Загрузка настроек из ControllerData");
            try
            {
                int tid;
                if (!int.TryParse(ThreadId.Text, out tid))
                {
                    tid = 0;
                }
                if (tid != 0)
                {
                    using (var rect = new RecDao(General.ControllerFile, "SELECT * FROM Threads WHERE ThreadId = " + tid))
                    {
                        IsImit.Checked = rect.GetBool("IsImit");
                        ImitMode.Text  = rect.GetString("ImitMode");
                        using (var rec = new RecDao(rect.DaoDb, "SELECT * FROM Providers WHERE ThreadId=" + tid))
                            while (rec.Read())
                            {
                                string type = rec.GetString("ProviderType");
                                if (type == "Источник" || type == "Приемник" || (type == "Архив" && !UseOneArchive.Checked) || (type == "Имитатор" && IsImit.Checked))
                                {
                                    string name = rec.GetString("ProviderName");
                                    _codes.Add(name, rec.GetString("ProviderCode"));
                                    _infs.Add(name, rec.GetString("ProviderInf"));
                                }
                            }
                    }
                }
            }
            catch (Exception ex)
            {
                GeneralRep.ShowError("Неправильный файл ControllerData.accdb", ex);
            }
            _setupIsLoaded = true;
            UpdateProvidersList();
        }
Exemplo n.º 19
0
        private void FormPutLinks_Load(object sender, EventArgs e)
        {
            try
            {
                _book  = GeneralRep.ActiveBook;
                _table = dataSet1.Tables[0];
                new ToolTip().SetToolTip(ButDeleteLinks, "Удалить все ссылки из выделенной области листа");
                new ToolTip().SetToolTip(ButUndo, "Отменить последнюю установку ссылок");
                new ToolTip().SetToolTip(ButRedo, "Вернуть отмененную установку ссылок");
                new ToolTip().SetToolTip(ButUpdate, "Обновить список параметров");
                new ToolTip().SetToolTip(ButFilter, "Поиск и фильтрация списка параметров");
                new ToolTip().SetToolTip(Template, "Текущий шаблон для установки ссылок");
                new ToolTip().SetToolTip(ButSave, "Сохранить установленные ссылки и отчет");
                new ToolTip().SetToolTip(ButLinkSave, "Добавить ссылку на ячейку для сохранения в журнал отчетов");
                new ToolTip().SetToolTip(ButFindLinks, "Список всех ячеек со ссылками на выбранный параметр");
                new ToolTip().SetToolTip(ButOtmLinks, "Установить ссылки на отмеченные параметры в соответствии с текущим шаблоном");
                new ToolTip().SetToolTip(ButOtmTrue, "Отметить все");
                new ToolTip().SetToolTip(ButOtmFalse, "Снять все отметки");

                _book.SysPage.GetTemplatesList(Template);
                _book.CurTransactionNum = _book.CurTransactionNum;//Обновить доступность кнопок

                //Выпадающий список проектов
                Project.Items.Clear();
                foreach (var p in _book.Projects.Values)
                {
                    if (p.IsSystem)
                    {
                        Project.Items.Add(p.Code);
                    }
                    else if (!p.IsSave)
                    {
                        Project.Items.Add(p.CodeFinal + ":  " + p.Name);
                    }
                }
                if (Project.Items.Count > 1 && (string)Project.Items[0] == "Системные")
                {
                    Project.Text = (string)Project.Items[1];
                }
                else
                {
                    Project.Text = (string)Project.Items[0];
                }

                var menu = new ContextMenuStrip();
                menu.Items.Add(LinkField.Code.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddCode;
                menu.Items.Add(LinkField.CodeParam.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddCodeParam;
                menu.Items.Add(LinkField.CodeSubParam.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddCodeSubParam;
                menu.Items.Add(LinkField.Name.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddName;
                menu.Items.Add(LinkField.SubName.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddSubName;
                menu.Items.Add(LinkField.Units.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddUnits;
                menu.Items.Add(LinkField.Task.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddTask;
                menu.Items.Add(LinkField.Comment.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddComment;
                menu.Items.Add(LinkField.SuperProcessType.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddSuperProcess;
                menu.Items.Add(LinkField.DataType.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddDataType;
                menu.Items.Add(LinkField.Min.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddMin;
                menu.Items.Add(LinkField.Max.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddMax;
                menu.Items.Add(new ToolStripSeparator());
                menu.Items.Add("Ссылки по шаблону");
                menu.Items[menu.Items.Count - 1].Click += AddTemplateLinks;
                menu.Items.Add(LinkField.Value.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddValueLink;
                menu.Items.Add(LinkField.Time.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddTimeLink;
                menu.Items.Add(LinkField.Nd.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddNdLink;
                menu.Items.Add(LinkField.Number.ToRussian());
                menu.Items[menu.Items.Count - 1].Click += AddNumberLink;
                Params.ContextMenuStrip = menu;
            }
            catch (Exception ex)
            {
                GeneralRep.ShowError("Ошибка загрузки формы установки ссылок", ex);
            }
            try
            {
                Template.Text        = _book.SysPage.GetValue("CurTemplate");
                CellComment.Text     = _book.SysPage.GetValue("CurCellComment");
                NextCellShift.Text   = _book.SysPage.GetValue("CurNextCellShift");
                NextCellStep.Text    = _book.SysPage.GetValue("CurNextCellStep");
                NextCellStep.Enabled = NextCellShift.Text != "Нет";
            }
            catch { }
            GeneralRep.Application.CommandBars.OnUpdate += OnShapeChange;
            GeneralRep.Application.SheetSelectionChange += OnSelectionChange;
        }