4D v16.3

SORT ARRAY

Inicio

 
4D v16.3
SORT ARRAY

SORT ARRAY 


 

SORT ARRAY ( array {; array2 ; ... ; arrayN}{; > o <} ) 
Parámetro Tipo   Descripción
array  Array in Arrays a ordenar
> o <  Operador in ">" ordenar en orden ascendente, u "<" ordenar en orden descendente, u orden ascendente si se omite

El comando SORT ARRAY ordena uno o más array en orden ascendente o descendente.

Nota: no es posible ordenar arrays de tipo Puntero o Imagen. Puede ordenar los elementos de un array bidimensional (es decir, a2DArray{$vlEsteElem}) pero no puede ordenar el array bidimensional en sí mismo (es decir, a2DArray).

El último parámetro especifica si ordenar el array en orden ascendente o descendente. El símbolo “mayor que” (>) indica un orden ascendente; el símbolo “menor que” (<) indica un orden descendente. Si no especifica el orden, la ordenación es ascendente.

Si se especifica más de un array, los arrays se ordenan siguiendo el definido para el primer array; las ordenaciones multiniveles no son posibles.

En su lugar puede utilizar el comando MULTI SORT ARRAY si desea ordenar arrays sincronizados.

El siguiente ejemplo crea dos arrays y luego los ordena en función del nombre de la empresa:

 ALL RECORDS([Personas])
 SELECTION TO ARRAY([Personas]Nombre;asNombres;[Personas]Empresa;asEmpresas)
 SORT ARRAY(asEmpresas;asNombres;>)

Sin embargo, como SORT ARRAY no realiza ordenaciones multinivel, los nombres de las personas aparecen en desorden al interior de cada empresa. Para ordenar las personas por nombre para cada empresa, debe escribir:

 ALL RECORDS([Personas])
 ORDER BY([Personas];[Personas]Empresa;>;[Personas]Nombre;>)
 SELECTION TO ARRAY([Personas]Nombre;asNombres;[Personas]Empresa;asEmpresas)

Usted visualiza los nombres de una tabla [Personas] en una ventana flotante. Cuando hace clic en los botones en la ventana, puede ordenar esta lista de nombres de A a Z o de Z a A. Como varias personas pueden tener el mismo nombre, también puede utilizar un campo [Personas]Numero ID, el cual es un campo indexado único. Cuando hace clic en un nombre de la lista, usted recupera el registro para el nombre correspondiente. Manteniendo un array sincronizado y oculto de números de identificación, se asegura de acceder al registro correspondiente al nombre seleccionado:

  ` Método de objeto del array asNombres
 Case of
    :(Form event=On Load)
       ALL RECORDS([Personas])
       SELECTION TO ARRAY([Personas]Nombre;asNombres;[Personas]Numero ID;todosIDs)
       SORT ARRAY(asNombres;todosIDs;>)
    :(Form event=On Unload)
       CLEAR VARIABLE(asNombres)
       CLEAR VARIABLE(todosiDs)
    :(Form event=On Clicked)
       If(asNombres#0)
  ` Utilice el array todoslDs obtener el registro correcto
          QUERY([Personas];[Personas]Numero ID=todosIDs{asNombres})
  ` Hacer algo con el registro
       End if
 End case
 
  ` Método de objeto del botón bA2Z
  ` Ordenación de los arrays en orden creciente conservando la sincronización
 SORT ARRAY(asNombres;todosIDs;>)
 
  ` Método de objeto del botón bZ2A
  ` Ordenación de los arrays en orden decreciente conservando la sincronización
 SORT ARRAY(asNombres;todosIDs;<)



Ver también 

Find in sorted array
MULTI SORT ARRAY
ORDER BY
SELECTION TO ARRAY

 
PROPIEDADES 

Producto: 4D
Tema: Arrays
Número 229

This command can be run in preemptive processes

 
HISTORIA 

Creado por: < 4D v6

 
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)