我正在寻找一种方法来使用org-mode议程文件中的时间跟踪信息来构建时间表。将指示在不同任务中花费的时间,按标签分组并限制在给定的时间范围内,有点像时钟表动态块,但按标签而不是文件/类别/标题分组。
例如,如果我的议程包含以下数据(可能分散在不同的文件中):
* TODO project 1
** TODO task 1 :tag1:
:LOGBOOK:
CLOCK: [2013-06-27 Thu 18:00]--[2013-06-27 Thu 19:04] => 1:04
CLOCK: [2013-06-26 Wed 17:00]--[2013-06-26 Wed 17:32] => 0:32
:END:
** TODO task 2 :tag2:
:LOGBOOK:
CLOCK: [2013-06-27 Thu 17:00]--[2013-06-27 Thu 18:00] => 1:00
CLOCK: [2013-06-27 Thu 15:00]--[2013-06-27 Thu 15:50] => 0:50
:END:
* TODO project 2 :tag2:
:LOGBOOK:
CLOCK: [2013-06-27 Thu 19:04]--[2013-06-27 Thu 21:00] => 1:56
CLOCK: [2013-06-27 Thu 15:50]--[2013-06-27 Thu 17:00] => 1:10
:END:
我想得到这样的结果:
#+BEGIN: clocktable-by-tag :maxlevel 2 :tags ("p1" "p2") :tstart "2013-06-27" :tend "2013-06-28"
| Tag | Headline | Time | |
|------+-----------------+--------+------|
| tag1 | *Tag time* | *1:04* | |
| | TODO project 1 | 1:04 | |
| | \__ TODO task 1 | | 1:04 |
|------+-----------------+--------+------|
| tag2 | *Tag time* | *4:56* | |
| | TODO project 1 | 1:50 | |
| | \__ TODO task 2 | | 1:50 |
| | TODO project 2 | 3:06 | |
#+END:
有没有标准的方法来组织这个?如果没有,我正在考虑循环使用议程文件和标签,使用org-get-table-data
来收集时钟信息;会不会有另一种更有效的做事方式?
答案 0 :(得分:10)
以下是我的观点:https://gist.github.com/ffevotte/5899058
它没有得到很好的优化,但似乎完成了工作并且应该支持大多数clocktable
动态块参数。
我的真实组织议程文件中的示例(匿名)输出:
#+BEGIN: clocktable-by-tag :tags ("p_f3c" "p_sc") :tstart "2013-01-01" :tend "2013-05-19" :maxlevel 2
| Tag | Headline | Time (h) | | |
| | | <r> | | |
|-------+------------------------------+----------+-------+------|
| p_f3c | *Tag time* | *18.42* | | |
| | File *xxx.org* | 18.42 | | |
| | . xxxxxxxxxxxxxxxxxxx | | 13.03 | |
| | . \__ xxxxxxxxxxxxx | | | 7.78 |
| | . \__ xxxxxxxxxxxxxxxxxxxxx | | | 3.98 |
| | . xxxxxxxxxxxxxxxxxx | | 5.38 | |
| | . \__ xxxxxxxxxxxxxxx | | | 5.38 |
|-------+------------------------------+----------+-------+------|
| p_sc | *Tag time* | *18.90* | | |
| | File *yyyy.org* | 4.42 | | |
| | . xxxxxxxxxxxxxxxxxxxxxx | | 2.83 | |
| | . xxxxxxxxxxxxxxxxxx | | 1.58 | |
| | . \__ xxxxxxxxxxxxxxxxxxxxxx | | | 1.58 |
| | File *todo.org* | 14.48 | | |
| | . xxxxxxxxxxxxxxxx | | 14.48 | |
| | . \__ xxxxxxxxxxx | | | 2.00 |
| | . \__ xxxxxxxxxxxxx | | | 8.48 |
| | . \__ xxxxx | | | 4.00 |
#+END: