A partir de 4D v19 R5, la posibilidad de asociar una variable a un subformulario ha enriquecido las posibilidades de interfaces y de comunicación entre formularios y subformularios. Los medios de comunicación se simplifican ahora con dos nuevos comandos: Saluda a OBJECT Get subform container value y OBJECT SET SUBFORM CONTAINER VALUE.
Mejorar la comunicación entre formularios y subformularios
Dos nuevos comandos
Los nuevos comandos OBJECT Get subform container value y OBJECT SET SUBFORM CONTAINER VALUE deben utilizarse en el contexto del subformulario.
El primero, OBJECT Get subform container value, se utilizará con mayor frecuencia cuando se genere un evento On Bound Variable Change, es decir, después de que se modifique la variable (o la expresión) asociada al subformulario del formulario padre. Por lo tanto, se utiliza para leer este nuevo valor.
El segundo – OBJECT SET SUBFORM CONTAINER VALUE se utilizará si, desde el subformulario, se desea modificar el valor de la variable (o expresión) asociada al subformulario en el formulario padre.
¿Por qué estos comandos?
Hasta ahora, había dos formas de obtener esta información.
La forma más sencilla(y más reciente) es asociar una variable de tipo objeto al subformulario. En este caso, los atributos de este objeto son accesibles directamente por la función Form dentro del subformulario. Esto funciona bien, pero utilizar un objeto cuando se necesita un valor simple no es necesariamente una buena práctica.
La segunda forma(más histórica) es crear un puntero a la variable en cuestión a través del comando OBJECT Get pointer con el parámetro Object subform container. Esto funciona, pero sólo cuando un variable está asociado a subformularios. Lamentablemente, esto no es posible cuando se trata de un expression (por ejemplo, Form.myValue) porque no es posible crear un puntero a una expresión.
Así pues, estos dos comandos representan la solución más conveniente y directa para los casos sencillos. Simplificarán la programación de los casos más comunes. El código será más legible y más fácil de mantener.
¡Disfrute de la programación con 4D!