Paul,
Paul Michael Reilly wrote:
I am in the throes of setting up an Org mode spreadsheet for an
invoicing/status/planning tool and came across this fabulous thread: *[O]
org table calc and lisp for hh:mm
timetablehttp://lists.gnu.org/archive/html/emacs-orgmode/2011-03/msg00972.html
*at
http://lists.gnu.org/archive/html/emacs-orgmode/2011-03/msg00972.htmlwhich
provided me much of what I need. So thanks to all involved for that
excellent piece of work.
The one problem I am having trouble grasping is in how to use Emacs Lisp to
generate a range of values automagically. I have no trouble with a single
cell using Lisp and passing in a rectangular region to process or in
setting up a region using the Org table/spreadsheet/calc support described
in the various Google accessible documentation.
What I am trying to do at a high level is setup a table with rows of
actions spanning a start and stop time. Each action row has a bill-to
category column. In the table, as part of a Lisp based formula, I want to
process these action rows and build a list of bill-to : total time
summary values and then place these summaries in a range in the table, so a
fragment of the table might look like:
... | Client1 | Client2 | Commute | ...
... | 12.50 | 22.00 | 10.5| ...
where the numbers (hours) have been summed by filtering the task rows by
clients. Hope that's clear.
So there are essentially two issues for me: the first is understanding how
to associate a range destination for a Lisp based formula result, which I
think can be done, I just do not understand how to do it yet, and second,
probably an enhancement request, is to figure out how to pass a list of
cell addresses to a List form (along with other data) and have the form
compute and store values to those cells. The latter would a sort of holy
grail, at least for me.
I won't answer your post, but will present you what I'm doing, as I'm using
Org for billing my clients.
How I do is:
- Clock my time in the client file
- Generate a dynamic block for each client file
Quite easy. So, this is just to show you an alternative, in case you did
overlook that.
Best regards,
Seb
--
Sebastien Vauban