[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