version 1.81.2.3, 2004/04/06 21:42:26
|
version 1.82, 2004/01/27 19:50:03
|
Line 163 sub BuildStudentAssessmentPage {
|
Line 163 sub BuildStudentAssessmentPage {
|
# |
# |
$single_student_mode = 0; |
$single_student_mode = 0; |
$single_student_mode = 1 if ($ENV{'form.SelectedStudent'}); |
$single_student_mode = 1 if ($ENV{'form.SelectedStudent'}); |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
|
['selectstudent']); |
|
if ($ENV{'form.selectstudent'}) { |
if ($ENV{'form.selectstudent'}) { |
&Apache::lonstatistics::DisplayClasslist($r); |
&Apache::lonstatistics::DisplayClasslist($r); |
return; |
return; |
Line 787 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 992 END
|
Line 988 END
|
$cols_output = 0; |
$cols_output = 0; |
$excel_sheet->write($rows_output++,$cols_output++,$datadescription); |
$excel_sheet->write($rows_output++,$cols_output++,$datadescription); |
# |
# |
# if ($data eq 'tries' || $data eq 'scores') { |
if ($data eq 'tries' || $data eq 'scores') { |
$rows_output+=2; |
$rows_output++; |
# } |
} |
# |
# |
# Add the student headers |
# Add the student headers |
$cols_output = 0; |
$cols_output = 0; |
Line 1002 END
|
Line 998 END
|
$excel_sheet->write($rows_output,$cols_output++,$field); |
$excel_sheet->write($rows_output,$cols_output++,$field); |
} |
} |
my $row_offset = 0; |
my $row_offset = 0; |
# if ($data eq 'tries' || $data eq 'scores') { |
if ($data eq 'tries' || $data eq 'scores') { |
$row_offset = -1; |
$row_offset = -1; |
# } |
} |
# |
# |
# Add the remaining column headers |
# Add the remaining column headers |
my $total_formula_string = '=0'; |
my $total_formula_string = '=0'; |
Line 1018 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'}}) { |
if ($res->{'type'} ne 'assessment' || |
next 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 1036 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) { |
|
$seq->{'Excel:endcell'} = $seq->{'Excel:startcell'}; |
|
$seq->{'Excel:endcol'} = $seq->{'Excel:startcol'}; |
|
} else { |
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell |
&Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell |
($rows_output,$cols_output-1); |
($rows_output,$cols_output-1); |
$seq->{'Excel:endcol'}=$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 |
$seq->{'Excel:sum'}= $excel_sheet->store_formula |
$seq->{'Excel:sum'}= $excel_sheet->store_formula |
('=SUM('.$seq->{'Excel:startcell'}. |
('=SUM('.$seq->{'Excel:startcell'}. |
Line 1067 END
|
Line 1064 END
|
$total_formula = $excel_sheet->store_formula($total_formula_string); |
$total_formula = $excel_sheet->store_formula($total_formula_string); |
# |
# |
# Bookkeeping |
# Bookkeeping |
# if ($data eq 'sum and total' || $data eq 'parts correct total') { |
if ($data eq 'sum and total' || $data eq 'parts correct total') { |
# $rows_output += 1; |
$rows_output += 2; |
# } else { |
} else { |
$rows_output += 1; |
$rows_output += 1; |
# } |
} |
# |
# |
# Output a row for MAX |
# Output a row for MAX |
$cols_output = 0; |
$cols_output = 0; |