/// <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, "Не выполнено!", "Не заданы категории для обработки таблицы сигналов!.."); } }
//----- Основные функции -------------------------------------------------- /// <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, "Выполнено!", "Первичная обработка таблицы выполнена"); }