Visibility of elements
The visibility can be defined for each element within a Form separately.
Scopes for attribute "visible"
The attribute "visible" can be defined by any boolean expression like true/false or "SCRIPT[...]". In this case, the visibility is handled the same in all of the different WorkflowController.
Still you might want to have a finer control about the visibility of a FormField depending if the value should be shown in a form but not in a list. You can achieve this by using the different scopes.
The Workflow Engine provides you three different scopes:
- form: The visibility flag will be only processed if the controller renders a form.
- list: The visibility flag will be only processed if the controller renders a list.
- hidden: In special cases you do not want to transfer the data of a FormField to the client. For example, the data are necessary for the next workflow step, but should not be transferred to the client. In this case with hidden[true] you can command the server to process the data on the server but not transmitting it to the client.
Examples
<!-- simple true/false definition -->
< ... visible="false" ... />
<!-- data should not be transfered to the client by executing a script -->
< ... visible="hidden[SCRIPT[...]]" ... />
<!-- visible only if a value in the session exists -->
< ... visible="form[SESSION[KeyExists ({SESSION.SELECTION})]]" ... />
<!-- visibility based on SQL statement returning true/false or 1/0 -->
< ... visible="form[SQL[SELECT CASE TYPE WHEN 'Normal' THEN 1 ELSE 0 END FROM TABLE1 WHERE ID={FORM.ID} ...]]" ... />
<!-- visibility defined by an .NET extension -->
< ... visible="form[OBJECT[...]]" ... />