emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] How to calculate sum of property in tree?


From: Rainer Hansen
Subject: Re: [O] How to calculate sum of property in tree?
Date: Sun, 24 Apr 2016 11:11:14 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)

> 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 <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]