On Sun, 08 Aug 2010 15:34:02 -0400, Dan Davison <davi...@stats.ox.ac.uk> wrote: Dan,
Thank you very much for that explanation! This makes the whole thing much clearer. Do you know where the sbe call is documented in the manual? I couldn't find it my self. Thanks again. Bart > Bart Bunting <b...@bunting.net.au> writes: > > > Hi everyone, > > > > I'm trying to get my head around babel and getting info back into a > > table. > > > > The below org file tracks expenses and the perl code simply sums them > > up. > > > > The code is working but I now want to get the total back into another > > table. What I have is not > > working can someone tell me what I'm doing wrong here? > > > > Cheers > > > > Bart > > > > * Expenses > > > > #+tblname: expenses > > |------------+-----------------------------------+--------| > > | Date | What | Amount | > > |------------+-----------------------------------+--------| > > | 2010-07-26 | Breakfast | 5 | > > | 2010-07-26 | groceries | 8.5 | > > | 2010-07-26 | butchers - chicken | 5.5 | > > | 2010-07-27 | umart - video card, kvm, speakers | 136 | > > > > * Code > > > > #+srcname: totals > > #+begin_src perl :var details=expenses[1:-1] > > my $total = 0; > > foreach my $row (@$details) { > > $total += @$row[2]; > > } > > > > return $total; > > #+end_src > > > > #+results: totals > > : 155 > > > > > > > > * Totals > > > > | Total | #ERROR | > > #+TBLFM: $2=#+call: totals(details=expenses) > > Hi Bart, > > You've mixed up #+call and sbe there. sbe is what you want to use in a > table formula; #+call and #+lob are for standalone lines. Here are a few > examples of different ways to do what you're doing. Hopefully they make > things clear. > > Dan > > --8<---------------cut here---------------start------------->8--- > > * Totals > ** Using a table formula > > *** Relying on default argument to totals block > | Total | 155 | > #+TBLFM: $2='(sbe "totals") > > *** Providing argument explicitly > > The dots are a bug. We'll fix it. > > **** version 1 > | Total | 155... | > #+TBLFM: $2='(sbe "totals(details=expenses[1:-1])") > > **** version 2 > | Total | 155... | > #+TBLFM: $2='(sbe "totals" (details "expenses[1:-1]")) > > > ** Using call/lob > > #+call and #+lob are synonyms > > *** Relying on default argument to totals block > > #+call: totals() > > #+results: totals() > : 155 > > or equivalently (it outputs into the same results block): > > #+lob: totals() > > *** Providing argument explicitly > #+call: totals(details=expenses[1:-1]) > > #+results: totals(details=expenses[1:-1]) > : 155 > > --8<---------------cut here---------------end--------------->8--- > > > > > > > > _______________________________________________ > > Emacs-orgmode mailing list > > Please use `Reply All' to send replies to the list. > > Emacs-orgmode@gnu.org > > http://lists.gnu.org/mailman/listinfo/emacs-orgmode -- Bart Bunting URSYS Pty. Ltd 13 Burwood Rd. Burwood NSW 2134 Australia Ph. +61 2 8745 2811 Fax +61 2 8745 2828 _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode