esoe 3 years ago
parent
commit
faa6aac8ae
  1. 2
      src/main/java/ru/egspt/ReportPane.java
  2. 42
      src/main/java/ru/egspt/ReportTableModel.java
  3. 2
      src/main/java/ru/egspt/TagControls.java
  4. BIN
      target/classes/ru/egspt/ReportPane.class
  5. BIN
      target/classes/ru/egspt/ReportTableModel.class

2
src/main/java/ru/egspt/ReportPane.java

@ -34,7 +34,7 @@ public class ReportPane extends JPanel {
reportTable = new JTable(reportTableModel); reportTable = new JTable(reportTableModel);
//настройка заголовков //настройка заголовков
int i = 0; int i = 0;
while (i < reportTable.getColumnCount()){ while (i < reportTableModel.getHeader().length){
reportTable.getColumnModel().getColumn(i).setHeaderValue(reportTableModel.getHeader()[i]); reportTable.getColumnModel().getColumn(i).setHeaderValue(reportTableModel.getHeader()[i]);
i++; i++;
} }

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

@ -5,10 +5,20 @@ import java.util.ArrayList;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
public class ReportTableModel extends AbstractTableModel{ public class ReportTableModel extends AbstractTableModel{
private Object[] header = new String[]{"id", "login", "mail"}; private Object[] header;// = new String[]{"id", "login", "mail"};
private Object[][] data; private Object[][] data;
public ReportTableModel(){} public ReportTableModel(){}
public ReportTableModel(Object[] header, Object[][] data){
setHeader(header);
setData(data);
}
public ReportTableModel(Data data){
setHeader(getHeaderByQuize(data));
setData(data);
}
public ReportTableModel(App app){ public ReportTableModel(App app){
setHeader(getHeaderByQuize(app.getData()));
setData(app.getData()); setData(app.getData());
} }
@Override @Override
@ -30,6 +40,7 @@ public class ReportTableModel extends AbstractTableModel{
*/ */
public void setHeader(Object[] header) { public void setHeader(Object[] header) {
this.header = header; this.header = header;
fireTableDataChanged();
} }
/** /**
* Настройка заголовков отчета * Настройка заголовков отчета
@ -51,7 +62,7 @@ public class ReportTableModel extends AbstractTableModel{
int i = 0; int i = 0;
while (i < report.getQuizes().size()){ while (i < report.getQuizes().size()){
header.add(report.getQuizes().get(i).getName()); header.add(report.getQuizes().get(i).getName());
//System.out.println("Пишем заголовок: " + base.getQuizes().get(i).getName()); System.out.println("Пишем заголовок: " + report.getQuizes().get(i).getName());
header.add(""); header.add("");
i++; i++;
} }
@ -79,18 +90,33 @@ public class ReportTableModel extends AbstractTableModel{
int userCurr = 0; int userCurr = 0;
while (userCurr < report.getUsers().size()){ while (userCurr < report.getUsers().size()){
ArrayList<Object> string = new ArrayList<>();//новая строка отчета ArrayList<Object> string = new ArrayList<>();//новая строка отчета
//пишем данные пользователя //пишем данные пользователя (первые три столбца)
string.add(report.getUsers().get(userCurr).getId()); string.add(report.getUsers().get(userCurr).getId());
string.add(report.getUsers().get(userCurr).getLogin()); string.add(report.getUsers().get(userCurr).getLogin());
string.add(report.getUsers().get(userCurr).getMail()); string.add(report.getUsers().get(userCurr).getMail());
//перебираем результаты пользователя //перебираем остальные заголовки (перечень опросов)
Boolean find = false;
int quizCurr = 0;
while (quizCurr < report.getQuizes().size()){
//перебираем результаты, ищем результаты по текущему опросу
int resultCurr = 0;
while (resultCurr < report.getResults().size()){
//если текущий результат относится к текущему опросу:
if (report.getResults().get(resultCurr).getQuizid() == report.getQuizes().get(quizCurr).getId()){
//если текущий результат относится к текущему пользователю
if (report.getResults().get(resultCurr).getUserid() == report.getUsers().get(userCurr).getId()){
string.add(report.getResults().get(resultCurr).getGrade());
string.add(report.getResults().get(resultCurr).getTime());
}
}
resultCurr++;
}
quizCurr++;
}
//пишем строку в d //пишем строку в d
int j = 0; int j = 0;
while (j < d[userCurr].length){ while (j < d[userCurr].length){
d[i][j] = string.toArray()[j]; d[userCurr][j] = string.toArray()[j];
j++; j++;
} }
userCurr++; userCurr++;

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

@ -15,7 +15,7 @@ public class TagControls {
report.setQuizes(app.getData().getQuizesByResults(app.getData().getQuizes(), report.getResults())); report.setQuizes(app.getData().getQuizesByResults(app.getData().getQuizes(), report.getResults()));
//формирование заголовков таблицы отчета //формирование заголовков таблицы отчета
app.getReportPane().getReportTableModel().setHeader(app.getReportPane().getReportTableModel().getHeaderByQuize(report)); app.getReportPane().getReportTableModel().setHeader(app.getReportPane().getReportTableModel().getHeaderByQuize(report));
//выводим пользователей в отчет //формирование данных в таблице
app.getReportPane().getReportTableModel().setData(report); app.getReportPane().getReportTableModel().setData(report);
//app.getReportPane().setupReportTablePane(app); //app.getReportPane().setupReportTablePane(app);
app.getReportPane().getReportTableModel().fireTableDataChanged(); app.getReportPane().getReportTableModel().fireTableDataChanged();

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

Binary file not shown.

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

Binary file not shown.
Loading…
Cancel
Save