Example #1
0
        /// <summary>
        /// Формирование в памяти коллекции символьных списков,
        /// из исходной таблицы по заданным категориям и ключам
        /// </summary>
        /// <param name="e"></param>
        private void OneClick_TableToCollection(DoWorkEventArgs e)
        {
            ExWorks.excel_backupSheet("SymbolTable");
            asyncOperations.ReportProgress(10, "Запуск цикла сортировки таблицы по категориям...");

            if (categories.Count > 0)
            {
                cSymbolTable unsorted_table = new cSymbolTable(ExWorks.generate_ArrayFromRange("SymbolTable", true));
                asyncOperations.ReportProgress(40, "Таблица загружена в память");

                foreach (mCategory cat in categories)
                {
                    List<string> list = new List<string>();
                    foreach (mBaseEntity k in cat.Keys)
                    {
                        list.Add(k.Name);
                    }
                    cat.addCollection(unsorted_table.extractListByKeys(list));
                }
                asyncOperations.ReportProgress(70, "Выполнена сортировка таблицы по ключам и категориям");

                // Корректировка номеров блоков данных для PID
                OneClick_CorrectPIDs();

                foreach (mCategory category in categories)
                {

                    category.sortCollectionByCodename();
                    ExWorks.printArrayToSheetTemplate(category.return_ArrayOfSymbolsEX(), category.Name);
                }

                ExWorks.printArrayToSheet(unsorted_table.return_ArrayOfSymbols(), "unSorTed");

                asyncOperations.ReportProgress(99, "Выполнена выгрузка категорий в Excel");

                e.Result = new mBaseEntity(2, "Выполнено!", "Таблица  сигналов отсортирована и обработана");
            }
            else
            {
                MessageBox.Show("Не заданы категории для обработки таблицы сигналов!..");
                e.Result = new mBaseEntity(2, "Не выполнено!", "Не заданы категории для обработки таблицы сигналов!..");
            }
        }
Example #2
0
        //----- Основные функции --------------------------------------------------
        /// <summary>
        /// Анализ исходной таблицы символов, формирование дополнительных полей таблицы
        /// из символьного имени сигнала и комментария, сортировка таблицы
        /// </summary>
        /// <param name="e">Параметры асинхронного обработчика</param>
        private void OneClick_TableAdaptation(DoWorkEventArgs e)
        {
            ExWorks.excel_backupSheet("SymbolTable");
            asyncOperations.ReportProgress(5, "Резервная копия таблицы создана");

            cSymbolTable symbolTable = new cSymbolTable(ExWorks.generate_ArrayFromRange("SymbolTable", true));
            asyncOperations.ReportProgress(30, "Таблица прочитана в память");

            symbolTable.analyseAndSetTags();
            asyncOperations.ReportProgress(60, "Анализ символьных имен выполнен");

            symbolTable.sortTable();
            asyncOperations.ReportProgress(70, "Сортировка выполнена");

            String[,] arr = symbolTable.return_ArrayOfSymbols();
            ExWorks.printArrayToSheet(arr, "SymbolTable");
            asyncOperations.ReportProgress(98, "Таблица выгружена в Excel");

            symbolTable.clearSymbols();

            e.Result = new mBaseEntity(1, "Выполнено!", "Первичная обработка таблицы выполнена");
        }