diff --git a/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java b/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java index 5f02d66d..2fc94e6a 100644 --- a/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java +++ b/src/Visual_DVM_2021/Passes/All/ExportTasksPackageToExcel.java @@ -20,8 +20,9 @@ import org.apache.poi.ss.util.CellRangeAddress; import java.awt.*; import java.io.File; import java.io.FileOutputStream; +import java.util.LinkedHashMap; import java.util.Vector; -public class ExportTasksPackageToExcel extends Pass_2021 { +public class ExportTasksPackageToExcel extends Pass_2021> { //https://tproger.ru/translations/how-to-read-write-excel-file-java-poi-example File dir; File res; @@ -30,11 +31,10 @@ public class ExportTasksPackageToExcel extends Pass_2021 { final int max_columns = 16; Vector styles; //-- - //-- Workbook book = null; Sheet sheet = null; //-- - Vector tasks = null; + LinkedHashMap> packages_tasks = null; //-- @Override public String getIconPath() { @@ -53,35 +53,49 @@ public class ExportTasksPackageToExcel extends Pass_2021 { book = null; sheet = null; styles = null; - tasks = null; + packages_tasks = new LinkedHashMap<>(); + target = null; //-- - if (Current.Check(Log, Current.TasksPackage)) { - target = Current.getTasksPackage(); - if (!target.state.equals(TasksPackageState.Done)) { - Log.Writeln_("Можно получить таблицу только завершенного пакета."); - return false; + if (Global.testingServer.account_db.packages.getCheckedCount() > 0) { + target = Global.testingServer.account_db.packages.getCheckedItems(); + } else { + if (Current.Check(Log, Current.TasksPackage)) { + target = new Vector<>(); + target.add(Current.getTasksPackage()); + } else return false; + } + for (TasksPackage tasksPackage : target) { + if (!tasksPackage.state.equals(TasksPackageState.Done)) { + Log.Writeln_("Пакет " + tasksPackage.id + " не завершен."); } else { - //--- - tasks = new Vector<>(); + Vector tasks = new Vector<>(); for (TestRunTask task : Global.testingServer.account_db.testRunTasks.Data.values()) { - if ((task.taskspackage_id == target.id) && (task.isVisible())) + if (task.taskspackage_id == tasksPackage.id) tasks.add(task); } - if (tasks.isEmpty()) { - Log.Writeln_("Не найдено ни одной видимой задачи."); - return false; - } - //--- - dir = directoryChooser.ShowDialog(); - if (dir == null) { - Log.Writeln_("Папка не выбрана."); - return false; - } - res = new File(dir, Utils.getDateName("package_" + target.id) + ".xls"); - return true; + packages_tasks.put(tasksPackage.id, tasks); } } - return false; + if (!Log.isEmpty()) + return false; + /* + for (TasksPackage tasksPackage: target){ + System.out.println(tasksPackage.id); + Vector tasks = packages_tasks.get(tasksPackage.id); + System.out.println(tasks.size()); + for (TestRunTask task: tasks) + System.out.println(task.id); + } + System.out.println("======"); + */ + + dir = directoryChooser.ShowDialog(); + if (dir == null) { + Log.Writeln_("Папка не выбрана."); + return false; + } + res = new File(dir, Utils.getDateName("packages") + ".xls"); + return true; } //--- static String getPackageInfo(TasksPackage object) { @@ -107,7 +121,7 @@ public class ExportTasksPackageToExcel extends Pass_2021 { cell.setCellStyle(styles.get(0)); //https://translated.turbopages.org/proxy_u/en-ru.ru.f85b6508-657377d3-df23bc2d-74722d776562/https/stackoverflow.com/questions/23533381/creating-the-border-for-the-merged-cells-in-poi sheet.addMergedRegion(new CellRangeAddress(row_num, row_num, 0, max_columns - 1)); - for (int i=1; i< max_columns;++i){ + for (int i = 1; i < max_columns; ++i) { Cell blankCell = row.createCell(i); blankCell.setCellStyle(styles.get(0)); } @@ -268,12 +282,12 @@ public class ExportTasksPackageToExcel extends Pass_2021 { //-- offset.Inc(); //-- + Vector tasks = packages_tasks.get(tasksPackage.id); for (TestRunTask task : tasks) { ShowMessage2(task.test_description); //--- Integer NUM_THREADS = extractIntegerEnvironmentValue(task.environments, "DVMH_NUM_THREADS"); - if (NUM_THREADS == 0) - NUM_THREADS = 1; + if (NUM_THREADS !=null && NUM_THREADS ==0) NUM_THREADS = 1; Integer NUM_CUDAS = extractIntegerEnvironmentValue(task.environments, "DVMH_NUM_CUDAS"); //-- Object num_threads = (NUM_THREADS != null) ? NUM_THREADS : "undef"; @@ -311,8 +325,10 @@ public class ExportTasksPackageToExcel extends Pass_2021 { createStyles(); //-- Index offset = new Index(); - exportPackage(target, offset); - // exportPackage(target, offset); + for (TasksPackage tasksPackage : target) { + exportPackage(tasksPackage, offset); + // UI.Info(String.valueOf(tasksPackage.id)); + } //-- for (int i = 0; i < max_columns; ++i) sheet.autoSizeColumn(i);