Creating List Rows

This is a list of options. Each list option is tied to a unique number that can be used in an equation. As with other types, lists include labels and variables. Lists have a group of options, keywords and a default value. In addition lists can have optional equations and they can chain calculate.

List Basics

This is the basic structure of a list row:

"Label" "L[Default];Name;Value;Name;Value..." variable:equation ::

Text label displayed to the template's user. This is not used in an equation (variables are). This can be a single word (i.e. Periods) or multiple words (i.e., "Present Value"). If multiple words it must be in quotation marks. (details here)

This section indicates that it is a label, defines its default value and includes the list options. The entire section is in quote marks.

The letter L indicates that this row is a list type.

"L" is followed by a default value. The default value is one of the Values indicated in the list options. Defining a list's default value is required. A semi-colon (;) separates the Default value from the list options.

The list options are coupled as Name;Value pairs with Name and Value separated by semi-colons (;) and each pair separated by semi-colons (;). A few examples:

  • "L1;Yes;1;No;0": Yes or No option with Yes as the default
  • "L12;Yearly;1;Quarterly;4;Monthly;12": Payment timing with Monthly as the default
  • "L0;Miles and Gallons;0;Kilometers and Litres;1;Miles and Litres;2": fuel efficiency calculations with Miles and Gallons as the default
Names can include any English and International characters, numbers and other standard characters available on a Mac or Windows computer (technically called Unicode characters). In addition ^2 and ^3 are translated to their superscript equivalents. Finally list names can include HTML character entities.

Reference name for the row. This variable must be unique for each row. (details here)

Colon [:]
Separates the variable from equation. If there is no equation then the colon should be eliminated as well.

Formula to calculate. The equation is optional and separated from the variable by the single colon (:) indicated above. Not all rows require equations nor do all rows have to have the same equation. While simple templates require both a left and right side of the equation, advanced templates do not require both sides (and thus don't require an = symbol). If only one side is provided, it is assumed that the left side is "variable =" (no quotes). If both sides are included then the variable to be calculated can be anywhere within the equation. (details here)

Double-Colon [::]
Indicates the end of the row. This is optional for the template's final row.


Keywords help define special characteristics of the row. Options include:

"Label" "L[Default];Name;Value;Name;Value..." readonly noequals noclear noemail variable:equation ::

You can include all four, no keywords or a combination of them.

readonly is used to keep the template user from entering data in a row. Read-only rows appear in beige (instead of gray). Selection in a read-only number row is ignored.

noequals hides the equals buttons. The equals button appears on a row where a formula is defined. Sometimes the equals button is not required as the calculation of a row is automatically triggered by the calculation of another row. For instance Difference in the Discount template is automatically calculated when any of the other variables are calculated. (noequals and hideequals do the same thing.)

noclear retains the last entered number when a new template is requested. It is a simple way of allowing the user to define a Setting within the template.

noemail is used to exclude the row from email messages. Usually this is used on rows that add no value to the email receiver. For instance all simple templates exclude decSetting row, added automatically, from any sent messages.

Chain Calculations

Most templates are smart enough to auto calculate. When enough data is filled in, auto calculate will perform the remaining computations. Sometimes, however, the template needs a little help. This is where chain calculation comes in. Chain calculation is a statement to the template that says, when you are done calculating this row, calculate this other row next:

"Label" "L[Default];Name;Value;Name;Value..." variable, chain:equation ::

Chain is an optional component. In place of the word "chain", enter the variable you wish to calculate next. See the Auto Calculate, Chaining & Defaults section for details.