4D v16.3

OBJECT SET LIST BY REFERENCE

Inicio

 
4D v16.3
OBJECT SET LIST BY REFERENCE

OBJECT SET LIST BY REFERENCE 


 

OBJECT SET LIST BY REFERENCE ( {* ;} objeto {; tipoLista}; lista ) 
Parámetro Tipo   Descripción
Operador in Si se especifica, objeto es un nombre de objeto (cadena) Si se omite, objeto es un campo o variable
objeto  Objeto de formulario in Nombre de objeto (si se especifica *) o
Campo o variable (si se omite *)
tipoLista  Entero largo in Tipo de lista: Lista de valores, Lista de obligatorios o Lista de excluidos
lista  ListRef in Número de referencia de lista

El comando OBJECT SET LIST BY REFERENCE define o remplaza la lista asociada con el objeto u objetos definidos por los parámetros objeto y *, con la lista jerárquica definida en el parámetro lista.

Si pasa el parámetro opcional * indica que el parámetro objeto es un nombre de objeto (cadena). Si no pasa este parámetro, indica que el parámetro objeto es un campo o una variable. En este caso, se pasa una referencia de campo o variable en lugar de una cadena (campo o variable objeto únicamente).

Por defecto, si se omite el parámetro tipoLista, el comando define una lista de selección fuente (selección de valores) para el objeto. Puede designar cualquier tipo de lista en el parámetro tipoLista. Para ello, sólo tiene que pasar una de las siguientes constantes del tema "Propiedades de los objetos":

Constante Tipo Valor Comentario
Choice list Entero largo 0 Lista simple de selección de valores (opción "Lista" en la Lista de Propiedades) (por defecto)
Excluded list Entero largo 2 Lista de valores no aceptados para la entrada (Opción "Exclusiones" en la lista de propiedades)
Required list Entero largo 1 Lista sólo los valores aceptados para la entrada (Opción "Obligatoria" en la Lista de Propiedades)
 

En lista, pase el número de referencia de la lista jerárquica que desea asociar al objeto. Esta lista debe haber sido generada utilizando el comando Copy list, Load list o New list.

Para finalizar la asociación de una lista con un objeto, sólo pase 0 en el parámetro lista para el tipo de lista concerniente.

Eliminar una asociación de lista, no elimina la referencia de lista en memoria. Recuerde llamar el comando CLEAR LIST cuando ya no necesite la lista.

Este comando es especialmente interesante en el contexto de un pop-up o combo box asociado a una variable o un campo (ver el Manual de Diseño). En este caso, la asociación es dinámica y cualquier cambio en la lista se copia en el formulario. Cuando el objeto está asociado a un array, la lista se copia en el array y cualquier cambio en la lista no están disponible de forma automática (ver el ejemplo 5).

Asociar una lista de opciones simples (tipo de lista predeterminado) a un campo de texto:

 vCountriesList:=New list
 APPEND TO LIST(vCountriesList;"Spain";1)
 APPEND TO LIST(vCountriesList;"Portugal";2)
 APPEND TO LIST(vCountriesList;"Greece";3)
 OBJECT SET LIST BY REFERENCE([Contact]Country;vCountriesList)

Asociar la lista "vColor" como una lista de selección simple con el pop-up/lista desplegable "DoorColor":

 vColor:=New list
 APPEND TO LIST(vColor;"Blue";1)
 APPEND TO LIST(vColor;"Green";2)
 APPEND TO LIST(vColor;"Red";3)
 APPEND TO LIST(vColor;"Yellow";4)
 OBJECT SET LIST BY REFERENCE(*;"DoorColor";Choice list;vColor)

Ahora desea asociar la lista "vColor" con un combo box denominado "WallColor". Como este combo box es editable, usted quiere asegurarse de que ciertos colores, como "negro", "morado", etc, no se puedan utilizar. Estos colores se colocan en la lista "vReject":

 OBJECT SET LIST BY REFERENCE(*;"WallColor";Choice list;vColor)
 vReject:=New list
 APPEND TO LIST(vReject;"Black";1)
 APPEND TO LIST(vReject;"Gray";2)
 APPEND TO LIST(vReject;"Purple";3)
 OBJECT SET LIST BY REFERENCE(*;"WallColor";Excluded list;vReject)

Usted desea eliminar las asociaciones de listas:

 OBJECT SET LIST BY REFERENCE(*;"WallColor";Choice list;0)
 OBJECT SET LIST BY REFERENCE(*;"WallColor";Required list;0)
 OBJECT SET LIST BY REFERENCE(*;"WallColor";Excluded list;0)

Este ejemplo ilustra la diferencia en la forma en que funciona el comando cuando se aplica a un menú pop-up asociado a un array texto o a una variable texto. Hay dos menús pop-up en un formulario:

El contenido de estos menús emergentes se define utilizando la lista <>vColor (que contiene los valores de colores). Se ejecuta el siguiente código cuando se carga el formulario:

 ARRAY TEXT(arr1;0) //arr1 pop up
 C_TEXT(text1//text1 pop up
 OBJECT SET LIST BY REFERENCE(*;"arr1";<>vColor)
 OBJECT SET LIST BY REFERENCE(*;"text1";<>vColor)

Durante la ejecución, ambos menús proponen los mismos valores::


(Montaje que muestra el contenido de los menús de forma simultánea)

Luego ejecute el siguiente código, por ejemplo, por medio de un botón:

 APPEND TO LIST(<>vColor;"White";5)
 APPEND TO LIST(<>vColor;"Black";6)

Sólo el menú asociado al campo texto se actualiza (por medio de la referencia dinámica):



Con el fin de actualizar la lista asociada al pop-up gestionado por array, es necesario llamar de nuevo al comando OBJECT SET LIST BY REFERENCE para copiar el contenido de la lista.



Ver también 

OBJECT Get list reference
OBJECT SET LIST BY NAME

 
PROPIEDADES 

Producto: 4D
Tema: Objetos (Formularios)
Número 1266

 
HISTORIA 

Creado por: 4D v14

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)