Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v19.8
EXECUTE METHOD IN SUBFORM
|
EXECUTE METHOD IN SUBFORM ( objetoSubForm ; nomMetodo {; retorno {; param} {; param2 ; ... ; paramN}} ) | ||||||||
Parámetro | Tipo | Descripción | ||||||
objetoSubForm | Texto |
![]() |
Nombre del objeto subformulario | |||||
nomMetodo | Texto |
![]() |
Nombre del método proyecto a ejecutar | |||||
retorno | Operador, Variable |
![]() |
* si el método no devuelve un valor | |||||
![]() |
Valor devuelto por el método | |||||||
param | Expresión |
![]() |
Parámetro(s)a pasar al método | |||||
El comando EXECUTE METHOD IN SUBFORM permite ejecutar el método proyecto nomMetodo en el contexto del subformulario objetoSubform.
El método de proyecto llamado puede recibir llamadas 1 a X parámetros en param y devolver un valor en retorno. Pase * en el parámetro retorno si el método no devuelve parámetros.
Puede pasar en nomMetodo el nombre de todo método de proyecto accesible desde la base o el componente que ejecuta el comando. El contexto de ejecución se conserva en el método llamado, lo que significa que el formulario actual y el evento formulario actual siguen definidos. Si el subformulario proviene de un componente, el método debe pertenecer al componente y tener la propiedad "Compartido entre los componentes y la base local".
Este comando debe llamarse en el contexto del formulario padre (contiene el objeto objetoSubForm), por ejemplo vía el método de formulario.
Nota: el método nomMetodo no se ejecuta si objetoSubForm no se encuentra en la página actual o si no ha sido instanciado.
Dado el formulario "ContactDetail" utilizado como subformulario en el formulario padre "Empresa". El objeto subformulario que contiene el formulario ContactDetail se llama "ContactSubform". Imagine que queremos modificar la apariencia de ciertos elementos del subformulario de acuerdo al valor de los campos de la empresa (por ejemplo, "nomcontact" debe pasar a rojo cuando [Empresa]Ciudad="Nueva York" y a azul cuando [Empresa]Ciudad="San Diego"). Este mecanismo se implementa vía el método SetToColor. Para poder obtener este resultado, el método SetToColor no puede llamarse directamente desde el proceso del evento de formulario "On Load" del formulario padre Empresa porque el objeto "contactname" no pertenece al formulario actual, sino al formulario mostrado en el objeto subformulario "ContactSubform". El método debe por lo tanto ejecutarse utilizando el comando EXECUTE METHOD IN SUBFORM para que funcione correctamente.
Case of
:(Form event code=On Load)
Case of
:([Empresa]Ciudad ="Nueva York")
$Color:=$Red
:([Empresa]Ciudad ="San Diego")
$Color:=$Blue
Else
$Color:=$Black
End case
EXECUTE METHOD IN SUBFORM("ContactSubform";"SetToColor";*;$Color)
End case
Desarrolle una base que se utilizará como componente. Incluye un formulario proyecto compartido (llamado por ejemplo Calendar) que contiene variables dinámicas así como también un método proyecto público que permite ajustar el calendario: SetCalendarDate(varDate).
Si este método se utilizó directamente en el método del formulario Calendar, puede llamar directamente el evento "On Load":
SetCalendarDate(Current date)
EXECUTE METHOD IN SUBFORM("Cal1";"SetCalendarDate";*;!01/01/10!)
EXECUTE METHOD IN SUBFORM("Cal2";"SetCalendarDate";*;!05/05/10!)
Ejemplo avanzado: en el mismo contexto anterior, este ejemplo ofrece un método genérico:
// Contenido del método SetCalendarDate
C_DATE($1)
C_TEXT($2)
Case of
:(Count parameters=1)
// Ejecución estándar del método (como si se hubiera
// ejecutado desde el formularios mismo)
o
//especificamente para un contexto (ver caso 2)
:(Count parameters=2)
// Llamada externa, necesita un contexto
// Llamada recursiva con un solo parámetro
EXECUTE METHOD IN SUBFORM($2;"SetCalendarDate";*;$1)
End case
Si este comando se ejecuta correctamente, la variable sistema OK toma el valor 1; de lo contrario toma el valor 0.
Producto: 4D
Tema: Eventos de formulario
Número
1085
Creado por: 4D v12
Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)
Manual de lenguaje 4D ( 4D v19.4)
Manual de lenguaje 4D ( 4D v19.5)
Manual de lenguaje 4D ( 4D v19.6)
Manual de lenguaje 4D ( 4D v19.7)
Manual de lenguaje 4D ( 4D v19.8)