From faa6aac8ae7d7c06d4465178c760364e3644dc5c Mon Sep 17 00:00:00 2001 From: esoe Date: Fri, 27 May 2022 17:05:48 +0300 Subject: [PATCH] qq --- src/main/java/ru/egspt/ReportPane.java | 2 +- src/main/java/ru/egspt/ReportTableModel.java | 42 ++++++++++++++---- src/main/java/ru/egspt/TagControls.java | 2 +- target/classes/ru/egspt/ReportPane.class | Bin 2876 -> 2844 bytes .../classes/ru/egspt/ReportTableModel.class | Bin 2392 -> 3942 bytes 5 files changed, 36 insertions(+), 10 deletions(-) diff --git a/src/main/java/ru/egspt/ReportPane.java b/src/main/java/ru/egspt/ReportPane.java index d3e8e5c..43a4b3b 100644 --- a/src/main/java/ru/egspt/ReportPane.java +++ b/src/main/java/ru/egspt/ReportPane.java @@ -34,7 +34,7 @@ public class ReportPane extends JPanel { reportTable = new JTable(reportTableModel); //настройка заголовков int i = 0; - while (i < reportTable.getColumnCount()){ + while (i < reportTableModel.getHeader().length){ reportTable.getColumnModel().getColumn(i).setHeaderValue(reportTableModel.getHeader()[i]); i++; } diff --git a/src/main/java/ru/egspt/ReportTableModel.java b/src/main/java/ru/egspt/ReportTableModel.java index 85022b2..bc6b3a3 100644 --- a/src/main/java/ru/egspt/ReportTableModel.java +++ b/src/main/java/ru/egspt/ReportTableModel.java @@ -5,10 +5,20 @@ import java.util.ArrayList; import javax.swing.table.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; 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){ + setHeader(getHeaderByQuize(app.getData())); setData(app.getData()); } @Override @@ -30,6 +40,7 @@ public class ReportTableModel extends AbstractTableModel{ */ public void setHeader(Object[] header) { this.header = header; + fireTableDataChanged(); } /** * Настройка заголовков отчета @@ -51,7 +62,7 @@ public class ReportTableModel extends AbstractTableModel{ int i = 0; while (i < report.getQuizes().size()){ 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(""); i++; } @@ -79,18 +90,33 @@ public class ReportTableModel extends AbstractTableModel{ int userCurr = 0; while (userCurr < report.getUsers().size()){ ArrayList string = new ArrayList<>();//новая строка отчета - //пишем данные пользователя + //пишем данные пользователя (первые три столбца) string.add(report.getUsers().get(userCurr).getId()); string.add(report.getUsers().get(userCurr).getLogin()); 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 int j = 0; while (j < d[userCurr].length){ - d[i][j] = string.toArray()[j]; + d[userCurr][j] = string.toArray()[j]; j++; } userCurr++; diff --git a/src/main/java/ru/egspt/TagControls.java b/src/main/java/ru/egspt/TagControls.java index 70b1b8d..3a57bf3 100644 --- a/src/main/java/ru/egspt/TagControls.java +++ b/src/main/java/ru/egspt/TagControls.java @@ -15,7 +15,7 @@ public class TagControls { report.setQuizes(app.getData().getQuizesByResults(app.getData().getQuizes(), report.getResults())); //формирование заголовков таблицы отчета app.getReportPane().getReportTableModel().setHeader(app.getReportPane().getReportTableModel().getHeaderByQuize(report)); - //выводим пользователей в отчет + //формирование данных в таблице app.getReportPane().getReportTableModel().setData(report); //app.getReportPane().setupReportTablePane(app); app.getReportPane().getReportTableModel().fireTableDataChanged(); diff --git a/target/classes/ru/egspt/ReportPane.class b/target/classes/ru/egspt/ReportPane.class index 22afd7e688788db7f9cad49b42c4aa8ef6b00ce1..d7e1fad529e39c63038e01c8f901d213210d00e2 100644 GIT binary patch delta 383 zcmW-dOD{uF6otQg_1@;*RM1ETAs!LYq9O*;iJD0z(lDqF8?O*r@Aq51UxPCsVPeM6 zBe#i)82bxGeh0y>!8v=az1PZK=e+o?efIm$^DEHC*}Xkz)VoP)l#C_j6N|x_h0)|l zFw!?Lof;pHCXz!o6HI!@XG%FnojL2FnK|`o1hoZKWTwq+4?CpQl^HVkJnXai_+d8d zRsa)2c3dj26^=z623~J|Ke9~3{ZGUSiwi3=q6x0ZjSiw64fGfaRKjqK6HxrDqRNa_D8|8r1AxiCpY z71d}|u)?w&UEE<-StC!pULthkVqKJO^lz%PauIK^DR+T1JH?<&wfqiS0S9eY_1cZr g0f!>cI8twRjk>da+OeSayxiY>*&+9dSaeSR042j%!vFvP delta 392 zcmW-dO-~bX5XOJI?QXl96`RI1fhwslBy^!IAsk3Amh?c>!~+MLz1w(^mO{%*eL=K^ zR;2>}s22|U5frmcT0=Pd734$6ov71ZW}caOp3F0I9QzrwfBo&90&^UFvmYCGY?dfF zlv&Xjc~Y$A%TH^|rF^+os%iu#llMZbs)}(vT%qc4g_`Soq_>+p`oNzY8{mWzoY+div{aPCpTXZh>D^F9^N{XrpeEi&F^?V;dkpW9xS z37_>rmGapr^qKMc%zEFM>ynMu4WrB5Y;Z6i4f;GE0Ld>@%W}6DNm9V2$P^`}X_BHN z9zT&`ba?L224lpf5h5Uww#H-R= v5P>e)a($XpK3ZGN+SAs1_JyF)QD5v^s%^)#4}#_cgV+4Fv!Mf#=p6nBx;$B2 diff --git a/target/classes/ru/egspt/ReportTableModel.class b/target/classes/ru/egspt/ReportTableModel.class index b4383476b9a150e9502cc8b4e0ee62b6f5119afd..c89e2aad1f38ce15ce85feefa79c90efd972a8f7 100644 GIT binary patch literal 3942 zcmZ`+Yj;#<6@K2CWX@zbA&_fRh@l9YgwS9ts3ZnLQfO=vAfZq$T27Kfa>Cp=b0!e1 zHyUd}>-}!EASzy}QVNquDpp;7@r&_4xR%RLesC>6XbV33J!dA9Fs`gQm;LU&pM81u zd*1x{{@r^3p1>asgcKUxY==FWNqZe5b~@#HN35~9J(QZT;|9tUwoF?y)`gDDc_%s9 z;mKM@?^wojt??pFg~*g`P1vqN&B;Nr=!jd?KR7mRk9%DTWfPWXDb$`UxfHbO65MH#}G!Pi3-FNss^2;J)BL9*{+UGp?WYiZpDvUt|Jiz!ZL5l$tY|X{J$A7 zlD3u-A(RTM^=J%?*hC%b6)G~e_f(K#eJK~d`XeS9@u-49^?sdlLrZDr%%NpDP|@x3 zT{M|^7n&8;P395z%^uD=7j5?9A&U~ZNYsx>7#pN;g;Hn)h4n=)dedo*xfSm<@E!%T zpv)B$EofyTjKWW3eM{>@-ojQot*~}kE-n?;&}bxezAu$cdb+6t5>$t{+@Vn4(pst{ z^h2}0R6LtVYD=+sze%3%WcdrlP^hDQDUQXcbJU7w?OuY`w+sxlmePv4sq+KL3HySA z8epj78c<6r2-t0+91(%;F|kL;S9`{BeTGRL`liThd%{33sji8h^_+M|uj^W~gHFba zVJ|A9=vN3i6Y{d(!~s0TDp(T}68pn3wVsILBMRm5)TEP)Vvqxnu$*`d!#HH%ph9J# zFA{-?!x-@^qG>_KH?TD&V(Ak6BPN~!hbqkK2!5%m7 ztjz=I=^pi5ZVFu$_!v$bc#f1^p8V0-jAtiISQsOADl6E2j83ZK5bZo#+g75>0L#)) zWT>6)%Q|sxCsCYHXkL1CY2mLgE!|mqbJNoN(#@qemhLSr@^_2BySq2VFpeqNDV$aH z4dRor8pl}^aU{4=k+OD@nA?k6kykD1jxP!VVJXLvGLe>gM7@;17=sJX06XAQVP$G2 zvJ#S!mTcqf?0E%9OJ+@6#CEnh!>Ja*^CmtaEH}KACK97`^k+Dejf#1uW(uiOM@ z)A^0CBpbSmatrq59y+QV^{nx;LsnXEqA~)XHDMqs^!uENmxOCka_5oHy5jUYDB~f*@0j>*o|Z#;P+q|g419kD*uGRMZd*wKdsQG#6hj1ygc!y(6F-z3 zW%n4dGugPuEPuqUvoLhNG=}T=iHRGMr0hmABn}fjhL>gO=O%uUUy_>0(slgO#INvc zzkml^ejxR3*dN2|c*DT06%*5+%JNet0pAuL_ZJ83uQA^1$eEbOfD(-OFm`vSdnvQ93g*A5gGE;pussN=^J>SH*npZJCPUiwrCB|*ra;Rx*&!J)2O*P86yoOiV6e_Wnf8uhJZx*HEm#I+g?BRCrciuX;cp{fYAjzH@fW3`5=_e~2>H3Zm9#{%%~0N{84 z&{zQ2vW&sUhhS<6Q%9HecmxeaFpUM6Mzmp@hH1z40A`1NXK~wdc>LaL%qYZqb@MFJl0-4;NPB>Te#;2`r65Wp{5*0-@>sRj*I*jKDvnUGoT2Ir@u*4i;#@@4MFdj6p3@Q4wl{Uw8I5J+Po2>@sx2tGckRJH z0)|PIuHFAc-;yl}EZ`njBaG?={Ekls zaW~;Dc`6Xwx4cA4A@&ofcn2E|TvqonN`4!7MZJx3^_#d;HSPTFF literal 2392 zcmaJ?TT|Os5dMyDvW2)g*far(LP%>HiYZBY2`&jCK%5$AaN^XVX)D_*h{%#hmLc@H zf22=+=|elynwe&r<~e_%PyHdi?2&|RK)3P5b6yG zF6@Zno+b)pDpY#0zFs(MyV@ zaXQ{+$llYM3}b~i%0V=SQ{Cg`Mq@Eu67e=<0h0_;$B|AXT*efGu&dg49p=NSbk~({ zEsB)mw1lg8hwPdscJUqr$BYXSR2mJ2fo=ef&Co~Dx6Q*9vt`(hc6lCimSexikW8ih z)gBTF6v?Kf=q+`bK$EF_KJ8}}waml3QB$8Y zuso$&bpXAc7|}g}Nv3>IIO(BIE_aR|w6t$klIxr}KE47zp)PdVrDbb+cG z((nduH09Tx=@Osangjt+0pC!j-N9eAEYpf&k74zZVW~}1KTvCO)vPx(U9mOOkQVYZN;`d(;0DJ2TV9L>pJS7;%cu zvve^eTtUBslXPQwI20A{B1K3HX=FUad1nnoGHuMf{E^}W!1IpKJ}}giZ={p&oUeEG zoOi<4`x{pi8vo z5=JsJrwSoDyD|xUxksE6Qk*a^Iv3|A7QI-15i*x{>jiS{WOcON7C z5nTEK@+?(lh02nDg^f10+~XpDd>3RB{IHEj-~apPY#X0*njuH!Ij5uMs5i10#5|I8 zfluHXCP||yqIrV|=7`)aTHmL{c=u%7lsa;3VFzDO!cn@@!gxwFCn?gGBuo%rkv;D= z_v~vrQ)q{z_#0CKa*X#KeKI_{S$guShcmw*dA1g}dx{zEw8B+XJm*uoSG&#W>b^#) zt-nEcK4cu2zM)>M>y$dLq4)x7Ilg-g?GIY@Hs;fwY{X7B^u_cd^irvwrLx!K+@+#B H5cU56wENLA