Diff for /loncom/interface/statistics/lonstudentassessment.pm between versions 1.85 and 1.86

version 1.85, 2004/02/11 16:02:37 version 1.86, 2004/02/11 17:42:34
Line 1007  END Line 1007  END
         $rows_output++;          $rows_output++;
     }      }
     #      #
       # Figure out the rows we need
       my $sequence_name_row = $rows_output+1;
       my $resource_name_row = $sequence_name_row+1;
       my $maximum_data_row = $sequence_name_row+2;
       my $first_data_row = $sequence_name_row+3;
       #
     # Add the student headers      # Add the student headers
     $cols_output = 0;      $cols_output = 0;
     foreach my $field (&get_student_fields_to_show()) {      foreach my $field (&get_student_fields_to_show()) {
         $excel_sheet->write($rows_output,$cols_output++,$field,          $excel_sheet->write($resource_name_row,$cols_output++,$field,
                             $format->{'bold'});                              $format->{'bold'});
     }      }
     my $row_offset = 0;  
     if ($data eq 'tries' || $data eq 'scores') {  
         $row_offset = -1;  
     }  
     #      #
     # Add the remaining column headers      # Add the remaining column headers
     my $total_formula_string = '=0';      my $total_formula_string = '=0';
     foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) {      foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) {
         $excel_sheet->write($rows_output+$row_offset,          $excel_sheet->write($sequence_name_row,,
                             $cols_output,$seq->{'title'},$format->{'h3'});                              $cols_output,$seq->{'title'},$format->{'h3'});
           # Determine starting cell
           $seq->{'Excel:startcell'}=
               &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
               ($maximum_data_row,$cols_output);
           $seq->{'Excel:startcol'}=$cols_output;
         if ($data eq 'tries' || $data eq 'scores') {          if ($data eq 'tries' || $data eq 'scores') {
             # Determine starting cell  
             $seq->{'Excel:startcell'}=  
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell  
                 ($rows_output,$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;              my $count = 0;
             foreach my $res (@{$seq->{'contents'}}) {              foreach my $res (@{$seq->{'contents'}}) {
Line 1040  END Line 1042  END
                 }                  }
                 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($resource_name_row,
                                             $cols_output++,                                              $cols_output++,
                                             $res->{'title'}.' part '.$part,                                              $res->{'title'}.' part '.$part,
                                             $format->{'bold'});                                              $format->{'bold'});
                     }                      }
                 } else {                  } else {
                     $excel_sheet->write($rows_output,                      $excel_sheet->write($resource_name_row,
                                         $cols_output++,                                          $cols_output++,
                                         $res->{'title'},$format->{'bold'});                                          $res->{'title'},$format->{'bold'});
                 }                  }
Line 1059  END Line 1061  END
             } else {              } else {
                 $seq->{'Excel:endcell'} =                   $seq->{'Excel:endcell'} = 
                     &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell                      &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
                         ($rows_output,$cols_output-1);                              ($maximum_data_row,$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
Line 1074  END Line 1076  END
         # Determine cell the score is held in          # Determine cell the score is held in
         $seq->{'Excel:scorecell'} =           $seq->{'Excel:scorecell'} = 
             &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell              &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
             ($rows_output,$cols_output);              ($maximum_data_row,$cols_output);
         $seq->{'Excel:scorecol'}=$cols_output;          $seq->{'Excel:scorecol'}=$cols_output;
         if ($data eq 'parts correct total') {          if ($data eq 'parts correct total') {
             $excel_sheet->write($rows_output,$cols_output++,'parts correct',              $excel_sheet->write($resource_name_row,$cols_output++,
                                   'parts correct',
                                 $format->{'bold'});                                  $format->{'bold'});
         } else {          } else {
             $excel_sheet->write($rows_output,$cols_output++,'score',              $excel_sheet->write($resource_name_row,$cols_output++,
                                   'score',
                                 $format->{'bold'});                                  $format->{'bold'});
         }          }
         #          #
         $total_formula_string.='+'.          $total_formula_string.='+'.
             &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell              &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
             ($rows_output,$cols_output-1);              ($maximum_data_row,$cols_output-1);
         $excel_sheet->write($rows_output,$cols_output++,'maximum',          $excel_sheet->write($resource_name_row,$cols_output++,
                               'maximum',
                             $format->{'bold'});                              $format->{'bold'});
     }      }
     $excel_sheet->write($rows_output,$cols_output++,'Grand Total',      $excel_sheet->write($resource_name_row,$cols_output++,'Grand Total',
                         $format->{'bold'});                          $format->{'bold'});
     $total_formula = $excel_sheet->store_formula($total_formula_string);      $total_formula = $excel_sheet->store_formula($total_formula_string);
     #      #
     # Bookkeeping  
     if ($data eq 'sum and total' || $data eq 'parts correct total') {  
         $rows_output += 2;  
     } else {  
         $rows_output += 1;  
     }  
     #  
     # Output a row for MAX      # Output a row for MAX
     $cols_output = 0;      $cols_output = 0;
     foreach my $field (&get_student_fields_to_show()) {      foreach my $field (&get_student_fields_to_show()) {
         if ($field eq 'username' || $field eq 'fullname' ||           if ($field eq 'username' || $field eq 'fullname' || 
             $field eq 'id') {              $field eq 'id') {
             $excel_sheet->write($rows_output,$cols_output++,'Maximum',              $excel_sheet->write($maximum_data_row,$cols_output++,'Maximum',
                                 $format->{'bold'});                                  $format->{'bold'});
         } else {          } else {
             $excel_sheet->write($rows_output,$cols_output++,'');              $excel_sheet->write($maximum_data_row,$cols_output++,'');
         }          }
     }      }
     #      #
Line 1119  END Line 1117  END
     foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) {      foreach my $seq (&Apache::lonstatistics::Sequences_with_Assess()) {
         $total_cell_translation{$seq->{'Excel:scorecell'}} =           $total_cell_translation{$seq->{'Excel:scorecell'}} = 
             &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell              &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
                         ($rows_output,$seq->{'Excel:scorecol'});                          ($maximum_data_row,$seq->{'Excel:scorecol'});
         my $weight;          my $weight;
         my $max = 0;          my $max = 0;
         foreach my $resource (@{$seq->{'contents'}}) {          foreach my $resource (@{$seq->{'contents'}}) {
Line 1135  END Line 1133  END
                     }                      }
                 }                  }
                 if ($data eq 'scores') {                  if ($data eq 'scores') {
                     $excel_sheet->write($rows_output,$cols_output++,$weight);                      $excel_sheet->write($maximum_data_row,$cols_output++,$weight);
                 } elsif ($data eq 'tries') {                  } elsif ($data eq 'tries') {
                     $excel_sheet->write($rows_output,$cols_output++,'');                      $excel_sheet->write($maximum_data_row,$cols_output++,'');
                 }                  }
                 $max += $weight;                  $max += $weight;
             }              }
         }           } 
         if (! ($data eq 'sum only' || $data eq 'parts correct')) {          if (! ($data eq 'sum only' || $data eq 'parts correct')) {
             $excel_sheet->write($rows_output,$cols_output++,'');              $excel_sheet->write($maximum_data_row,$cols_output++,'');
         }          }
         #          #
         if ($data eq 'tries' || $data eq 'scores') {          if ($data eq 'tries' || $data eq 'scores') {
             my %replaceCells;              my %replaceCells;
             $replaceCells{$seq->{'Excel:startcell'}} =               $replaceCells{$seq->{'Excel:startcell'}} = 
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell                  &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
                 ($rows_output,$seq->{'Excel:startcol'});                  ($maximum_data_row,$seq->{'Excel:startcol'});
             $replaceCells{$seq->{'Excel:endcell'}} =               $replaceCells{$seq->{'Excel:endcell'}} = 
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell                  &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
                 ($rows_output,$seq->{'Excel:endcol'});                  ($maximum_data_row,$seq->{'Excel:endcol'});
             $excel_sheet->repeat_formula($rows_output,$cols_output++,              $excel_sheet->repeat_formula($maximum_data_row,$cols_output++,
                                          $seq->{'Excel:sum'},undef,                                           $seq->{'Excel:sum'},undef,
                                          %replaceCells);                                           %replaceCells);
         } else {          } else {
             $excel_sheet->write($rows_output,$cols_output++,              $excel_sheet->write($maximum_data_row,$cols_output++,
                                 $max);                                  $max);
         }          }
         $grand_total+=$max;          $grand_total+=$max;
     }      }
     if ($data eq 'tries' || $data eq 'scores') {      if ($data eq 'tries' || $data eq 'scores') {
         $excel_sheet->repeat_formula($rows_output,$cols_output++,          $excel_sheet->repeat_formula($maximum_data_row,$cols_output++,
                                      $total_formula,undef,                                       $total_formula,undef,
                                      %total_cell_translation);                                       %total_cell_translation);
     } else {      } else {
         $excel_sheet->write($rows_output,$cols_output++,$grand_total);          $excel_sheet->write($maximum_data_row,$cols_output++,$grand_total);
     }      }
     $rows_output++;      $rows_output = $first_data_row;
     #      #
     # Let the user know what we are doing      # Let the user know what we are doing
     my $studentcount = scalar(@Apache::lonstatistics::Students);       my $studentcount = scalar(@Apache::lonstatistics::Students); 

Removed from v.1.85  
changed lines
  Added in v.1.86


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