A logical expression is a combination of operands and mathematical operations. The final result of a logical expression is always true or false. Logical expressions are used the reduce the properties in a report to a certain subset or to select alternatives for the cell content of a table. When used with attributes like hidetask or hideresource the logical expression evaluates to true for a certain property, this property is hidden or rolled-up in the report.
Operands can be previously declared flags, built-in functions, property attributes (specified as scenario.attribute) or another logical expression. When you combine logical operations to a more complex expression, the operators are evaluated from left to right. a | b & c is identical to (a | b) & c. It's highly recommended that you always use brackets to control the evaluation sequence. Currently, TaskJuggler does not support the concept of operator precedence or right-left associativity. This may change in the future.
An operand can also be just a number. 0 evaluates to false, all other numbers to true. The logical expression can also be the special constants @all
or @none
. The first always evaluates to true, the latter to false.