version 1.78, 2003/12/09 17:00:07
|
version 1.80, 2004/01/27 16:04:27
|
Line 909 You may consider reducing the number of
|
Line 909 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 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 |