forked from mirrors/org-mode
Adam Elliott writes: > I have attached a git patch against master that implements a new > parameter to clock tables, "tags". This parameter is a tags-query as a > string and is used to filter the headlines which are consulted when > building the clock table. > > In my search of the archives to see if this feature already existed, I > found a reference here: > http://article.gmane.org/gmane.emacs.orgmode/17304 > suggesting it was difficult. The patch is not so large, though, so > perhaps I am missing something. > > My rationale in implementing this feature was to keep track of the > occasional task item that is not billable, yet still makes sense to > include in the overall project structure. Of course I could just avoid > clocking the task item, or manually delete clock lines before generating > a report, but this feature reduces the chance for error; no doubt there > are other workflows enabled with this feature as well. I don't make > significant use of tags myself, but I know many do. > > In order to maintain a sensible report, headlines that don't match the > tag filter may be included if they have descendants that do. Any time > clocked directly on non-matching headlines, however, is excluded. > > Specifying even a simple filter noticeably slows down clock table > generation for non-toy reports, particularly for clock table reports > with :step. If there is no filter, though, there is no degradation in > performance. > > Tag filter syntax is the standard one, as described at: > http://orgmode.org/manual/Matching-tags-and-properties.html > Only tags are considered at the moment, although I suspect querying > against all properties would be possible (if even slower). > > Examples: > > * development > CLOCK: => 1:00 > *** task 1 > CLOCK: => 1:00 > *** task 2 :must: > ***** task 2a > CLOCK: => 1:00 > ***** task 2b :mustnot: > CLOCK: => 1:00 > > Note I am using an unconventional but legal(ish) clock format for > brevity. Clock tables are also pruned to only relevant lines. > > [1] #+BEGIN: clocktable > | | *Total time* | *4:00* | | | > |---+--------------+--------+------+------| > | 1 | development | 4:00 | | | > | 2 | task 1 | | 1:00 | | > | 2 | task 2 | | 2:00 | | > | 3 | task 2a | | | 1:00 | > | 3 | task 2b | | | 1:00 | > > [2] #+BEGIN: clocktable :tags "must" > | | *Total time* | *2:00* | | | > |---+--------------+--------+------+------| > | 1 | development | 2:00 | | | > | 2 | task 2 | | 2:00 | | > | 3 | task 2a | | | 1:00 | > | 3 | task 2b | | | 1:00 | > > [3] #+BEGIN: clocktable :tags "-mustnot" > | | *Total time* | *3:00* | | | > |---+--------------+--------+------+------| > | 1 | development | 3:00 | | | > | 2 | task 1 | | 1:00 | | > | 2 | task 2 | | 1:00 | | > | 3 | task 2a | | | 1:00 | > > [4] #+BEGIN: clocktable :tags "must-mustnot" > | | *Total time* | *1:00* | | | > |---+--------------+--------+------+------| > | 1 | development | 1:00 | | | > | 2 | task 2 | | 1:00 | | > | 3 | task 2a | | | 1:00 | > > [5] #+BEGIN: clocktable :tags "must+mustnot" > | | *Total time* | *1:00* | | | > |---+--------------+--------+------+------| > | 1 | development | 1:00 | | | > | 2 | task 2 | | 1:00 | | > | 3 | task 2b | | | 1:00 | > > As you can see, in examples 2, 4, and 5, the time clocked on > "development" itself is being removed. Example 2 illustrates the effect > of tag inheritance. > > Adam |
||
---|---|---|
.. | ||
.aspell.org.conf | ||
.nosearch | ||
ChangeLog | ||
dir | ||
Documentation_Standards.org | ||
org.texi | ||
orgcard.tex | ||
orgcard.txt | ||
pdflayout.sty | ||
texinfo.tex |