version 1.79, 2003/12/11 15:48:56
|
version 1.83, 2004/02/06 19:29:00
|
Line 785 sub StudentAverageTotal {
|
Line 785 sub StudentAverageTotal {
|
$total_ave += $ave; |
$total_ave += $ave; |
my $max = $Statistics->{$seq->{'symb'}}->{'max'}; |
my $max = $Statistics->{$seq->{'symb'}}->{'max'}; |
$total_max += $max; |
$total_max += $max; |
if ($ave == 0) { |
$ave = sprintf("%.2f",$ave); |
$ave = "0.00"; |
|
} |
|
$ave .= ' '; |
|
$max .= ' '; |
|
$Str .= '<tr><td>'.$seq->{'title'}.'</td>'. |
$Str .= '<tr><td>'.$seq->{'title'}.'</td>'. |
'<td align="right">'.$ave.'</td>'. |
'<td align="right">'.$ave.' </td>'. |
'<td align="right">'.$max.'</td></tr>'."\n"; |
'<td align="right">'.$max.' '.'</td></tr>'."\n"; |
} |
} |
$total_ave = int(100*$total_ave)/100; # only two digit |
$total_ave = sprintf('%.2f',$total_ave); # only two digit |
$Str .= "</table>\n"; |
$Str .= "</table>\n"; |
$Str .= '<table border=2 cellspacing="1">'."\n"; |
$Str .= '<table border=2 cellspacing="1">'."\n"; |
$Str .= '<tr><th>Number of Students</th><th>Average</th>'. |
$Str .= '<tr><th>Number of Students</th><th>Average</th>'. |
"<th>Maximum</th></tr>\n"; |
"<th>Maximum</th></tr>\n"; |
$Str .= '<tr><td>'.($num_students-$nodata_count).'</td>'. |
$Str .= '<tr>'. |
'<td>'.$total_ave.'</td><td>'.$total_max.'</td>'; |
'<td align="right">'.($num_students-$nodata_count).'</td>'. |
|
'<td align="right">'.$total_ave.' '.'</td>'. |
|
'<td align="right">'.$total_max.' '.'</td>'; |
$Str .= "</table>\n"; |
$Str .= "</table>\n"; |
return $Str; |
return $Str; |
} |
} |
Line 909 You may consider reducing the number of
|
Line 907 You may consider reducing the number of
|
have selected. |
have selected. |
</p><p> |
</p><p> |
LON-CAPA can produce <b>CSV</b> files of this data or Excel files of the |
LON-CAPA can produce <b>CSV</b> files of this data or Excel files of the |
summary data (<b>Scores Sum</b> or <b>Scores Sum & Totals</b>). |
<b>Scores Summary</b> data. |
</p> |
</p> |
END |
END |
$request_aborted = 1; |
$request_aborted = 1; |
Line 1016 END
|
Line 1014 END
|
($rows_output,$cols_output); |
($rows_output,$cols_output); |
$seq->{'Excel:startcol'}=$cols_output; |
$seq->{'Excel:startcol'}=$cols_output; |
# Put the names of the problems and parts into the sheet |
# Put the names of the problems and parts into the sheet |
|
my $count = 0; |
foreach my $res (@{$seq->{'contents'}}) { |
foreach my $res (@{$seq->{'contents'}}) { |
next if ($res->{'type'} ne 'assessment'); |
next if ($res->{'type'} ne 'assessment'); |
if (scalar(@{$res->{'parts'}}) > 1) { |
if (scalar(@{$res->{'parts'}}) > 1) { |
Line 1029 END
|
Line 1028 END
|
$cols_output++, |
$cols_output++, |
$res->{'title'}); |
$res->{'title'}); |
} |
} |
|
$count++; |
} |
} |
# Determine ending cell |
# Determine ending cell |
$seq->{'Excel:endcell'} = |
if ($count == 1) { |
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell |
$seq->{'Excel:endcell'} = $seq->{'Excel:startcell'}; |
($rows_output,$cols_output-1); |
$seq->{'Excel:endcol'} = $seq->{'Excel:startcol'}; |
$seq->{'Excel:endcol'}=$cols_output-1; |
} else { |
|
$seq->{'Excel:endcell'} = |
|
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell |
|
($rows_output,$cols_output-1); |
|
$seq->{'Excel:endcol'} = $cols_output-1; |
|
} |
# Create the formula for summing up this sequence |
# Create the formula for summing up this sequence |
|
if (! exists($seq->{'Excel:endcell'}) || |
|
! defined($seq->{'Excel:endcell'})) { |
|
$seq->{'Excel:endcell'} = $seq->{'Excel:startcell'}; |
|
} |
$seq->{'Excel:sum'}= $excel_sheet->store_formula |
$seq->{'Excel:sum'}= $excel_sheet->store_formula |
('=SUM('.$seq->{'Excel:startcell'}. |
('=SUM('.$seq->{'Excel:startcell'}. |
':'.$seq->{'Excel:endcell'}.')'); |
':'.$seq->{'Excel:endcell'}.')'); |
Line 1207 sub excel_outputstudent {
|
Line 1216 sub excel_outputstudent {
|
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell |
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell |
($rows_output,$seq->{'Excel:endcol'}); |
($rows_output,$seq->{'Excel:endcol'}); |
# The undef is for the format |
# The undef is for the format |
$excel_sheet->repeat_formula($rows_output,$cols_output++, |
if (scalar(keys(%replaceCells)) == 1) { |
$seq->{'Excel:sum'},undef, |
$excel_sheet->repeat_formula($rows_output,$cols_output++, |
%replaceCells); |
$seq->{'Excel:sum'},undef, |
|
%replaceCells,%replaceCells); |
|
} else { |
|
$excel_sheet->repeat_formula($rows_output,$cols_output++, |
|
$seq->{'Excel:sum'},undef, |
|
%replaceCells); |
|
} |
# |
# |
$excel_sheet->write($rows_output,$cols_output++,$seq_max); |
$excel_sheet->write($rows_output,$cols_output++,$seq_max); |
} elsif ($data eq 'sum and total' || $data eq 'sum only' || |
} elsif ($data eq 'sum and total' || $data eq 'sum only' || |