--- loncom/interface/Attic/lonspreadsheet.pm 2000/12/19 15:40:08 1.19 +++ loncom/interface/Attic/lonspreadsheet.pm 2000/12/30 17:13:54 1.20 @@ -2,7 +2,7 @@ # Spreadsheet/Grades Display Handler # # 11/11,11/15,11/27,12/04,12/05,12/06,12/07, -# 12/08,12/09,12/11,12/12,12/15,12/16,12/18,12/19 Gerd Kortemeyer +# 12/08,12/09,12/11,12/12,12/15,12/16,12/18,12/19,12/30 Gerd Kortemeyer package Apache::lonspreadsheet; @@ -267,7 +267,26 @@ sub sett { $pattern='[A-Z]'; } map { - if ($f{$_}) { + if ($_=~/template\_(\w)/) { + my $col=$1; + unless ($col=~/^$pattern/) { + map { + if ($_=~/A(\d+)/) { + my $trow=$1; + if ($trow) { + my $lb=$col.$trow; + $t{$lb}=$f{'template_'.$col}; + $t{$lb}=~s/\#/$trow/g; + $t{$lb}=~s/\.\.+/\,/g; + $t{$lb}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$v\{\'$2\'\}/g; + } + } + } keys %f; + } + } + } keys %f; + map { + if (($f{$_}) && ($_!~/template\_/)) { if ($_=~/^$pattern/) { unless ($f{$_}=~/^\!/) { $t{$_}=$c{$_}; @@ -563,6 +582,10 @@ sub readsheet { $f{$token->[2]->{'col'}.$token->[2]->{'row'}}= $parser->get_text('/field'); } + if ($token->[1] eq 'template') { + $f{'template_'.$token->[2]->{'col'}}= + $parser->get_text('/template'); + } } } &setfilename($safeeval,'default_'.&gettype($safeeval)); @@ -584,6 +607,7 @@ sub readsheet { &Apache::lonnet::unescape($value); } split(/\&/,$spreadsheets{$fn}); } + &setformulas($safeeval,%f); }