--- loncom/interface/statistics/lonstudentassessment.pm	2004/04/06 19:09:10	1.81.2.2
+++ loncom/interface/statistics/lonstudentassessment.pm	2004/01/27 19:50:03	1.82
@@ -1,6 +1,6 @@
 # The LearningOnline Network with CAPA
 #
-# $Id: lonstudentassessment.pm,v 1.81.2.2 2004/04/06 19:09:10 albertel Exp $
+# $Id: lonstudentassessment.pm,v 1.82 2004/01/27 19:50:03 matthew Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -163,8 +163,6 @@ sub BuildStudentAssessmentPage {
     #
     $single_student_mode = 0;
     $single_student_mode = 1 if ($ENV{'form.SelectedStudent'});
-    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
-                                            ['selectstudent']);
     if ($ENV{'form.selectstudent'}) {
         &Apache::lonstatistics::DisplayClasslist($r);
         return;
@@ -787,22 +785,20 @@ sub StudentAverageTotal {
         $total_ave += $ave;
         my $max = $Statistics->{$seq->{'symb'}}->{'max'};
         $total_max += $max;
-        if ($ave == 0) {
-            $ave = "0.00";
-        }
-        $ave .= ' ';
-        $max .= '   ';
+        $ave = sprintf("%.2f",$ave);
         $Str .= '<tr><td>'.$seq->{'title'}.'</td>'.
-            '<td align="right">'.$ave.'</td>'.
-                '<td align="right">'.$max.'</td></tr>'."\n";
+            '<td align="right">'.$ave.'&nbsp;</td>'.
+            '<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 border=2 cellspacing="1">'."\n";
     $Str .= '<tr><th>Number of Students</th><th>Average</th>'.
         "<th>Maximum</th></tr>\n";
-    $Str .= '<tr><td>'.($num_students-$nodata_count).'</td>'.
-        '<td>'.$total_ave.'</td><td>'.$total_max.'</td>';
+    $Str .= '<tr>'.
+        '<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";
     return $Str;
 }
@@ -1018,13 +1014,9 @@ END
                 ($rows_output,$cols_output);
             $seq->{'Excel:startcol'}=$cols_output;
             # Put the names of the problems and parts into the sheet
+            my $count = 0;
             foreach my $res (@{$seq->{'contents'}}) {
-                if ($res->{'type'} ne 'assessment'  || 
-                    ! exists($res->{'parts'})       ||
-                    ref($res->{'parts'}) ne 'ARRAY' ||
-                    scalar(@{$res->{'parts'}}) < 1) {
-                    next;
-                }
+                next if ($res->{'type'} ne 'assessment');
                 if (scalar(@{$res->{'parts'}}) > 1) {
                     foreach my $part (@{$res->{'parts'}}) {
                         $excel_sheet->write($rows_output,
@@ -1036,12 +1028,17 @@ END
                                         $cols_output++,
                                         $res->{'title'});
                 }
+                $count++;
             }
             # Determine ending cell
-            $seq->{'Excel:endcell'} = 
+            if ($count == 1) {
+                $seq->{'Excel:endcell'} = $seq->{'Excel:startcell'};
+                $seq->{'Excel:endcol'}  = $seq->{'Excel:startcol'};
+            } else {
                 &Spreadsheet::WriteExcel::Utility::xl_rowcol_to_cell
-                                             ($rows_output,$cols_output-1);
-            $seq->{'Excel:endcol'}=$cols_output-1;
+                    ($rows_output,$cols_output-1);
+                $seq->{'Excel:endcol'} = $cols_output-1;
+            }
             # Create the formula for summing up this sequence
             $seq->{'Excel:sum'}= $excel_sheet->store_formula
                                         ('=SUM('.$seq->{'Excel:startcell'}.