org-mode: làm thế nào để tạo báo cáo đồng hồ cho số giờ làm việc mỗi ngày?


16

org-clock-reportnó thật tuyệt; tuy nhiên, nó báo cáo thời gian dành cho mỗi nhiệm vụ. Có lệnh tùy chỉnh nào bạn sử dụng để tạo báo cáo đồng hồ hiển thị giờ làm việc, trên các tác vụ cho mỗi ngày không?

Rắc rối mà tôi gặp phải là, tôi nộp các ảnh chụp TODO của mình dưới một file+datetreemục. Ví dụ: một nhiệm vụ TODO có thể được nộp vào Ngày -2, nhưng tôi có thể làm việc với nó - tức là, đồng hồ vào và ra - vào Ngày -2, -1 và hôm nay. Vì vậy, việc tạo một bảng một cách ngây thơ sẽ chỉ hiển thị một cái gì đó như:

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

Lưu ý rằng nhiệm vụ TODO thứ hai đã được nộp theo 2017-09-15 Friday, đó là ngày tôi tham gia nhiệm vụ. Nhưng thực sự, tôi có thể đã làm việc với nó vào thứ Sáu, thứ Bảy, v.v. Tôi chỉ muốn một lệnh khác cho biết tôi đã làm việc bao nhiêu giờ mỗi ngày, tạo ra một báo cáo như sau:

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

Cảm ơn trước.


Câu hỏi phụ: trường hợp sử dụng này có minh họa rằng tôi không nên gửi các tác vụ TODO theo một bảng dữ liệu không?
Covi

Câu trả lời:


16

Tôi nghĩ rằng bạn có thể coi đây là một giải pháp một phần cho câu hỏi của bạn.

Nếu bạn bao gồm :step daytrong dòng đồng hồ của mình thì bạn sẽ nhận được một số bảng đồng hồ được phát ra - một bảng mỗi ngày trong tuần hiện tại trong ví dụ của bạn.

Mặc dù câu trả lời này là phần đầu tiên trong câu hỏi của bạn về việc hiển thị những nhiệm vụ nào được thực hiện mỗi ngày, nhưng bạn vẫn sẽ thấy các tác vụ đó theo cấu trúc phân cấp dựa trên cấu trúc dữ liệu của bạn khi bạn tạo các tác vụ đó. Nếu bạn cũng bao gồm maxlevel 0trong đồng hồ thì bạn sẽ chỉ thấy tổng số cho mỗi ngày mà không có bất kỳ nhiệm vụ nào được liệt kê, mà tôi nghĩ sẽ mang lại cho bạn dữ liệu bạn yêu cầu mặc dù không hoàn toàn ở định dạng danh sách đơn giản mà bạn muốn.

Liên kết với bit thích hợp của hướng dẫn sử dụng: http://orgmode.org/manual/The-clock-table.html

Phần thứ hai của câu hỏi về việc liệu các nhiệm vụ TODO có phù hợp với cấu trúc datetree hay không, tôi nghĩ, tùy thuộc vào lựa chọn cá nhân. Một mặt giúp bạn dễ dàng xác định vị trí các tác vụ trong một tệp lớn tùy theo thời điểm được thêm vào (mặc dù tôi nghi ngờ bạn có thể làm điều tương tự với chế độ xem chương trình nghị sự tùy chỉnh), nhưng mặt khác, nó ngăn bạn nhóm các tác vụ thành phân cấp cho các dự án quy mô lớn hơn. Lựa chọn giữa các tùy chọn đó phụ thuộc vào cách bạn muốn sử dụng chế độ org.

Lựa chọn cá nhân của tôi sẽ là datetrees tốt cho các mục "tạp chí" (ví dụ: ghi chú về những gì đã được thực hiện mỗi ngày), nhưng với các nhiệm vụ được nộp trong hệ thống phân cấp dự án, nhưng không có cách nào đúng.


7
Cảm ơn bạn! #+BEGIN: clocktable :maxlevel 0 :scope file :step day :tstart "<-1w>" :tend "<now>" :compact tdường như hoạt động tốt và cho định dạng mong muốn. Theo dõi: có một cách dễ dàng để liên kết điều này với một số khóa, để tôi có thể dễ dàng bật một bảng như vậy ra bất cứ nơi nào trong bất kỳ tệp org nào? Hiện tại tôi phải đặt nó trong một tập tin cố định, vị trí cố định, sau đó C-c C-x C-rđể cập nhật nó.
Covi

2
@Covi. Vui vì đã giúp. Xin lỗi vì thời gian phản hồi chậm. Mặc dù bạn có thể viết một chức năng tương tác và liên kết nó với một phím để làm điều đó, vì tất cả đều là văn bản tại sao không ghi lại quá trình dưới dạng macro bàn phím (nhập dòng bắt đầu / kết thúc đồng hồ, di chuyển lên, làm Cc Cc để tính lại nó) , sau đó lưu macro đó dưới dạng một hàm mới (mà bạn có thể đặt trong init.el của mình)? Các liên kết có liên quan: emacswiki.org/emacs/PalMacrosTricksgnu.org/software/emacs/manual/html_node/emacs/
Stuart Hickinbottom

Có cách nào để bắt đầu một báo cáo luôn vào một ngày trong tuần nhất định như thứ Hai không? ví dụ. Nếu tôi ở giữa tuần này và tôi đặt :tstart "<-2w>", nó sẽ cho tôi thấy những ngày cuối tuần trước khi cuối cùng cũng trong khi tôi chỉ muốn xem tuần trước và tuần này. Một cái gì đó tương tự org-agenda-start-on-weekday?
kshenoy

@kshenoy Sử dụng :block thisweekđể xem chỉ 7 ngày trong tuần này bắt đầu vào thứ Hai. Điều đó sẽ ghi đè :tstart:tend. Nếu bạn muốn có một báo cáo riêng hiển thị 7 ngày của tuần trước, hãy sử dụng :block lastweek.
spk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.