Emacs组织模式总计表

时间:2012-11-08 20:58:20

标签: org-mode

我有一个org文件,描述了一个项目:

* task1
** task1-1
     :PROPERTIES:
     :price: 10
     :given: <2012-11-08 Thu>
     :END:
** task1-2
     :PROPERTIES:
     :price: 11
     :given: <2012-11-08 Thu>
     :END:


* task2
** task2-1
     :PROPERTIES:
     :price: 20
     :given: <2012-11-08 Thu>
     :END:
** task2-2
     :PROPERTIES:
     :price: 21
     :given: <2012-11-08 Thu>
     :END:

我使用org-collector来生成总计表:

#+BEGIN: propview :id global :conds ((not (= price 0))) :cols (ITEM price)
| ITEM      | price |
|-----------+-------|
| "task1-1" |    10 |
| "task1-2" |    11 |
| "task2-1" |    20 |
| "task2-2" |    21 |
|-----------+-------|
|           |    62 |
#+TBLFM: @6$2=vsum(@2$2..@5$2)
#+END:

但我希望有这样的事情:

| ITEM      | price |
|-----------+-------|
| "task1-1" |    10 |
| "task1-2" |    11 |
| "task2-1" |    20 |
| "task2-2" |    21 |
|-----------+-------|
| Total     |    62 |    

怎么做?

2 个答案:

答案 0 :(得分:5)

对于“总计”行,您可以添加一行|Total| |,在空单元格中按 Cu Cc = (为其定义公式),然后输入公式{ {1}}。 (如果你想重新计算,那就是 C-u C-c C-c 。)

我不知道org-collector,所以无法帮助你解决这个问题。在整个文档上运行它(vsum(@1$2..@4$2)正在工作吗?),或者将所有内容向右移动一级,以便它可以在一棵树内。

答案 1 :(得分:0)

我今天早上才知道这个。您正在寻找的Org-Collector答案很简单。只需将表公式放在属性视图开始下方的两行空白处,并且在对属性视图进行评估(使用C-c C-c时将自动计算该公式。)

#+BEGIN: propview :scope tree :cols (ITEM CLOCKSUM EFFORT) :match "TODO=\"TODO\"" :noquote ALL


#+TBLFM: @>$1=Totals::@>$2=vsum(@I..@II);t::@>$3=vsum(@I..@II);t
#+END:

如果要将其转换为通用yasnippet,则需要转义$和\:

#+BEGIN: propview :scope tree :cols (ITEM CLOCKSUM EFFORT) :match "TODO=\\"TODO\\"" :noquote ALL


#+TBLFM: @>\$1=Totals::@>\$2=vsum(@I..@II);t::@>\$3=vsum(@I..@II);t
#+END:

现在,您可以添加一个通用属性视图,该视图计算到目前为止的时间,项目每个步骤的剩余工作量以及总时间。