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

version 1.78, 2003/12/09 17:00:07 version 1.79, 2003/12/11 15:48:56
Line 1035  END Line 1035  END
                 &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;
             # Determine cell the score is held in  
             $seq->{'Excel:scorecell'} =   
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell  
                                              ($rows_output,$cols_output);  
             $seq->{'Excel:scorecol'}=$cols_output;  
             $excel_sheet->write($rows_output,$cols_output++,'score');  
             # 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'}.
                                              ':'.$seq->{'Excel:endcell'}.')');                                               ':'.$seq->{'Excel:endcell'}.')');
             #          }
             $total_formula_string.='+'.          # Determine cell the score is held in
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell          $seq->{'Excel:scorecell'} = 
                                         ($rows_output,$cols_output-1);              &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
             $excel_sheet->write($rows_output,$cols_output++,'maximum');              ($rows_output,$cols_output);
         } elsif ($data eq 'sum and total') {          $seq->{'Excel:scorecol'}=$cols_output;
             $excel_sheet->write($rows_output+1,$cols_output,'score');          if ($data eq 'parts correct total') {
             $total_formula_string.='+'.              $excel_sheet->write($rows_output,$cols_output++,'parts correct');
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell  
                                         ($rows_output+1,$cols_output);  
             $excel_sheet->write($rows_output+1,$cols_output+1,'maximum');  
             $cols_output += 2;  
         } elsif ($data eq 'parts correct total') {  
             $excel_sheet->write($rows_output+1,$cols_output,'parts correct');  
             $total_formula_string.='+'.  
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell  
                                         ($rows_output+1,$cols_output);  
             $excel_sheet->write($rows_output+1,$cols_output+1,'maximum');  
             $cols_output += 2;  
         } else {          } else {
             $cols_output++;              $excel_sheet->write($rows_output,$cols_output++,'score');
         }          }
           #
           $total_formula_string.='+'.
               &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
               ($rows_output,$cols_output-1);
           $excel_sheet->write($rows_output,$cols_output++,'maximum');
     }      }
     $excel_sheet->write($rows_output,$cols_output,'Grand Total');      $excel_sheet->write($rows_output,$cols_output++,'Grand Total');
     $total_formula = $excel_sheet->store_formula($total_formula_string);      $total_formula = $excel_sheet->store_formula($total_formula_string);
     #      #
     # Bookkeeping      # Bookkeeping
Line 1091  END Line 1079  END
     #      #
     # Add the maximums for each sequence or assessment      # Add the maximums for each sequence or assessment
     my %total_cell_translation;      my %total_cell_translation;
       my $grand_total = 0;
     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
Line 1120  END Line 1109  END
         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($rows_output,$cols_output++,'');
         }          }
         my %replaceCells;          #
         $replaceCells{$seq->{'Excel:startcell'}} =           if ($data eq 'tries' || $data eq 'scores') {
             &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell              my %replaceCells;
                                    ($rows_output,$seq->{'Excel:startcol'});              $replaceCells{$seq->{'Excel:startcell'}} = 
         $replaceCells{$seq->{'Excel:endcell'}} =                   &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
             &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell                  ($rows_output,$seq->{'Excel:startcol'});
                                    ($rows_output,$seq->{'Excel:endcol'});              $replaceCells{$seq->{'Excel:endcell'}} = 
                   &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
                   ($rows_output,$seq->{'Excel:endcol'});
               $excel_sheet->repeat_formula($rows_output,$cols_output++,
                                            $seq->{'Excel:sum'},undef,
                                            %replaceCells);
           } else {
               $excel_sheet->write($rows_output,$cols_output++,
                                   $max);
           }
           $grand_total+=$max;
       }
       if ($data eq 'tries' || $data eq 'scores') {
         $excel_sheet->repeat_formula($rows_output,$cols_output++,          $excel_sheet->repeat_formula($rows_output,$cols_output++,
                                      $seq->{'Excel:sum'},undef,                                       $total_formula,undef,
                                      %replaceCells);                                       %total_cell_translation);
       } else {
           $excel_sheet->write($rows_output,$cols_output++,$grand_total);
     }      }
     $excel_sheet->repeat_formula($rows_output,$cols_output++,  
                                  $total_formula,undef,  
                                  %total_cell_translation);  
     $rows_output++;      $rows_output++;
     #      #
     # Let the user know what we are doing      # Let the user know what we are doing

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


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