Olaf Dietsche <olaf+list.orgm...@olafdietsche.de> writes: > Rasmus <ras...@gmx.us> writes: > >> That was my plan if I was not able to do from within Org. To me it would >> be a lot faster than hacking something together in emacs-lisp, >> unfortunately. > > If you insist on elisp, maybe something along these (untested) lines > might work: > > ---8<--- cut here --- [buggy code] > --- cut here --->8---
I finally came around and tested the code, but unfortunately it doesn't work as expected. Here is another version: ---8<--- cut here --- (defun collect-clock-lines () (let ((re (concat "^[ \t]*" org-clock-string "[ \t]+\\(.+?\\)[ \t]+=>[ \t]+\\(.+\\)")) (headline (nth 4 (org-heading-components))) clocks) (org-narrow-to-subtree) (while (re-search-forward re nil t) (setq clocks (concat clocks (format "| %s | %s | %s |\n" (match-string 1) headline (match-string 2))))) (widen) clocks)) (defun summarize-clocks () (interactive) (insert "| date | headline | total |\n|-----+----+----|\n") (let ((headings (org-map-entries 'collect-clock-lines nil 'file))) (mapc (lambda (clocks) (mapc (lambda (line) (insert line)) clocks)) headings))) --- cut here --->8--- This version works a little bit better, but has its own drawbacks. Anyway, it's a start and I don't want to take all the fun away. ;-) Regards, Olaf