org-mode: Wie erstelle ich einen Uhrbericht für die täglich geleisteten Arbeitsstunden?

16

org-clock-reportist großartig; Es wird jedoch die für jede Aufgabe aufgewendete Zeit angegeben. Gibt es einen benutzerdefinierten Befehl, mit dem Sie einen Uhrbericht erstellen, in dem die geleisteten Arbeitsstunden für jeden Tag aufgabenübergreifend aufgeführt sind?

Das Problem, auf das ich gestoßen bin, ist, dass ich meine TODO-Aufnahmen unter einem file+datetreeEintrag ablege . Zum Beispiel könnte eine TODO-Aufgabe an Tag -2 abgelegt werden, aber ich könnte daran arbeiten - dh ein- und ausstempeln - an Tag -2, -1 und heute. Das naive Generieren einer Tabelle zeigt also nur Folgendes:

#+BEGIN: clocktable :maxlevel 4 :scope file :block thisweek 
#+CAPTION: Clock summary at [2017-09-23 Sat 11:48], for week 2017-W38.
| Headline                              | Time      |         |       |       |
|---------------------------------------+-----------+---------+-------+-------|
| *Total time*                          | *1d 0:12* |         |       |       |
|---------------------------------------+-----------+---------+-------+-------|
| 2017                                  | 1d 0:12   |         |       |       |
| \_  2017-09 September                 |           | 1d 0:12 |       |       |
| \_    2017-09-11 Monday               |           |         |  1:23 |       |
| \_      look into AAA BBBB project    |           |         |       |  
| \_    2017-09-15 Friday               |           |         |  3:33 |       |
| \_      look into XXX YYYY project    |           |         |       |  3:33 |
#+END:

Beachten Sie, dass die zweite TODO-Aufgabe unter 2017-09-15 Fridaydem Datum abgelegt wurde, an dem ich die Aufgabe eingegeben habe. Aber wirklich, ich hätte vielleicht am Freitag, Samstag usw. daran gearbeitet. Ich möchte nur, dass ein anderer Befehl anzeigt, wie viele Stunden ich jeden Tag gearbeitet habe, und einen Bericht wie den folgenden generiert:

2017-09-11 Monday     xx hours yy mins worked (across all tasks)
...
2017-09-15 Friday     zz hours tt mins worked (across all tasks)

Danke im Voraus.

Covi
quelle
Nebenfrage: Veranschaulicht dieser Anwendungsfall, dass ich keine TODO-Aufgaben unter einem Datenbaum ablegen sollte?
Covi

Antworten:

16

Ich denke , man könnte dies betrachten eine zu teilweise Lösung für Ihre Frage.

Wenn Sie :step dayin Ihre Clocktable-Zeile aufnehmen, werden mehrere Uhrentabellen ausgegeben - eine pro Tag für die aktuelle Woche in Ihrem Beispiel.

Während dies den ersten Teil Ihrer Frage beantwortet, welche Aufgaben pro Tag bearbeitet wurden, werden diese Aufgaben weiterhin in einer Hierarchie angezeigt, die auf Ihrer Datenbaumstruktur zum Zeitpunkt der Erstellung dieser Aufgaben basiert. Wenn Sie auch maxlevel 0in die Uhrentabelle aufnehmen, sehen Sie nur die Summe für jeden Tag ohne aufgelistete Aufgaben. Ich denke, Sie erhalten die Daten, nach denen Sie gefragt haben, obwohl sie nicht ganz das gewünschte einfache Listenformat haben.

Link zum entsprechenden Teil des Handbuchs: http://orgmode.org/manual/The-clock-table.html

Der zweite Teil der Frage, ob TODO-Aufgaben gut zu einer Datenbaumstruktur passen, hängt meiner Meinung nach von der persönlichen Wahl ab. Einerseits ist es einfach, Aufgaben in einer großen Datei nach dem Zeitpunkt des Hinzufügens zu suchen (obwohl ich vermute, dass Sie mit einer benutzerdefinierten Agenda-Ansicht dasselbe tun können), andererseits wird jedoch verhindert, dass Sie Aufgaben in Hierarchien gruppieren für größere Projekte. Die Auswahl zwischen diesen Optionen hängt davon ab, wie Sie den Organisationsmodus verwenden möchten.

Meine persönliche Wahl wäre, dass Datenbäume gut für Einträge vom Typ "Journal" sind (z. B. Notizen darüber, was jeden Tag getan wurde), aber mit Aufgaben, die in einer Projekthierarchie abgelegt sind, aber es gibt keinen einzigen richtigen Weg.

Stuart Hickinbottom
quelle
7
Vielen Dank! #+BEGIN: clocktable :maxlevel 0 :scope file :step day :tstart "<-1w>" :tend "<now>" :compact tscheint gut zu funktionieren und gibt das gewünschte Format. Follow-up: Gibt es eine einfache Möglichkeit, dies an einige Schlüssel zu binden, damit ich eine solche Tabelle problemlos an einer beliebigen Stelle in einer Organisationsdatei platzieren kann? Derzeit muss ich dies in eine feste Datei, feste Position legen C-c C-x C-r, um es dann zu aktualisieren.
Covi
2
@Covi. Ich bin froh, dass das geholfen hat. Entschuldigung für die langsame Reaktionszeit. Sie können zwar eine interaktive Funktion schreiben und diese an eine Taste binden, um dies zu tun, da es sich nur um Text handelt. Warum nicht den Vorgang als Tastaturmakro aufzeichnen? , dann speichern Sie dieses Makro als neue Funktion (die Sie in Ihre init.el einfügen könnten)? Relevante Links: emacswiki.org/emacs/KeyboardMacrosTricks und gnu.org/software/emacs/manual/html_node/emacs/…
Stuart Hickinbottom
Gibt es eine Möglichkeit, einen Bericht immer an einem bestimmten Wochentag wie Montag zu starten? z.B. Wenn ich mitten in dieser Woche bin und mich auf den Weg mache :tstart "<-2w>", werden mir auch die letzten Tage der vorletzten Woche angezeigt, während ich nur die letzte Woche und diese Woche sehen möchte. Ähnliches org-agenda-start-on-weekday?
Kshenoy
@kshenoy Verwenden Sie diese Option :block thisweek, um nur die 7 Tage dieser Woche anzuzeigen , die am Montag beginnen. Das wird überschreiben :tstartund :tend. Wenn Sie einen separaten Bericht wünschen, der die 7 Tage der vorherigen Woche anzeigt, verwenden Sie :block lastweek.
spk