Unofficial Content
  • This documentation is valid for:

English version (not available yet)

Al igual que las reglas clásicas de GeneXus, las reglas del Dynamic Form buscan ofrecer cierto comportamiento sobre el formulario. Mediante el uso de reglas se podrá ocultar o mostrar campos en función del valor de otros así como también será posible hacer asignaciones dinámicas. Un caso de uso sería por ejemplo el de tener un combo de "Tipo de documento" donde en función del valor mostramos un campo de "Pasaporte" o de "CI" cada uno con su respectiva expresión regular.

Las reglas se especifican en el atributo Rules del tipo DynProperty, pudiendo agregar varias reglas en una misma DynProperty.

Tipos de reglas

  • Show: se utiliza para mostrar un campo. Ej.

SHOW City If Country= Uruguay OR Paraguay

  • Hide:se utiliza para ocultar un campo. Ej.

HIDE City If Country= Argentina

  • Enable: se utiliza para habilitar campos (modo edit). Ej.

ENABLE City If Country= Brasil

  • Disable:se utiliza para deshabilitar campos (modo view). Ej.

DISABLE City If Country= Chile 

Nota: todas las comparaciones deberán del ser del tipo Campo = valor, no pudiendo hacer Valor = Campo

 

Valores dinámicos

Cuando se realizan comparaciones o asignaciones en reglas es posible consultar datos del server mediante el uso de la función CALL. Ej. 

Rules
{
  RuleItem = "disable Name If Country = CALL(" + DynReturnRuleValue.Link() + ") AND Name = Gonzalo" 
}

 En el caso anterior DynReturnRuleValue es un procedimiento HTTP que devolverá un valor que será comparado con el valor del campo Country. El procedimiento HTTP será entonces:

&dynPropertyJson = &httpRequest.GetVariable("dynProperty")
&dynProperty.FromJson(&dynPropertyjson)
&httpResponse.AddString("valor")

En &dynProperty se dispondrá de todos los valores del formulario.

Otro ejemplo de CALL sería en asignaciones, por ejemplo:

Rules
{
      RuleItem = "Name = CALL(" + DynReturnRuleValue.Link() + ") If US_States = DE" 
}
     

 

Last update: April 2024 | © GeneXus. All rights reserved. GeneXus Powered by Globant