From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Davison Subject: Re: Babel: help with tables and code blocks? Date: Sun, 08 Aug 2010 18:38:51 -0400 Message-ID: <87k4o0d91g.fsf@stats.ox.ac.uk> References: <878w4hcyzz.fsf@bunting.net.au> <87r5i8dhlh.fsf@stats.ox.ac.uk> <8762zkd9wl.fsf@bunting.net.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from [140.186.70.92] (port=40713 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OiEWD-0003dp-OR for emacs-orgmode@gnu.org; Sun, 08 Aug 2010 18:39:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OiEWC-0001cR-CX for emacs-orgmode@gnu.org; Sun, 08 Aug 2010 18:39:01 -0400 Received: from markov.stats.ox.ac.uk ([163.1.210.1]:57489) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OiEWC-0001cD-50 for emacs-orgmode@gnu.org; Sun, 08 Aug 2010 18:39:00 -0400 In-Reply-To: <8762zkd9wl.fsf@bunting.net.au> (Bart Bunting's message of "Mon, 09 Aug 2010 08:20:10 +1000") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Bart Bunting Cc: emacs-orgmode@gnu.org Bart Bunting writes: > On Sun, 08 Aug 2010 15:34:02 -0400, Dan Davison 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. It's documented in the original Worg pages here http://orgmode.org/worg/org-contrib/babel/intro.php#spreadsheet but you're right, it looks like that information is completely lacking from the manual. I've added it as a babel development TODO. Thanks for pointing that out, Dan > > Thanks again. > > Bart > > >> Bart Bunting 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