/** @see se.idega.idegaweb.commune.school.report.business.ReportModel#buildRowHeaders() */ protected Header[] buildRowHeaders() { Header[] headers = null; try { ReportBusiness rb = getReportBusiness(); Collection areas = rb.getElementarySchoolAreas(); headers = new Header[areas.size() + 1]; Iterator areaIter = areas.iterator(); int headerIndex = 0; while (areaIter.hasNext()) { SchoolArea area = (SchoolArea) areaIter.next(); Collection schools = getReportBusiness().getElementarySchools(area); headers[headerIndex] = new Header( area.getName(), Header.HEADERTYPE_ROW_NONLOCALIZED_HEADER, schools.size() + 1); Iterator schoolIter = schools.iterator(); int childIndex = 0; while (schoolIter.hasNext()) { School school = (School) schoolIter.next(); Header child = new Header(school.getName(), Header.HEADERTYPE_ROW_NONLOCALIZED_NORMAL); headers[headerIndex].setChild(childIndex, child); childIndex++; } Header header = new Header(KEY_SUM, Header.HEADERTYPE_ROW_SUM); headers[headerIndex].setChild(childIndex, header); headerIndex++; } Header header = new Header(KEY_TOTAL, Header.HEADERTYPE_ROW_TOTAL); headers[headerIndex] = header; } catch (RemoteException e) { log(e.getMessage()); } return headers; }
/** Returns the number of student placements for the specified school and school year. */ protected int getPrivateSchoolOCCPlacementCount(int schoolId, String schoolYearName) throws RemoteException { PreparedQuery query = null; if (!schoolYearName.equals("0")) { ReportBusiness rb = getReportBusiness(); query = getQuery(QUERY_PRIVATE); if (query == null) { query = new PreparedQuery(getConnection()); query.setSelectCountDistinctUsers(); query.setPlacements(rb.getSchoolSeasonId()); query.setNotNackaCitizens(); query.setSchoolType(); // parameter 1 query.setSchoolYearName(); // parameter 2 query.setSchool(); // parameter 3 query.prepare(); setQuery(QUERY_PRIVATE, query); } if (schoolYearName.equals("F")) { query.setInt(1, rb.getPreSchoolClassTypeId()); } else { query.setInt(1, rb.getElementarySchoolTypeId()); } query.setString(2, schoolYearName); query.setInt(3, schoolId); } else { // 6 years old students query = getQuery(QUERY_PRIVATE_6_YEAR_STUDENTS); if (query == null) { query = new PreparedQuery(getConnection()); query.setSelectCountDistinctUsers(); query.setPlacements(getReportBusiness().getSchoolSeasonId()); query.setNotNackaCitizens(); query.setOnlyStudentsBorn(getReportBusiness().getSchoolSeasonStartYear() - 6); query.setSchoolYearName("1"); query.setSchoolTypeElementarySchool(); query.setSchool(); // parameter 1 query.prepare(); setQuery(QUERY_PRIVATE_6_YEAR_STUDENTS, query); } query.setInt(1, schoolId); } return query.execute(); }
/** @see se.idega.idegaweb.commune.school.report.business.ReportModel#buildCells() */ protected void buildCells() { for (int column = 0; column < getColumnSize(); column++) { int row = 0; int columnMethod = 0; Object columnParameter = null; switch (column) { case 0: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "F"; break; case 1: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "1"; break; case 2: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "2"; break; case 3: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "3"; break; case 4: columnMethod = COLUMN_METHOD_SUM_1_3; columnParameter = null; break; case 5: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "4"; break; case 6: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "5"; break; case 7: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "6"; break; case 8: columnMethod = COLUMN_METHOD_SUM_4_6; columnParameter = null; break; case 9: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "7"; break; case 10: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "8"; break; case 11: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "9"; break; case 12: columnMethod = COLUMN_METHOD_SUM_7_9; columnParameter = null; break; case 13: columnMethod = COLUMN_METHOD_TOTAL_1_9; columnParameter = null; break; case 14: columnMethod = COLUMN_METHOD_TOTAL_F_9; columnParameter = null; break; case 15: columnMethod = COLUMN_METHOD_SCHOOL_YEAR; columnParameter = "0"; break; } try { ReportBusiness rb = getReportBusiness(); Collection areas = rb.getElementarySchoolAreas(); Iterator areaIter = areas.iterator(); while (areaIter.hasNext()) { SchoolArea area = (SchoolArea) areaIter.next(); Collection schools = getReportBusiness().getElementarySchools(area); Iterator schoolIter = schools.iterator(); while (schoolIter.hasNext()) { School school = (School) schoolIter.next(); Object rowParameter = school.getPrimaryKey(); Cell cell = new Cell( this, row, column, ROW_METHOD_SCHOOL, columnMethod, rowParameter, columnParameter, Cell.CELLTYPE_NORMAL); setCell(row, column, cell); row++; } Cell cell = new Cell( this, row, column, ROW_METHOD_SUM, columnMethod, null, columnParameter, Cell.CELLTYPE_SUM); setCell(row, column, cell); row++; } Cell cell = new Cell( this, row, column, ROW_METHOD_TOTAL, columnMethod, null, columnParameter, Cell.CELLTYPE_TOTAL); setCell(row, column, cell); } catch (RemoteException e) { log(e.getMessage()); } } }