org: Column attributes
7.5.1.2 Column attributes
.........................
A column definition sets the attributes of a column. The general
definition looks like this:
%[WIDTH]PROPERTY[(TITLE)][{SUMMARY-TYPE}]
Except for the percent sign and the property name, all items are
optional. The individual parts have the following meaning:
WIDTH An integer specifying the width of the column in characters.
If omitted, the width will be determined automatically.
PROPERTY The property that should be edited in this column.
Special properties representing meta data are allowed here
as well (Special properties)
TITLE The header text for the column. If omitted, the property
name is used.
{SUMMARY-TYPE} The summary type. If specified, the column values for
parent nodes are computed from the children.
Supported summary types are:
{+} Sum numbers in this column.
{+;%.1f} Like ‘+’, but format result with ‘%.1f’.
{$} Currency, short for ‘+;%.2f’.
{:} Sum times, HH:MM, plain numbers are hours.
{X} Checkbox status, ‘[X]’ if all children are ‘[X]’.
{X/} Checkbox status, ‘[n/m]’.
{X%} Checkbox status, ‘[n%]’.
{min} Smallest number in column.
{max} Largest number.
{mean} Arithmetic mean of numbers.
{:min} Smallest time value in column.
{:max} Largest time value.
{:mean} Arithmetic mean of time values.
{@min} Minimum age (in days/hours/mins/seconds).
{@max} Maximum age (in days/hours/mins/seconds).
{@mean} Arithmetic mean of ages (in days/hours/mins/seconds).
{est+} Add low-high estimates.
Be aware that you can only have one summary type for any property you
include. Subsequent columns referencing the same property will all
display the same summary information.
The ‘est+’ summary type requires further explanation. It is used for
combining estimates, expressed as low-high ranges. For example, instead
of estimating a particular task will take 5 days, you might estimate it
as 5–6 days if you’re fairly confident you know how much work is
required, or 1–10 days if you don’t really know what needs to be done.
Both ranges average at 5.5 days, but the first represents a more
predictable delivery.
When combining a set of such estimates, simply adding the lows and
highs produces an unrealistically wide result. Instead, ‘est+’ adds the
statistical mean and variance of the sub-tasks, generating a final
estimate from the sum. For example, suppose you had ten tasks, each of
which was estimated at 0.5 to 2 days of work. Straight addition
produces an estimate of 5 to 20 days, representing what to expect if
everything goes either extremely well or extremely poorly. In contrast,
‘est+’ estimates the full job more realistically, at 10–15 days.
Numbers are right-aligned when a format specifier with an explicit
width like ‘%5d’ or ‘%5.1f’ is used.
Here is an example for a complete columns definition, along with
allowed values.
:COLUMNS: %25ITEM %9Approved(Approved?){X} %Owner %11Status \(1)
%10Time_Estimate{:} %CLOCKSUM %CLOCKSUM_T
:Owner_ALL: Tammy Mark Karl Lisa Don
:Status_ALL: "In progress" "Not started yet" "Finished" ""
:Approved_ALL: "[ ]" "[X]"
The first column, ‘%25ITEM’, means the first 25 characters of the item
itself, i.e., of the headline. You probably always should start the
column definition with the ‘ITEM’ specifier. The other specifiers
create columns ‘Owner’ with a list of names as allowed values, for
‘Status’ with four different possible values, and for a checkbox field
‘Approved’. When no width is given after the ‘%’ character, the column
will be exactly as wide as it needs to be in order to fully display all
values. The ‘Approved’ column does have a modified title (‘Approved?’,
with a question mark). Summaries will be created for the
‘Time_Estimate’ column by adding time duration expressions like HH:MM,
and for the ‘Approved’ column, by providing an ‘[X]’ status if all
children have been checked. The ‘CLOCKSUM’ and ‘CLOCKSUM_T’ columns are
special, they lists the sums of CLOCK intervals in the subtree, either
for all clocks or just for today.
---------- Footnotes ----------
(1) Please note that the COLUMNS definition must be on a single
line—it is wrapped here only because of formatting constraints.