diff --git a/src/main/java/ru/egspt/Data.java b/src/main/java/ru/egspt/Data.java index 2efe86e..5fb25dd 100644 --- a/src/main/java/ru/egspt/Data.java +++ b/src/main/java/ru/egspt/Data.java @@ -42,6 +42,36 @@ public class Data extends UserListModel { return q; } + public ArrayList getQuizesByResults(ArrayList quizes, ArrayList results) { + ArrayList q = new ArrayList<>(); + //перебор опросов + int i = 0; + while (i < quizes.size()){ + //перебор результатов + int j = 0; + while (j < results.size()){ + if (quizes.get(i).getId() == results.get(j).getQuizid()){ + boolean b = true; + //перебираем уже записанные опросы + int k = 0; + while (k < q.size()){ + //сравниваем записанные опросы с текущим совпавшим id опроса + if (q.get(k).getId() == results.get(j).getQuizid()){ + b = false; + } + k++; + } + //если не найдено совпадение, добавляем новый опрос к списку + if(b){ + q.add(quizes.get(i)); + } + } + } + j++; + } + i++; + return q; + } /** * @param results the results to set */ @@ -79,4 +109,22 @@ public class Data extends UserListModel { } return r; } + public ArrayList getResultsByUsers(ArrayList results, ArrayList users){ + ArrayList r = new ArrayList<>(); + //перебор результатов + int i = 0; + while (i < results.size()){ + //перебор пользователей + int j = 0; + while (j < users.size()){ + //проверка соответствия по id пользователя + if (results.get(i).getUserid() == users.get(j).getId()){ + r.add(results.get(i));//совпадения пишем в список + } + j++; + } + i++; + } + return r; + } } diff --git a/src/main/java/ru/egspt/ReportTableModel.java b/src/main/java/ru/egspt/ReportTableModel.java index eda1831..2813ccd 100644 --- a/src/main/java/ru/egspt/ReportTableModel.java +++ b/src/main/java/ru/egspt/ReportTableModel.java @@ -24,10 +24,10 @@ public class ReportTableModel extends AbstractTableModel{ return getData()[rowIndex][columnIndex]; } /** - * @return the data + * @param header the header to set */ - public Object[][] getData() { - return data; + public void setHeader(String[] header) { + this.header = header; } /** * Настройка заголовков отчета @@ -44,6 +44,18 @@ public class ReportTableModel extends AbstractTableModel{ //String[] h = new String[3 + 0]; // } + /** + * @return the header + */ + public String[] getHeader() { + return header; + } + /** + * + */ + public void setData(Object[][] data){ + this.data = data; + } /** * */ @@ -60,21 +72,10 @@ public class ReportTableModel extends AbstractTableModel{ this.fireTableDataChanged(); } } - - public void setData(Object[][] data){ - this.data = data; - } /** - * @return the header - */ - public String[] getHeader() { - return header; - } - /** - * @param header the header to set + * @return the data */ - public void setHeader(String[] header) { - this.header = header; + public Object[][] getData() { + return data; } - } diff --git a/src/main/java/ru/egspt/TagControls.java b/src/main/java/ru/egspt/TagControls.java index d2f645c..4a9acbb 100644 --- a/src/main/java/ru/egspt/TagControls.java +++ b/src/main/java/ru/egspt/TagControls.java @@ -8,12 +8,13 @@ public class TagControls { //обновляем текстовую область app.getTagPane().updateTagArea(app.getTagModel()); app.getTagPane().getCurrentTagField().setText(""); - //Выводим пользователей в отчет + //Подготавливаем данные для отчета (по тегам) Data report = new Data(); report.setUsers(app.getData().getUsersByTag(app.getData().getUsers(), app.getTagModel())); - report.setResults(app.getData().getResults()); - report.setQuizes(app.getData().getQuizes()); + report.setResults(app.getData().getResultsByUsers(app.getData().getResults(), report.getUsers())); + report.setQuizes(app.getData().getQuizesByResults(app.getData().getQuizes(), report.getResults())); //report.setHeaders(); + //выводим пользователей в отчет app.getReportPane().setReportData(report); app.getReportPane().getReportTableModel().fireTableDataChanged(); } diff --git a/target/classes/ru/egspt/Data.class b/target/classes/ru/egspt/Data.class index 8145cae..447924e 100644 Binary files a/target/classes/ru/egspt/Data.class and b/target/classes/ru/egspt/Data.class differ diff --git a/target/classes/ru/egspt/ReportTableModel.class b/target/classes/ru/egspt/ReportTableModel.class index 08a90e3..39b6082 100644 Binary files a/target/classes/ru/egspt/ReportTableModel.class and b/target/classes/ru/egspt/ReportTableModel.class differ diff --git a/target/classes/ru/egspt/TagControls.class b/target/classes/ru/egspt/TagControls.class index 7e5755b..124ca5d 100644 Binary files a/target/classes/ru/egspt/TagControls.class and b/target/classes/ru/egspt/TagControls.class differ