4D v13.4SELECTION RANGE TO ARRAY |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v13.4
SELECTION RANGE TO ARRAY
|
SELECTION RANGE TO ARRAY ( inicio ; fin {; campo ; array} {; campo2 ; array2 ; ... ; campoN ; arrayN} ) | ||||||||
Parámetro | Tipo | Descripción | ||||||
inicio | Entero largo |
![]() |
Número de registro seleccionado a partir del cual comenzar la recuperación de datos | |||||
fin | Entero largo |
![]() |
Número de registro seleccionado donde termina la recuperación de datos | |||||
campo | Campo, Tabla |
![]() |
Campo a utilizar para recuperar los datos o Tabla a utilizar para recuperar los números de registros | |||||
array | Array |
![]() |
Array para recibir los datos o números de registros de los campos | |||||
SELECTION RANGE TO ARRAY crea uno o más arrays y copia los datos de los campos o números de registro de la selección actual en arrays.
A diferencia de SELECTION TO ARRAY, que aplica a la totalidad de la selección actual, SELECTION RANGE TO ARRAY sólo aplica al rango de los registros seleccionados especificados por los parámetros inicio y fin.
El comando espera que los números de registro seleccionados pasados en inicio y fin cumplan con la fórmula 1 <= inicio <= fin <= Records in selection ([...]).
Si pasa 1 <= inicio = fin < Records in selection ([...]), se cargarán los campos u obtendrá el número de registro del registro cuyo registro seleccionado es inicio = fin.
Si pasa números de registros seleccionados incorrectos, el comando hace lo siguiente:
Como SELECTION TO ARRAY, el comando SELECTION RANGE TO ARRAY aplica a la selección de la tabla especificada en el primer parámetro.
Al igual que SELECTION TO ARRAY, SELECTION RANGE TO ARRAY también puede realizar las siguientes operaciones:
Cada array se digita de acuerdo al tipo de campo. Hay dos excepciones:
Si carga los números de los registros, se copian en un array de tipo Entero largo.
Nota: puede llamar al comando SELECTION RANGE TO ARRAY con sólo los parámetros inicio y fin. Utilice esta sintaxis especial para lanzar, en una selección limitada la ejecución de una serie diferida de comandos SELECTION TO ARRAY utilizando el parámetro * (ver ejemplo 4]).
4D Server: SELECTION RANGE TO ARRAY es optimizado por 4D Server. Cada array se crea en el servidor y luego se envía, en su totalidad, al equipo cliente.
Advertencia: SELECTION RANGE TO ARRAY puede crear arrays grandes, dependiendo del rango definido en inicio y fin, y en el tipo y tamaño de los datos a cargar. Los arrays residen en memoria, de manera que es buena idea probar el resultado después de la ejecución del comando. Para hacerlo, pruebe el tamaño de cada array resultante o cubra la llamada al comando, utilizando un método de proyecto ON ERR CALL.
Si el comando se ejecuta correctamente, el tamaño de cada array resultante es igual a (fin-inicio)+1, excepto si el parámetro fin es superior al número de registros en la selección. En tal caso, cada array resultante contiene (Registros en selección([...])-inicio)+1 elementos.
La siguiente línea de código utiliza los 50 primeros registros de la selección actual de la tabla [Facturas]. Se cargan los valores del campo [Facturas]Facturas ID y del campo relacionado [Clientes]Clientes ID.
SELECTION RANGE TO ARRAY(1;50;[Facturas]Facturas ID;alInvoID;[Clientes]Clientes ID;alCustID)
Las siguientes líneas de código utilizan los 50 primeros registros de la selección actual de la tabla [Facturas]. Se cargan los números de registro de la tabla [Facturas] así como los de la tabla asociada [Clientes]:
lSelTalla:=Records in selection([Facturas])
SELECTION RANGE TO ARRAY(lSelTalla-49;lSelTalla;[Facturas];alFacRegN;[Facturas];alCliRegN)
Las siguiente líneas de código permiten trabajar secuencialmente en porciones de 1 000 registros de una selección grande que no puede descargase en su totalidad en arrays:
lMaxPag:=1000
lSelTalla:=Records in selection([Directorio Telefonico])
For($lPage ;1;1+((lSelTalla-1)\lMaxPag))
` Cargar los valores y/o los números de registros
SELECTION RANGE TO ARRAY(1+(lMaxPag*($lPag-1));lMaxPag*$lPag;...;...;...;...;...;...)
` Hacer algo con los arrays
End for
Uso de los 50 primeros registros actuales de la tabla [Facturas] para cargar varios arrays, en ejecución diferida:
// Instrucciones diferidas
SELECTION TO ARRAY([Facturas]InvoiceRef;arrLInvRef;*)
SELECTION TO ARRAY([Facturas]Date;arrDInvDate;*)
SELECTION TO ARRAY([Clientes]ClientRef;arrLClientRef;*)
// Ejecución de las instrucciones diferidas
SELECTION RANGE TO ARRAY(1;50)
Producto: 4D
Tema: Arrays
Número
368
Lista alfabética de los comandos
Creado por: < 4D v6
Modificado: 4D v13
ON ERR CALL
SELECTION TO ARRAY
SET AUTOMATIC RELATIONS