Ejemplo n.º 1
0
        // Заполнение главного окна
        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);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Получить список инструментов из операций в документе
        /// </summary>
        /// <returns></returns>
        private EspritTools.Tools getOperationTools()
        {
            EspritTools.Tools reportTools      = new EspritTools.Tools();
            HashSet <string>  operationToolSet = new HashSet <string>();

            foreach (Esprit.Operation operation in Connect.sEspDocument.Operations)
            {
                if (!operation.Suppress) // Только не подавленные операции
                {
                    Technology operationTech = operation.Technology;
                    Parameter  toolId        = null;
                    //TODO - в некоторых операциях нет инструмента
                    try
                    {
                        toolId = operationTech["ToolId"];
                    }
                    catch
                    {
                        continue;
                    }

                    // Пропускаем повторно используемый инструмент
                    if (operationToolSet.Contains(toolId.Value))
                    {
                        continue;
                    }

                    foreach (Tool docTool in Connect.sEspDocument.Tools)
                    {
                        if (string.Equals(docTool.ToolID, toolId.Value))
                        {
                            reportTools.Add(docTool);
                            operationToolSet.Add(toolId.Value);
                        }
                    }
                }
            }
            return(reportTools);
        }