version 1.35, 2003/03/05 20:31:13
|
version 1.36, 2003/03/06 21:12:54
|
Line 656 my $filename;
|
Line 656 my $filename;
|
my $rows_output; |
my $rows_output; |
my $cols_output; |
my $cols_output; |
|
|
my $num_students; |
my %prog_state; # progress window state |
my $start_time; |
|
|
|
sub excel_initialize { |
sub excel_initialize { |
my ($r) = @_; |
my ($r) = @_; |
Line 672 sub excel_initialize {
|
Line 671 sub excel_initialize {
|
$rows_output = 0; |
$rows_output = 0; |
$cols_output = 0; |
$cols_output = 0; |
# |
# |
$num_students = 0; |
|
$start_time = time; |
|
# |
|
# Create sheet |
# Create sheet |
$excel_workbook = Spreadsheet::WriteExcel->new('/home/httpd'.$filename); |
$excel_workbook = Spreadsheet::WriteExcel->new('/home/httpd'.$filename); |
# |
# |
Line 764 sub excel_initialize {
|
Line 760 sub excel_initialize {
|
$r->print("</h1>\n"); |
$r->print("</h1>\n"); |
$r->rflush(); |
$r->rflush(); |
# |
# |
|
# Initialize progress window |
|
%prog_state=&Apache::lonhtmlcommon::Create_PrgWin |
|
($r,'Excel File Compilation Status', |
|
'Excel File Compilation Progress', $studentcount); |
|
# |
return; |
return; |
} |
} |
|
|
Line 805 sub excel_outputstudent {
|
Line 806 sub excel_outputstudent {
|
$rows_output++; |
$rows_output++; |
$cols_output=0; |
$cols_output=0; |
# |
# |
# Time estimate |
# Update the progress window |
$num_students++; |
&Apache::lonhtmlcommon::Increment_PrgWin($r,\%prog_state,'last student'); |
if ($num_students % 10 == 0) { |
|
my $time_est = (time - $start_time)/$num_students * |
|
(scalar(@Apache::lonstatistics::Students)-$num_students); |
|
$time_est = int($time_est); |
|
if (int ($time_est/60) > 0) { |
|
my $min = int($time_est/60); |
|
my $sec = $time_est % 60; |
|
$time_est = $min.' minutes'; |
|
if ($sec > 1) { |
|
$time_est.= ', '.$sec.' seconds'; |
|
} elsif ($sec > 0) { |
|
$time_est.= ', '.$sec.' second'; |
|
} |
|
} else { |
|
$time_est .= ' seconds'; |
|
} |
|
$r->print($num_students.' out of '. |
|
(scalar(@Apache::lonstatistics::Students)). |
|
" students processed. ". |
|
$time_est." remain. Elapsed: ".(time - $start_time). |
|
"<br />\n"); |
|
$r->rflush(); |
|
} |
|
return; |
return; |
} |
} |
|
|
Line 843 sub excel_finish {
|
Line 821 sub excel_finish {
|
# |
# |
return if($c->aborted()); |
return if($c->aborted()); |
# |
# |
|
# Close the progress window |
|
&Apache::lonhtmlcommon::Close_PrgWin($r,\%prog_state); |
|
# |
# Tell the user where to get their excel file |
# Tell the user where to get their excel file |
$r->print('<br /><br />'. |
$r->print('<br />'. |
'<a href="'.$filename.'">Your Excel spreadsheet.</a>'."\n"); |
'<a href="'.$filename.'">Your Excel spreadsheet.</a>'."\n"); |
my $total_time = time - $start_time; |
|
if (int ($total_time / 60) > 0) { |
|
$total_time = int($total_time/60).' minutes, '.($total_time % 60); |
|
} |
|
$r->print('<br />'.$total_time.' seconds total'); |
|
$r->rflush(); |
$r->rflush(); |
return; |
return; |
} |
} |