From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rainer Hansen Subject: Re: How to calculate sum of property in tree? Date: Sun, 24 Apr 2016 11:11:14 +0200 Message-ID: <87inz7jrrh.fsf@gmx.net> References: <87a8kkaddh.fsf@gmx.net> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:56671) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1auG4e-0005K8-Vq for emacs-orgmode@gnu.org; Sun, 24 Apr 2016 05:11:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1auG4a-0001E2-08 for emacs-orgmode@gnu.org; Sun, 24 Apr 2016 05:11:28 -0400 Received: from plane.gmane.org ([80.91.229.3]:37229) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1auG4Z-0001Dw-Pa for emacs-orgmode@gnu.org; Sun, 24 Apr 2016 05:11:23 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1auG4Y-0002Ti-0q for emacs-orgmode@gnu.org; Sun, 24 Apr 2016 11:11:22 +0200 Received: from xdsl-87-78-230-108.netcologne.de ([87.78.230.108]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 24 Apr 2016 11:11:22 +0200 Received: from rainer.hansen by xdsl-87-78-230-108.netcologne.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Sun, 24 Apr 2016 11:11:22 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org > Hi, > > I would like Emacs to calculate the price for the travel cost > (21.90). This should be calculated as sum of the values of the property > "Price" in the elements of the tree. How do I do that in Emacs Lisp? I found one way to do it. I defined the COLUMNS property with %Price{+}, i.e. sum numbers in column 'Price and format result with `%.2f' (always two decimals after point). After that I added the property 'Price' and, while cursor on 'Price', with `C-c C-c (`org-property-action')' and choosing option c (compute) the value of 'Price' got calculated. I added the same inline Emacs Lisp expression to the headline to include the result (21.90) in the headline. -------8<----------------8<------------- * Travel cost -- src_emacs-lisp{(org-entry-get (point) "Price")} EUR :PROPERTIES: :COLUMNS: %Price{+;%.2f} :Price: 21.90 :END: ** Train Eusirchen -- Bonn, src_emacs-lisp{(org-entry-get (point) "Price")} EUR :PROPERTIES: :Price: 7.70 :END: ** Bus Euskirchen -- Stotzheim, src_emacs-lisp{(org-entry-get (point) "Price")} EUR :PROPERTIES: :Price: 2.40 :END: ** Taxi Bonn, src_emacs-lisp{(org-entry-get (point) "Price")} EUR :PROPERTIES: :Price: 11.80 :END: -------8<----------------8<------------- Any ideas on how to improve that solution? Rainer Hansen writes: > > ---------------------------------------------- > * Travel cost -- 21.90 EUR > > ** Train Eusirchen -- Bonn, src_emacs-lisp{(org-entry-get (point) "Price")} EUR > :PROPERTIES: > :Price: 7.70 > :END: > ** Bus Euskirchen -- Stotzheim, src_emacs-lisp{(org-entry-get (point) "Price")} EUR > :PROPERTIES: > :Price: 2.40 > :END: > > ** Taxi Bonn, src_emacs-lisp{(org-entry-get (point) "Price")} EUR > :PROPERTIES: > :Price: 11.80 > :END: > ---------------------------------------------- > > Thanks! > > Rainer