echo '</Row>'; for ($i = 1; $i < 10; $i++) { echo '<Row>'; echo '<Cell ss:StyleID="s23"><Data ss:Type="String">Decile ' . $i . '</Data></Cell>'; echo '<Cell ss:StyleID="s69"><Data ss:Type="Number">' . MathsUtils::formatNumber($stats["decile{$i}"] / 100, $percent_decimals) . '</Data></Cell>'; echo '</Row>'; } echo '<Row>'; echo '<Cell ss:StyleID="s23"><Data ss:Type="String">' . $string['averagetime'] . '</Data></Cell>'; if ($stats['completed_no'] == 0) { echo '<Cell><Data ss:Type="String">' . $report->formatsec(0) . '</Data></Cell>'; } else { echo '<Cell><Data ss:Type="String">' . $report->formatsec(round($stats['total_time'] / $stats['completed_no'], 0)) . '</Data></Cell>'; } echo '</Row>'; echo '<Row>'; echo '<Cell ss:StyleID="s23"><Data ss:Type="String">' . $string['excludedquestions'] . '</Data></Cell>'; echo '<Cell><Data ss:Type="String">' . $report->get_display_excluded() . '</Data></Cell>'; echo '</Row>'; echo '<Row>'; echo '<Cell ss:StyleID="s23"><Data ss:Type="String">' . $string['skippedquestions'] . '</Data></Cell>'; echo '<Cell><Data ss:Type="String">' . $report->get_display_experimental() . '</Data></Cell>'; echo '</Row>'; echo ' </Table>'; echo ' <WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">'; echo ' <ProtectObjects>False</ProtectObjects>'; echo ' <ProtectScenarios>False</ProtectScenarios>'; echo ' </WorksheetOptions>'; echo ' </Worksheet>'; echo '</Workbook>'; $mysqli->close();
} $size_msg = $cohort_size < $user_no ? $cohort_size . $string['of'] . $user_no : $user_no; $csv .= $string['cohortsize'] . ",{$size_msg},,,,,,,,,,\n"; $csv .= $string['failureno'] . "," . $stats['failures'] . ",(" . round($percent_failures) . "% of cohort),,,,,,,,,\n"; $csv .= $string['passno'] . "," . $stats['passes'] . ",(" . round($percent_passes) . $string['percentofcohort'] . "),,,,,,,,,\n"; if (isset($ss_hon)) { $csv .= $string['distinctionno'] . "," . $stats['honours'] . ",(" . round($percent_honours) . "% of cohort),,,,,,,,,\n"; } $csv .= $string['totalmarks'] . "," . $report->get_total_marks() . ",,,,,,,,,,\n"; $csv .= $string['passmark'] . ",{$pass_mark}%,,,,,,,,,,\n"; if ($marking == '1') { $csv .= $string['randommark'] . "," . number_format($report->get_total_random_mark(), 2, '.', ',') . ",,,,,,,,,,\n"; } elseif (substr($marking, 0, 1) == '2') { $csv .= $string['ss'] . "," . round($report->get_ss_pass(), 2) . ",,,,,,,,,,\n"; $csv .= $string['ssdistinction'] . "," . round($report->get_ss_hon(), 2) . ",,,,,,,,,,\n"; } $csv .= $string['meanmark'] . "," . round($stats['mean_mark'], 1) . "," . MathsUtils::formatNumber($stats['mean_percent'], 1) . "%,,,,,,,,,\n"; $csv .= $string['medianmark'] . "," . round($stats['median_mark'], 1) . "," . MathsUtils::formatNumber($stats['median_percent'], 1) . "%,,,,,,,,,\n"; $csv .= $string['stdevmark'] . "," . number_format($stats['stddev_mark'], 2, '.', ',') . "," . MathsUtils::formatNumber($stats['stddev_percent'], 2) . "%,,,,,,,,,\n"; $csv .= $string['maxmark'] . "," . $stats['max_mark'] . "," . number_format($stats['max_percent']) . "%,,,,,,,,,\n"; $csv .= $string['maxmark'] . "," . $stats['min_mark'] . "," . number_format($stats['min_percent']) . "%,,,,,,,,,\n"; $csv .= $string['range'] . "," . $stats['range'] . "," . $stats['range_percent'] . "%,,,,,,,,,\n"; $avg_time = $stats['completed_no'] > 0 ? $report->formatsec(round($stats['total_time'] / $stats['completed_no'], 0)) : 'n/a'; $csv .= $string['averagetime'] . "," . $avg_time . ",,,,,,,,,,\n"; $csv .= $string['excludedquestions'] . "," . $report->get_display_excluded() . ",,,,,,,,,,\n"; $csv .= $string['skippedquestions'] . "," . $report->get_display_experimental() . ",,,,,,,,,,\n"; } else { $csv .= strip_tags(sprintf($string['noattempts'], $report->nicedate($startdate), $report->nicedate($enddate))); } echo mb_convert_encoding($csv, "UTF-16LE", "UTF-8"); $mysqli->close();
$mid_point = round($cohort_size / 2) - 1; echo "<tr><td class=\"field\">" . $string['medianmark'] . "</td><td class=\"r\">" . round($stats['median_mark'], 1) . "</td><td>(" . MathsUtils::formatNumber($stats['median_percent'], 1) . "%)</td><td> </td></tr>\n"; if ($stats['completed_no'] == 0) { echo "<tr><td class=\"field\">" . $string['stdevmark'] . "</td><td class=\"grey r\">" . $string['na'] . "</td><td> </td><td> </td></tr>\n"; } else { echo "<tr><td class=\"field\">" . $string['stdevmark'] . "</td><td class=\"r\">" . number_format($stats['stddev_mark'], 2, '.', ',') . "</td><td>(" . MathsUtils::formatNumber($stats['stddev_percent'], 2) . "%)</td><td> </td></tr>\n"; } echo "<tr><td class=\"field\">" . $string['maxmark'] . "</td><td class=\"r\">" . $stats['max_mark'] . "</td><td>(" . number_format($stats['max_percent']) . "%)</td><td> </td></tr>\n"; echo "<tr><td class=\"field\">" . $string['minmark'] . "</td><td class=\"r\">" . $stats['min_mark'] . "</td><td>(" . number_format($stats['min_percent']) . "%)</td><td> </td></tr>\n"; echo "<tr><td class=\"field\">" . $string['range'] . "</td><td class=\"r\">" . $stats['range'] . "</td><td>(" . number_format($stats['range_percent']) . "%)</td><td> </td></tr>\n"; if ($stats['completed_no'] <= 1) { echo "<tr><td class=\"field\">" . $string['averagetime'] . "</td><td class=\"grey r\">" . $string['na'] . "</td><td> </td><td> </td></tr>\n"; } else { echo "<tr><td class=\"field\">" . $string['averagetime'] . "</td><td class=\"r\">" . $report->formatsec(round($stats['total_time'] / $stats['completed_no'], 0)) . "</td><td> </td><td> </td></tr>\n"; } if ($report->get_display_excluded() != '') { echo "<tr><td class=\"field\">" . $string['excludedquestions'] . "</td><td colspan=\"3\">" . $report->get_display_excluded() . "</td></tr>\n"; } if ($report->get_display_experimental() != '') { echo "<tr><td class=\"field\">" . $string['skippedquestions'] . "</td><td colspan=\"3\">" . $report->get_display_experimental() . "</td></tr>\n"; } echo "</table></td>\n"; echo "<td></td>"; // Deciles $suffix = array('', 'st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th'); echo "<td colspan=\"2\" style=\"width:33%; vertical-align:top\"><table border=\"0\" style=\"font-size:110%\">\n"; for ($i = 1; $i < 10; $i++) { echo "<tr><td style=\"width:40px\">" . $i; echo $language == 'en' ? $suffix[$i] : '.'; echo "</td><td>" . MathsUtils::formatNumber($stats["decile{$i}"], 1) . "%</td></tr>\n"; }