A parameter is a question put to the person composing the document, before anything is composed. The answer is available in the template and in the queries as `$P{<code>}`; see [[Parameter value]].
Parameters are what make one template serve many documents: the template says "the projects of this product group" and the parameter decides which product group.
## Properties
- "Code": how the parameter is identified, and what `$P{...}` names.
- "Description": the question as the user reads it.
- "Default value": the answer offered to start with.
- "Mandatory": whether an answer is required before the document can be composed.
- "Display": whether the parameter is shown at all. A parameter which is not shown takes its default value, which is how a fixed choice is kept out of the user's way.
- "Sorting order": the order in which the questions appear.
## A List of Allowed Answers
A parameter may offer the answers instead of leaving them to be typed, which removes a whole class of mistakes. The list is itself a query on the connected platform:
- "List source": the object the answers come from.
- "List code field": the column holding the value which ends up in `$P{...}`.
- "List value field": the column holding what the user reads.
- "List where clause": which rows are offered.
- "List sort expression": in which order they are offered.
- "Minimum number of characters before fetching": how much the user must type before the list is fetched. On a list of a few dozen entries this is left at nothing; on a list of tens of thousands it keeps the product from fetching them all at every keystroke.
The distinction between the code field and the value field is the usual one: the user chooses a name and the template receives the code belonging to it.