version 1.85, 2002/04/11 14:16:32
|
version 1.93, 2002/07/04 17:51:32
|
Line 740 sub expandnamed {
|
Line 740 sub expandnamed {
|
return 0; |
return 0; |
} |
} |
} else { |
} else { |
return '$c{\''.$expression.'\'}'; |
# it is not a function, so it is a parameter name |
|
# We should do the following: |
|
# 1. Take the list of parameter names |
|
# 2. look through the list for ones that match the parameter we want |
|
# 3. If there are no collisions, return the one that matches |
|
# 4. If there is a collision, return 'bad parameter name error' |
|
my $returnvalue = ''; |
|
my @matches = (); |
|
$#matches = -1; |
|
study $expression; |
|
foreach $parameter (keys(%c)) { |
|
push @matches,$parameter if ($parameter =~ /$expression/); |
|
} |
|
if ($#matches == 0) { |
|
$returnvalue = '$c{\''.$matches[0].'\'}'; |
|
} else { |
|
$returnvalue = "'bad parameter name : $expression'"; |
|
} |
|
return $returnvalue; |
} |
} |
} |
} |
|
|
Line 760 sub sett {
|
Line 778 sub sett {
|
if ($_=~/A(\d+)/) { |
if ($_=~/A(\d+)/) { |
my $trow=$1; |
my $trow=$1; |
if ($trow) { |
if ($trow) { |
|
# Get the name of this cell |
my $lb=$col.$trow; |
my $lb=$col.$trow; |
|
# Grab the template declaration |
$t{$lb}=$f{'template_'.$col}; |
$t{$lb}=$f{'template_'.$col}; |
|
# Replace '#' with the row number |
$t{$lb}=~s/\#/$trow/g; |
$t{$lb}=~s/\#/$trow/g; |
|
# Replace '....' with ',' |
$t{$lb}=~s/\.\.+/\,/g; |
$t{$lb}=~s/\.\.+/\,/g; |
|
# Replace 'A0' with the value from 'A0' |
$t{$lb}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$v\{\'$2\'\}/g; |
$t{$lb}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$v\{\'$2\'\}/g; |
|
# Replace parameters |
$t{$lb}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.&expandnamed($2)/ge; |
$t{$lb}=~s/(^|[^\"\'])\[([^\]]+)\]/$1.&expandnamed($2)/ge; |
} |
} |
} |
} |
Line 787 sub sett {
|
Line 811 sub sett {
|
} |
} |
} |
} |
} |
} |
|
# For some reason 'A0' gets special treatment... This seems superfluous |
|
# but I imagine it is here for a reason. |
$t{'A0'}=$f{'A0'}; |
$t{'A0'}=$f{'A0'}; |
$t{'A0'}=~s/\.\.+/\,/g; |
$t{'A0'}=~s/\.\.+/\,/g; |
$t{'A0'}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$v\{\'$2\'\}/g; |
$t{'A0'}=~s/(^|[^\"\'])([A-Za-z]\d+)/$1\$v\{\'$2\'\}/g; |
Line 837 sub outrowassess {
|
Line 863 sub outrowassess {
|
my @cols=(); |
my @cols=(); |
if ($n) { |
if ($n) { |
my ($usy,$ufn)=split(/\_\_\&\&\&\_\_/,$f{'A'.$n}); |
my ($usy,$ufn)=split(/\_\_\&\&\&\_\_/,$f{'A'.$n}); |
|
if ($rl{$usy}) { |
$cols[0]=$rl{$usy}.'<br>'. |
$cols[0]=$rl{$usy}.'<br>'. |
'<select name="sel_'.$n.'" onChange="changesheet('.$n. |
'<select name="sel_'.$n.'" onChange="changesheet('.$n. |
')"><option name="default">Default</option>'; |
')"><option name="default">Default</option>'; |
|
} else { $cols[0]=''; } |
foreach (@os) { |
foreach (@os) { |
$cols[0].='<option name="'.$_.'"'; |
$cols[0].='<option name="'.$_.'"'; |
if ($ufn eq $_) { |
if ($ufn eq $_) { |
Line 1284 sub readsheet {
|
Line 1312 sub readsheet {
|
} else { |
} else { |
$fn = $tmphash{'spreadsheet_default_'.$stype}; |
$fn = $tmphash{'spreadsheet_default_'.$stype}; |
} |
} |
|
unless (($fn) && ($fn!~/^error\:/)) { |
|
$fn='default_'.$stype; |
|
} |
$defaultsheets{$cnum.'_'.$cdom.'_'.$stype}=$fn; |
$defaultsheets{$cnum.'_'.$cdom.'_'.$stype}=$fn; |
} |
} |
} |
} |
Line 1437 sub tmpread {
|
Line 1468 sub tmpread {
|
$fn=$tmpdir.$fn.'.tmp'; |
$fn=$tmpdir.$fn.'.tmp'; |
my $fh; |
my $fh; |
my %fo=(); |
my %fo=(); |
|
my $countrows=0; |
if ($fh=Apache::File->new($fn)) { |
if ($fh=Apache::File->new($fn)) { |
my $name; |
my $name; |
while ($name=<$fh>) { |
while ($name=<$fh>) { |
Line 1444 sub tmpread {
|
Line 1476 sub tmpread {
|
my $value=<$fh>; |
my $value=<$fh>; |
chomp($value); |
chomp($value); |
$fo{$name}=$value; |
$fo{$name}=$value; |
|
if ($name=~/^A(\d+)$/) { |
|
if ($1>$countrows) { |
|
$countrows=$1; |
|
} |
|
} |
} |
} |
} |
} |
if ($nform eq 'changesheet') { |
if ($nform eq 'changesheet') { |
Line 1451 sub tmpread {
|
Line 1488 sub tmpread {
|
unless ($ENV{'form.sel_'.$nfield} eq 'Default') { |
unless ($ENV{'form.sel_'.$nfield} eq 'Default') { |
$fo{'A'.$nfield}.='__&&&__'.$ENV{'form.sel_'.$nfield}; |
$fo{'A'.$nfield}.='__&&&__'.$ENV{'form.sel_'.$nfield}; |
} |
} |
|
} elsif ($nfield eq 'insertrow') { |
|
$countrows++; |
|
if ($nform eq 'top') { |
|
$fo{'A'.$countrows}='AAAAA_'.$countrows; |
|
} else { |
|
$fo{'A'.$countrows}='zzzzz_'.$countrows; |
|
} |
} else { |
} else { |
if ($nfield) { $fo{$nfield}=$nform; } |
if ($nfield) { $fo{$nfield}=$nform; } |
} |
} |
Line 2371 $tmpdir=$r->dir_config('lonDaemons').'/t
|
Line 2415 $tmpdir=$r->dir_config('lonDaemons').'/t
|
|
|
# --------------------------- Get query string for limited number of parameters |
# --------------------------- Get query string for limited number of parameters |
|
|
foreach (split(/&/,$ENV{'QUERY_STRING'})) { |
&Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'}, |
my ($name, $value) = split(/=/,$_); |
['uname','udom','usymb','ufn']); |
$value =~ tr/+/ /; |
|
$value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C",hex($1))/eg; |
|
if (($name eq 'uname') || ($name eq 'udom') || |
|
($name eq 'usymb') || ($name eq 'ufn')) { |
|
unless ($ENV{'form.'.$name}) { |
|
$ENV{'form.'.$name}=$value; |
|
} |
|
} |
|
} |
|
|
|
if (($ENV{'form.usymb'}=~/^\_(\w+)/) && (!$ENV{'form.ufn'})) { |
if (($ENV{'form.usymb'}=~/^\_(\w+)/) && (!$ENV{'form.ufn'})) { |
$ENV{'form.ufn'}='default_'.$1; |
$ENV{'form.ufn'}='default_'.$1; |
Line 2419 $tmpdir=$r->dir_config('lonDaemons').'/t
|
Line 2454 $tmpdir=$r->dir_config('lonDaemons').'/t
|
|
|
function celledit(cn,cf) { |
function celledit(cn,cf) { |
var cnf=prompt(cn,cf); |
var cnf=prompt(cn,cf); |
if (cnf!=null) { |
if (cnf!=null) { |
document.sheet.unewfield.value=cn; |
document.sheet.unewfield.value=cn; |
document.sheet.unewformula.value=cnf; |
document.sheet.unewformula.value=cnf; |
document.sheet.submit(); |
document.sheet.submit(); |
} |
} |
Line 2432 $tmpdir=$r->dir_config('lonDaemons').'/t
|
Line 2467 $tmpdir=$r->dir_config('lonDaemons').'/t
|
document.sheet.submit(); |
document.sheet.submit(); |
} |
} |
|
|
|
function insertrow(cn) { |
|
document.sheet.unewfield.value='insertrow'; |
|
document.sheet.unewformula.value=cn; |
|
document.sheet.submit(); |
|
} |
|
|
</script> |
</script> |
ENDSCRIPT |
ENDSCRIPT |
$r->print('</head><body bgcolor="#FFFFFF">'. |
$r->print('</head><body bgcolor="#FFFFFF">'. |
Line 2648 ENDSCRIPT
|
Line 2689 ENDSCRIPT
|
} |
} |
} |
} |
$r->print('>'); |
$r->print('>'); |
|
|
if (&gettype($asheet) eq 'classcalc') { |
if (&gettype($asheet) eq 'classcalc') { |
$r->print( |
$r->print( |
' Output CSV format: <input type=checkbox name=showcsv onClick="submit()"'); |
' Output CSV format: <input type=checkbox name=showcsv onClick="submit()"'); |
if ($ENV{'form.showcsv'}) { $r->print(' checked'); } |
if ($ENV{'form.showcsv'}) { $r->print(' checked'); } |
$r->print('>'); |
$r->print('>'); |
} |
} |
|
|
|
# ------------------------------------------------------------------ Insertrows |
|
|
|
$r->print(<<ENDINSERTBUTTONS); |
|
<br> |
|
<input type='button' onClick='insertrow("top");' |
|
value='Insert Row Top'> |
|
<input type='button' onClick='insertrow("bottom");' |
|
value='Insert Row Bottom'><br> |
|
ENDINSERTBUTTONS |
|
|
# ------------------------------------------------------------- Print out sheet |
# ------------------------------------------------------------- Print out sheet |
|
|
&outsheet($r,$asheet); |
&outsheet($r,$asheet); |