Diff for /loncom/interface/Attic/lonspreadsheet.pm between versions 1.7 and 1.9

version 1.7, 2000/12/06 23:23:38 version 1.9, 2000/12/08 17:16:37
Line 1 Line 1
 # The LearningOnline Network with CAPA  # The LearningOnline Network with CAPA
 # Spreadsheet/Grades Display Handler  # Spreadsheet/Grades Display Handler
 #  #
 # 11/11,11/15,11/27,12/04,12/05,12/06 Gerd Kortemeyer  # 11/11,11/15,11/27,12/04,12/05,12/06,12/07,12/08 Gerd Kortemeyer
   
 package Apache::lonspreadsheet;  package Apache::lonspreadsheet;
   
Line 399  sub getfilename { Line 399  sub getfilename {
   
 sub rown {  sub rown {
     my ($safeeval,$n)=@_;      my ($safeeval,$n)=@_;
       my $defaultbg=((($n-1)/5)==int(($n-1)/5))?'#E0E0':'#FFFF';
     my $rowdata="\n<tr><td><b><font size=+1>$n</font></b></td>";      my $rowdata="\n<tr><td><b><font size=+1>$n</font></b></td>";
     my $showf=0;      my $showf=0;
     map {      map {
          my $bgcolor=$defaultbg.((($showf-1)/5==int(($showf-1)/5))?'99':'DD');
        my ($fm,$vl)=split(/\_\_\_eq\_\_\_/,$_);         my ($fm,$vl)=split(/\_\_\_eq\_\_\_/,$_);
        if ($showf==0) { $vl=$_; }         if ($showf==0) { $vl=$_; }
          if ($showf<=1) { $bgcolor='#FFDDDD'; }
          if (($n==0) && ($showf<=26)) { $bgcolor='#CCCCFF'; } 
        if ($showf>1) {         if ($showf>1) {
    if ($vl eq '') {     if ($vl eq '') {
        $vl='<font size=+2 color=white>&#35;</font>';         $vl='<font size=+2 color='.$bgcolor.'>&#35;</font>';
            }             }
            $rowdata.=             $rowdata.=
            '<td><a href="javascript:prompt('.$fm.');">'.$vl.          '<td bgcolor='.$bgcolor.'><a href="javascript:prompt('.$fm.');">'.$vl.
        '</a></td>';         '</a></td>';
        } else {         } else {
            $rowdata.='<td>&nbsp;'.$vl.'&nbsp;</td>';             $rowdata.='<td bgcolor='.$bgcolor.'>&nbsp;'.$vl.'&nbsp;</td>';
        }         }
        $showf++;         $showf++;
     } $safeeval->reval('&outrow('.$n.')');      } $safeeval->reval('&outrow('.$n.')');
Line 423  sub rown { Line 427  sub rown {
   
 sub outsheet {  sub outsheet {
     my $safeeval=shift;      my $safeeval=shift;
     my $tabledata='<table border=2><tr><td colspan=2>&nbsp;</td>';      my $tabledata='<table border=2><tr><td colspan=2>&nbsp;</td>'.
                     '<td bgcolor=#FFDDDD><b>A Import</b></td>';
     map {      map {
         $tabledata.="<td><b><font size=+1>$_</font></b></td>";          $tabledata.="<td><b><font size=+1>$_</font></b></td>";
     } ('A<br>Import','B','C','D','E','F','G','H','I','J','K','L','M',      } ('B','C','D','E','F','G','H','I','J','K','L','M',
        'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',         'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
        'a','b','c','d','e','f','g','h','i','j','k','l','m',         'a','b','c','d','e','f','g','h','i','j','k','l','m',
        'n','o','p','q','r','s','t','u','v','w','x','y','z');         'n','o','p','q','r','s','t','u','v','w','x','y','z');
Line 444  sub outsheet { Line 449  sub outsheet {
 # --------------------------------------- Read spreadsheet formulas from a file  # --------------------------------------- Read spreadsheet formulas from a file
   
 sub readsheet {  sub readsheet {
     my ($safeeval,$fn)=shift;      my ($safeeval,$fn)=@_;
     &setfilename($safeeval,$fn);      &setfilename($safeeval,$fn);
     $fn=~/\.(\w+)/;      $fn=~/\.(\w+)/;
     &settype($safeeval,$1);      &settype($safeeval,$1);
     my %f=();      my %f=();
     my $content;      my $content='';
     {      {
       my $fh=Apache::File->new($fn);        my $fh;
       $content=join('',<$fh>);        if ($fh=Apache::File->new($fn)) {
            $content=join('',<$fh>);
         }
     }      }
     {      {
       my $parser=HTML::TokeParser->new(\$content);        my $parser=HTML::TokeParser->new(\$content);
Line 523  sub updaterows { Line 530  sub updaterows {
     '___'.$resid.'___'.      '___'.$resid.'___'.
     &Apache::lonnet::declutter($srcf);      &Apache::lonnet::declutter($srcf);
  $allassess{$symb}=$bighash{'title_'.$id};   $allassess{$symb}=$bighash{'title_'.$id};
   
                  if ($stype eq 'assesscalc') {                   if ($stype eq 'assesscalc') {
                    map {                     map {
                        if ($_=~/^stores\_(.*)/) {                         if ($_=~/^stores\_(.*)/) {
Line 533  sub updaterows { Line 541  sub updaterows {
                               $display=                                $display=
          &Apache::lonnet::metadata($srcf,$key.'.name');           &Apache::lonnet::metadata($srcf,$key.'.name');
                           }                            }
   
   
                           $allkeys{$key}=$display;                            $allkeys{$key}=$display;
        }         }
                    } split(/\,/,&Apache::lonnet::metadata($srcf,'keys'));                     } split(/\,/,&Apache::lonnet::metadata($srcf,'keys'));
Line 647  sub handler { Line 657  sub handler {
     $r->print('<body bgcolor="#FFFFFF">');      $r->print('<body bgcolor="#FFFFFF">');
     
     my $sheetone=initsheet();      my $sheetone=initsheet();
     &setformulas($sheetone,      &readsheet($sheetone,$r->filename);
    'B3' => 5, 'C4' => 6, 'C6' => 'B3+C4', 'C2' => 'C6+B5', 'B5'=>'&SUM("A*")',      &updaterows($sheetone);
    'A1' => 'da1', 'A2'=>'da2', 'A3'=>'da3','A4'=>'da4','A5'=>'da5','A6'=>'da6',  
    'a1' => '28.7', 'a2' => 'C4+a1','G1'=>'&SUM("*25")');  
     &setrowlabels($sheetone,  
    'da1'=>'A Points','da2'=>'B Points','da3'=>'C Points',  
    'da4'=>'Percentage Correct','da5'=>'Bonus Points','da6'=>'Points Awarded');  
     &setconstants($sheetone,  
    'A1' => '3', 'A2'=>'4', 'A3'=>'0','A4'=>'76','A5'=>'1.5','A6'=>'6');  
      
     &setmaxrow($sheetone,6);  
     &calcsheet($sheetone);      &calcsheet($sheetone);
     $r->print(&outsheet($sheetone));      $r->print(&outsheet($sheetone));
   
     $r->print('</body></html>');      $r->print('</body></html>');
   
   } else {    } else {

Removed from v.1.7  
changed lines
  Added in v.1.9


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