// Заполнение главного окна private void InitMainForm() { // Очистка данных из прошлого сеанса AdditionalToolParameters.gostReportToolsArray.Clear(); // Загружаем параметры инструмента из файла AdditionalToolParameters.LoadToolsParameters(); // Собираем инструмент из текущего документа Esprit.Document curDocument = Connect.sEspApp.Document; if (curDocument == null) { Connect.logger.Error("Инициализация формы: пустая ссылка на документ"); } Connect.sEspDocument = curDocument; // Идем по списку инструментов в документе //currentTool = curDocument.Tools; // Идем по списку инструментов в операциях currentTool = getOperationTools(); // Пытаться загрузить пользовательские параметры bool bLoadUserParams = true; foreach (Tool Tool in currentTool) { // Добавляем инструмент в массив отчета Connect.logger.Info("Инициализация главного окна. Добавление инструмента в список для отчета"); if (!addReportTool(Tool, bLoadUserParams) && bLoadUserParams) { MessageBox.Show("Превышено время ожидания подключения в Базе данных.\nЗначения дополнительных параметров не будут загружены.", "ОШИБКА", MessageBoxButtons.OK, MessageBoxIcon.Error); bLoadUserParams = false; } Connect.logger.Info("Инициализация главного окна. Инструмент обавлен в список для отчета"); Technology toolTech = (Technology)Tool; string[] reportTool = new string[2]; reportTool[0] = toolTech.Caption; reportTool[1] = toolTech.Name; ListViewItem newReportTool = new ListViewItem(reportTool); Connect.logger.Info("Инициализация главного окна. Добавление инструмента на форму"); listDocumentTools.Items.Add(newReportTool); } // Заполнить таблицу параметров первого инструмента Connect.logger.Info("Инициализация главного окна. Заполнение параметров первого инструмента"); fillFormReportToolParameters(0); }
/// <summary> /// Действия выполняемые при загрузки плагина /// </summary> /// <param name="Application"></param> /// <param name="ConnectMode"></param> /// <param name="AddInInst"></param> /// <param name="custom"></param> public void OnConnection(object Application, ext_ConnectMode ConnectMode, object AddInInst, ref Array custom) { try { //Настройка логирования ConfigureLogger(); //Ссылки на текущий документ sEspApp = (Esprit.Application)Application; sEspDocument = sEspApp.Document; sAddIn = sEspApp.AddIn; sCookie = sAddIn.GetCookie(); logger.Info("Подключение плагина"); } catch (Exception E) { MessageBox.Show("Не удалось подключить дополнение : " + E.Message); } //Защита !!!------------------- SecurityFile security = new SecurityFile(); if (!security.mergeLicFiles()) { logger.Error("Не найдена лицензия"); MessageBox.Show(StringResource.msgErrorSecurityAccess, "Лицензия", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //Защита !!!------------------- logger.Info("Лицензия найдена"); newCommand = sAddIn.AddCommand(sCookie, 1, StringResource.menuName); EspritMenus.Menus allMenu = sEspApp.Menus; // Меню "Файл" fileMenu = allMenu[1]; // добавляем команду в меню fileMenu.Add(EspritConstants.espMenuItemType.espMenuItemCommand, StringResource.menuName, newCommand, 18); logger.Info("Добавлен новый пункт меню"); // привязываем вызов команды к обработчику sAddIn.OnCommand += OnCommand; //Загрузить все настроки плагина logger.Info("Загрузка настроек плагина"); AdditionalToolParameters.gostReportSettings.loadAllSettings(); Marshal.ReleaseComObject(allMenu); }