Es posible eliminar secciones de una ejecución de script evaluando una expresión a iniciarse la ejecución: si la sección no es visible, no se listará en el panel de secciones y la expresión no se podrá volver a evaluar durante la ejecución de script.
Mediante el uso de un DS llenado previamente como se describe en Llenado previo de scripts con datos capturados, podemos establecer un distintivo en una entidad dependiendo de las circunstancias externas al script. Imaginemos que tenemos una entidad denominada IntakeInformation que tiene un atributo booleano "collectIncomeInformation". Podemos especificar una sección Income en nuestro script:
... <section visible="IntakeInformation.collectIncomeInformation==true"> ... </section> ...
Esto ocultará la sección Income si el atributo "collectIncomeInformation" es false, como si la sección no estuviera presente en la definición de script.
Si una sección debe estar habilitada o inhabilitada en función de las respuestas de las secciones anteriores, es posible acomodar todas las páginas de una sección en una sola condición. A diferencia del atributo visible, esta condición se evaluará siempre que se encuentre la sección, lo que significa que es posible retroceder y cambiar una respuesta que afecta a la navegación de una sección. La sección seguirá apareciendo en el panel de secciones, pero aparecerá sombreada para que el usuario no puede pulsar en ella.
Se puede modificar el ejemplo anterior para que la pregunta "collectIncomeInformation" se formule al principio del script. Entonces la sección Income se puede modificar de la manera siguiente:
... <section> <condition expression="IntakeInformation.collectIncomeInformation"> ... </condition> </section> ...