Diff for /loncom/interface/statistics/lonstudentassessment.pm between versions 1.79 and 1.83

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.'&nbsp;</td>'.
                 '<td align="right">'.$max.'</td></tr>'."\n";              '<td align="right">'.$max.'&nbsp;'.'</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.'&nbsp;'.'</td>'.
           '<td align="right">'.$total_max.'&nbsp;'.'</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' || 

Removed from v.1.79  
changed lines
  Added in v.1.83


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>