modalità org: come generare un rapporto di clock per le ore lavorate ogni giorno?


18

org-clock-reportè magnifico; tuttavia, riporta il tempo impiegato per ciascuna attività. Esiste un comando personalizzato che usi per generare un rapporto sull'orologio che mostri le ore lavorate, tra le attività, per ogni giorno ?

Il problema che ho riscontrato è che ho archiviato le mie acquisizioni TODO sotto una file+datetreevoce. Ad esempio, un'attività TODO potrebbe essere archiviata nel Giorno -2, ma potrei lavorarci su, ovvero fare il clock in e out - il Giorno -2, -1 e oggi. Quindi generare una tabella in modo ingenuo mostrerà semplicemente qualcosa del tipo:

#+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:

Si noti che la seconda attività TODO è stata archiviata in 2017-09-15 Friday, che era la data in cui ho inserito l'attività. Ma davvero, avrei potuto lavorarci su venerdì, sabato, ecc. Voglio solo un altro comando per mostrare quante ore ho lavorato ogni giorno, generando un rapporto come il seguente:

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

Grazie in anticipo.


Domanda a margine: questo caso d'uso illustra che non dovrei archiviare le attività TODO in una serie di dati?
Covi,

Risposte:


18

Penso che potresti considerare questa come una soluzione parziale alla tua domanda.

Se includi :step daynella tua riga dell'orologio, verranno emessi diversi tavoli dell'orologio, uno al giorno per la settimana corrente nel tuo esempio.

Mentre questo risponde alla prima parte della tua domanda di mostrare su quali attività sono state eseguite quotidianamente, le attività verranno comunque visualizzate in una gerarchia basata sulla struttura del datetree di quando le hai create. Se includi anche maxlevel 0nell'orologio, vedrai solo il totale per ogni giorno senza alcuna attività elencata, che penso ti ottenga i dati che hai richiesto anche se non proprio nel semplice formato elenco che volevi.

Link al bit appropriato del manuale: http://orgmode.org/manual/The-clock-table.html

La seconda parte della domanda sul fatto che i compiti TODO siano adatti per una struttura di datetree è, credo, dovuta alla scelta personale. Da un lato semplifica l'individuazione delle attività in un file di grandi dimensioni in base a quando è stato aggiunto (anche se sospetto che si possa fare la stessa cosa con una vista agenda personalizzata), ma dall'altro impedisce di raggruppare le attività in gerarchie per progetti su larga scala. La scelta tra queste opzioni dipende da come si desidera utilizzare la modalità organizzazione.

La mia scelta personale sarebbe che i set di dati siano utili per le voci di tipo "journal" (ad es. Note su ciò che è stato fatto ogni giorno), ma con le attività archiviate in una gerarchia di progetti, ma non esiste un unico modo giusto.


7
Grazie! #+BEGIN: clocktable :maxlevel 0 :scope file :step day :tstart "<-1w>" :tend "<now>" :compact tsembra funzionare bene e dà il formato desiderato. Seguito: c'è un modo semplice per associare questo ad alcuni tasti, in modo che io possa facilmente estrarre un tale tavolo ovunque in qualsiasi file dell'organizzazione? Attualmente devo metterlo in un file fisso, posizione fissa, quindi C-c C-x C-raggiornarlo.
Covi,

2
@Covi. Sono contento che abbia aiutato. Ci scusiamo per il tempo di risposta lento. Mentre potresti scrivere una funzione interattiva e associarla a un tasto per farlo, dato che è tutto testo perché non registrare il processo come una macro di tastiera (digita le linee di inizio / fine del clock, sposta in alto, fai Cc Cc per ricalcolarlo) , quindi salva quella macro come nuova funzione (che potresti inserire nel tuo init.el)? Link rilevanti: emacswiki.org/emacs/KeyboardMacrosTricks e gnu.org/software/emacs/manual/html_node/emacs/…
Stuart Hickinbottom

C'è un modo per avviare un rapporto sempre in un determinato giorno della settimana, ad esempio lunedì? per esempio. Se sono nel mezzo di questa settimana e ho impostato :tstart "<-2w>", mi mostra anche gli ultimi giorni della settimana prima dello scorso, mentre voglio solo vedere l'ultima settimana e questa settimana. Qualcosa di simile a org-agenda-start-on-weekday?
kshenoy,

@kshenoy Utilizzalo :block thisweekper vedere solo i 7 giorni di questa settimana a partire da lunedì. Quello avrà la precedenza :tstarte :tend. Se si desidera un report separato che mostri i 7 giorni della settimana precedente, utilizzare :block lastweek.
spk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.