From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bernt Hansen Subject: Re: Clocktable from multiple files? Date: Thu, 13 Sep 2007 11:05:15 -0400 Message-ID: <87d4wmli6s.fsf@gollum.intra.norang.ca> References: <05bd06e8cce5d8c8ccdddeebf980da98@science.uva.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IVqG0-0003t4-1p for emacs-orgmode@gnu.org; Thu, 13 Sep 2007 11:05:28 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IVqFy-0003ss-Bo for emacs-orgmode@gnu.org; Thu, 13 Sep 2007 11:05:26 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IVqFy-0003sp-8c for emacs-orgmode@gnu.org; Thu, 13 Sep 2007 11:05:26 -0400 Received: from outbound.mailhop.org ([63.208.196.171]) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1IVqFx-0002ox-Pk for emacs-orgmode@gnu.org; Thu, 13 Sep 2007 11:05:25 -0400 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: "Jason F. McBrayer" Cc: emacs-orgmode@gnu.org jmcbray@carcosa.net (Jason F. McBrayer) writes: > I think accumulating CLOCK entries in the outline is The Right Thing. > It keeps the times with the tasks, and so forth, and clocking in and out > of tasks is really convenient. What we're lacking right now are > flexible-enough ways of dealing with the information those entries > represent. Right now, the clock table does everything I really need to > do, but not everything I would like to be able to do. > > Here are some things that any future org-clock.el or similar ought to > be able to handle: > > 1. Including CLOCK entries from all org-agenda-files in its summaries > 2. Including CLOCK entries from archive files associated with files used > to construct its summaries. Right now I can't archive completed > projects because of the need to include them and their tasks in > monthly reports, for example. > 3. Conversely, limiting summaries to only a subtree (having a clock > table per project, for example). I don't need this right now, but > someone consulting or freelancing for several clients probably would. > Here's how I'm currently using org-mode. Maybe this will be useful to someone. Most of how I am currently working with org-mode was inspired by John Wiegley's article that Carsten posted on the list recently. Thanks to both of you for a great tool I use everyday! I'm a consultant that bills by project and time. I used to have lots of org files (one per client) but that was too hard to deal with. I wasn't using archiving effectively and the files were getting too large. I now have a single todo.org which has all my current tasks in it. This file is copiously sprinkled with #+ARCHIVE: and #+CATEGORY: lines for organization. My org file looks like this: (new tasks are entered with Remember and go in * Tasks at the top) ,----[ todo.org ] | * Tasks | * Timelog | #+BEGIN: clocktable :maxlevel 2 :emphasize t :block today | #+END: | | * CLIENT1 - Timelog | #+BEGIN: clocktable :maxlevel 4 :emphasize t :block thismonth | #+END: | * CLIENT1 - Project 1 | #+ARCHIVE: client1.org_archive::* Project 1 | #+CATEGORY: client1 | | * CLIENT2 - Timelog | #+BEGIN: clocktable :maxlevel 2 :emphasize t :block thismonth | #+END: | * CLIENT2 - Project 1 | #+ARCHIVE: client2.org_archive::* Project 1 | #+CATEGORY: client2 | * CLIENT2 - Project 2 | #+ARCHIVE: client2.org_archive::* Project 2 | #+CATEGORY: client2 | ... | * CLIENT2 - Project n | #+ARCHIVE: client2.org_archive::* Project n | #+CATEGORY: client2 | | * Anniversaries and Holidays | #+ARCHIVE: %s_archive::* Anniversaries and Holidays | #+CATEGORY: Holiday | * Appointments | * Other Personal Tasks | ... `---- Running the clock summary (C-c C-x C-r) updates the first * Timelog entry which gives me a summary for today for everything. When I want summaries for CLIENT1 I collapse the buffer to level 1 tasks only, select a region including the * CLIENT1 - Timelog and all following CLIENT1 tasks then use narrow-to-region to show only those tasks. Now updating the clock table updates the * CLIENT1 - Timelog table which gives me a view of this month. I usually always look at month ranges for clients for billing (either this month or last month) but different clients need different maxlevel settings based on the detail required for reporting. The widen function restores the original view with all tasks. I find I use narrow-to-region and widen alot so I've bound them to C-M-F9 and C-M-F10 respectively. Keeping the * Timelog tasks for each client means I don't have to manually create them every month to report on the same thing as last time. I archive all CLIENT1 tasks into a single archive file. CLIENT2 has a different archive file. Non-client tasks are archived into the catchall todo.org_archive file. I have a * Timelog entry in the client archive files which reports on last month so I can quickly check that I didn't accidentally move some clock times from todo.org when I do my billing. When my billing cycle is complete at the end of the month I archive all eligible tasks then start timing tasks for the next month. This works great for me. -Bernt