Browse Source

подготовка данных для отчета

master
esoe 3 years ago
parent
commit
76d456fe82
  1. 48
      src/main/java/ru/egspt/Data.java
  2. 35
      src/main/java/ru/egspt/ReportTableModel.java
  3. 7
      src/main/java/ru/egspt/TagControls.java
  4. BIN
      target/classes/ru/egspt/Data.class
  5. BIN
      target/classes/ru/egspt/ReportTableModel.class
  6. BIN
      target/classes/ru/egspt/TagControls.class

48
src/main/java/ru/egspt/Data.java

@ -42,6 +42,36 @@ public class Data extends UserListModel {
return q; return q;
} }
public ArrayList<Quiz> getQuizesByResults(ArrayList<Quiz> quizes, ArrayList<Result> results) {
ArrayList<Quiz> 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 * @param results the results to set
*/ */
@ -79,4 +109,22 @@ public class Data extends UserListModel {
} }
return r; return r;
} }
public ArrayList<Result> getResultsByUsers(ArrayList<Result> results, ArrayList<User> users){
ArrayList<Result> 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;
}
} }

35
src/main/java/ru/egspt/ReportTableModel.java

@ -24,10 +24,10 @@ public class ReportTableModel extends AbstractTableModel{
return getData()[rowIndex][columnIndex]; return getData()[rowIndex][columnIndex];
} }
/** /**
* @return the data * @param header the header to set
*/ */
public Object[][] getData() { public void setHeader(String[] header) {
return data; this.header = header;
} }
/** /**
* Настройка заголовков отчета * Настройка заголовков отчета
@ -44,6 +44,18 @@ public class ReportTableModel extends AbstractTableModel{
//String[] h = new String[3 + 0]; //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(); this.fireTableDataChanged();
} }
} }
public void setData(Object[][] data){
this.data = data;
}
/** /**
* @return the header * @return the data
*/
public String[] getHeader() {
return header;
}
/**
* @param header the header to set
*/ */
public void setHeader(String[] header) { public Object[][] getData() {
this.header = header; return data;
} }
} }

7
src/main/java/ru/egspt/TagControls.java

@ -8,12 +8,13 @@ public class TagControls {
//обновляем текстовую область //обновляем текстовую область
app.getTagPane().updateTagArea(app.getTagModel()); app.getTagPane().updateTagArea(app.getTagModel());
app.getTagPane().getCurrentTagField().setText(""); app.getTagPane().getCurrentTagField().setText("");
//Выводим пользователей в отчет //Подготавливаем данные для отчета (по тегам)
Data report = new Data(); Data report = new Data();
report.setUsers(app.getData().getUsersByTag(app.getData().getUsers(), app.getTagModel())); report.setUsers(app.getData().getUsersByTag(app.getData().getUsers(), app.getTagModel()));
report.setResults(app.getData().getResults()); report.setResults(app.getData().getResultsByUsers(app.getData().getResults(), report.getUsers()));
report.setQuizes(app.getData().getQuizes()); report.setQuizes(app.getData().getQuizesByResults(app.getData().getQuizes(), report.getResults()));
//report.setHeaders(); //report.setHeaders();
//выводим пользователей в отчет
app.getReportPane().setReportData(report); app.getReportPane().setReportData(report);
app.getReportPane().getReportTableModel().fireTableDataChanged(); app.getReportPane().getReportTableModel().fireTableDataChanged();
} }

BIN
target/classes/ru/egspt/Data.class

Binary file not shown.

BIN
target/classes/ru/egspt/ReportTableModel.class

Binary file not shown.

BIN
target/classes/ru/egspt/TagControls.class

Binary file not shown.
Loading…
Cancel
Save