экспорт нескольких файлов.

This commit is contained in:
2023-12-09 00:59:39 +03:00
parent 827981a591
commit 8147381d4f

View File

@@ -20,8 +20,9 @@ import org.apache.poi.ss.util.CellRangeAddress;
import java.awt.*; import java.awt.*;
import java.io.File; import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.util.LinkedHashMap;
import java.util.Vector; import java.util.Vector;
public class ExportTasksPackageToExcel extends Pass_2021<TasksPackage> { public class ExportTasksPackageToExcel extends Pass_2021<Vector<TasksPackage>> {
//https://tproger.ru/translations/how-to-read-write-excel-file-java-poi-example //https://tproger.ru/translations/how-to-read-write-excel-file-java-poi-example
File dir; File dir;
File res; File res;
@@ -30,11 +31,10 @@ public class ExportTasksPackageToExcel extends Pass_2021<TasksPackage> {
final int max_columns = 16; final int max_columns = 16;
Vector<CellStyle> styles; Vector<CellStyle> styles;
//-- //--
//--
Workbook book = null; Workbook book = null;
Sheet sheet = null; Sheet sheet = null;
//-- //--
Vector<TestRunTask> tasks = null; LinkedHashMap<Long, Vector<TestRunTask>> packages_tasks = null;
//-- //--
@Override @Override
public String getIconPath() { public String getIconPath() {
@@ -53,35 +53,49 @@ public class ExportTasksPackageToExcel extends Pass_2021<TasksPackage> {
book = null; book = null;
sheet = null; sheet = null;
styles = null; styles = null;
tasks = null; packages_tasks = new LinkedHashMap<>();
target = null;
//-- //--
if (Current.Check(Log, Current.TasksPackage)) { if (Global.testingServer.account_db.packages.getCheckedCount() > 0) {
target = Current.getTasksPackage(); target = Global.testingServer.account_db.packages.getCheckedItems();
if (!target.state.equals(TasksPackageState.Done)) { } else {
Log.Writeln_("Можно получить таблицу только завершенного пакета."); if (Current.Check(Log, Current.TasksPackage)) {
return false; 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 { } else {
//--- Vector<TestRunTask> tasks = new Vector<>();
tasks = new Vector<>();
for (TestRunTask task : Global.testingServer.account_db.testRunTasks.Data.values()) { 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); tasks.add(task);
} }
if (tasks.isEmpty()) { packages_tasks.put(tasksPackage.id, tasks);
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;
} }
} }
return false; if (!Log.isEmpty())
return false;
/*
for (TasksPackage tasksPackage: target){
System.out.println(tasksPackage.id);
Vector<TestRunTask> 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) { static String getPackageInfo(TasksPackage object) {
@@ -107,7 +121,7 @@ public class ExportTasksPackageToExcel extends Pass_2021<TasksPackage> {
cell.setCellStyle(styles.get(0)); 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 //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)); 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); Cell blankCell = row.createCell(i);
blankCell.setCellStyle(styles.get(0)); blankCell.setCellStyle(styles.get(0));
} }
@@ -268,12 +282,12 @@ public class ExportTasksPackageToExcel extends Pass_2021<TasksPackage> {
//-- //--
offset.Inc(); offset.Inc();
//-- //--
Vector<TestRunTask> tasks = packages_tasks.get(tasksPackage.id);
for (TestRunTask task : tasks) { for (TestRunTask task : tasks) {
ShowMessage2(task.test_description); ShowMessage2(task.test_description);
//--- //---
Integer NUM_THREADS = extractIntegerEnvironmentValue(task.environments, "DVMH_NUM_THREADS"); Integer NUM_THREADS = extractIntegerEnvironmentValue(task.environments, "DVMH_NUM_THREADS");
if (NUM_THREADS == 0) if (NUM_THREADS !=null && NUM_THREADS ==0) NUM_THREADS = 1;
NUM_THREADS = 1;
Integer NUM_CUDAS = extractIntegerEnvironmentValue(task.environments, "DVMH_NUM_CUDAS"); Integer NUM_CUDAS = extractIntegerEnvironmentValue(task.environments, "DVMH_NUM_CUDAS");
//-- //--
Object num_threads = (NUM_THREADS != null) ? NUM_THREADS : "undef"; Object num_threads = (NUM_THREADS != null) ? NUM_THREADS : "undef";
@@ -311,8 +325,10 @@ public class ExportTasksPackageToExcel extends Pass_2021<TasksPackage> {
createStyles(); createStyles();
//-- //--
Index offset = new Index(); Index offset = new Index();
exportPackage(target, offset); for (TasksPackage tasksPackage : target) {
// exportPackage(target, offset); exportPackage(tasksPackage, offset);
// UI.Info(String.valueOf(tasksPackage.id));
}
//-- //--
for (int i = 0; i < max_columns; ++i) for (int i = 0; i < max_columns; ++i)
sheet.autoSizeColumn(i); sheet.autoSizeColumn(i);