version 1.80, 2004/01/27 16:04:27
|
version 1.84, 2004/02/10 16:47:25
|
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 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'); |
if ($res->{'type'} ne 'assessment' || |
|
! exists($res->{'parts'}) || |
|
ref($res->{'parts'}) ne 'ARRAY' || |
|
scalar(@{$res->{'parts'}}) < 1) { |
|
next; |
|
} |
if (scalar(@{$res->{'parts'}}) > 1) { |
if (scalar(@{$res->{'parts'}}) > 1) { |
foreach my $part (@{$res->{'parts'}}) { |
foreach my $part (@{$res->{'parts'}}) { |
$excel_sheet->write($rows_output, |
$excel_sheet->write($rows_output, |
Line 1029 END
|
Line 1033 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 1221 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' || |