In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Reordenar TArrayBrowse
Reordenar TArrayBrowse
Hola,
Partiendo de un arraybrowse con una columna ordenada, ¿que método tengo
que usar para que despues de refrescar se reordene? ¿Que método se usa
para reordenar cuando se hace click en la cabecera?
Gracias y un saludo
Jose A. Suarez
Partiendo de un arraybrowse con una columna ordenada, ¿que método tengo
que usar para que despues de refrescar se reordene? ¿Que método se usa
para reordenar cuando se hace click en la cabecera?
Gracias y un saludo
Jose A. Suarez
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Reordenar TArrayBrowse
Jose Alfonso,
ASort()
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:464772c8$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola,
>
> Partiendo de un arraybrowse con una columna ordenada, ¿que método tengo
> que usar para que despues de refrescar se reordene? ¿Que método se usa
> para reordenar cuando se hace click en la cabecera?
>
> Gracias y un saludo
>
> Jose A. Suarez
ASort()
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:464772c8$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola,
>
> Partiendo de un arraybrowse con una columna ordenada, ¿que método tengo
> que usar para que despues de refrescar se reordene? ¿Que método se usa
> para reordenar cuando se hace click en la cabecera?
>
> Gracias y un saludo
>
> Jose A. Suarez
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Reordenar TArrayBrowse
Gracias Ignacio.
Por mas que miro y remiro la ayuda no lo encuentro. Igual está ahí, no
lo se, pero me he vuelto mico buscándolo sin éxito
.
Saludos
Jose A. Suarez
Ignacio Ortiz de Zúñiga escribió:
> Jose Alfonso,
>
> ASort()
>
> Saludos
>
Por mas que miro y remiro la ayuda no lo encuentro. Igual está ahí, no
lo se, pero me he vuelto mico buscándolo sin éxito

Saludos
Jose A. Suarez
Ignacio Ortiz de Zúñiga escribió:
> Jose Alfonso,
>
> ASort()
>
> Saludos
>
Reordenar TArrayBrowse
¿Que prámetros lleva aSort?
-
- Mensajes: 260
- Registrado: Lun Feb 07, 2005 1:20 pm
Reordenar TArrayBrowse
No se donde lo vi, pero los paramtros son las columas que quieras ordenar
::oArrayBrowse:aSort{1,4,3}
Pablo
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:[email=4648c38e@ozsrv2.ozlan.local...]4648c38e@ozsrv2.ozlan.local...[/email]
> ¿Que prámetros lleva aSort?
::oArrayBrowse:aSort{1,4,3}
Pablo
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:[email=4648c38e@ozsrv2.ozlan.local...]4648c38e@ozsrv2.ozlan.local...[/email]
> ¿Que prámetros lleva aSort?
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Reordenar TArrayBrowse
Jose Alfonso,
Me refería a la función de xharbour 'aSort()'.
Si lo que quieres es que lo haga el propio Browse, lo más sencillo es
disparar el evento OnHeaderClick de la columna que desees. También podrias
utilizar el metodo TBrwColumn:Sort( oCol ), pero dicho metodo es reservado y
no documentado y no te aseguro que no vaya a cambiar en el futuro.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:4648c1e8$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Gracias Ignacio.
>
> Por mas que miro y remiro la ayuda no lo encuentro. Igual está ahí, no lo
> se, pero me he vuelto mico buscándolo sin éxito
.
>
> Saludos
>
> Jose A. Suarez
>
> Ignacio Ortiz de Zúñiga escribió:
>> Jose Alfonso,
>>
>> ASort()
>>
>> Saludos
>>
Me refería a la función de xharbour 'aSort()'.
Si lo que quieres es que lo haga el propio Browse, lo más sencillo es
disparar el evento OnHeaderClick de la columna que desees. También podrias
utilizar el metodo TBrwColumn:Sort( oCol ), pero dicho metodo es reservado y
no documentado y no te aseguro que no vaya a cambiar en el futuro.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:4648c1e8$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Gracias Ignacio.
>
> Por mas que miro y remiro la ayuda no lo encuentro. Igual está ahí, no lo
> se, pero me he vuelto mico buscándolo sin éxito

>
> Saludos
>
> Jose A. Suarez
>
> Ignacio Ortiz de Zúñiga escribió:
>> Jose Alfonso,
>>
>> ASort()
>>
>> Saludos
>>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Reordenar TArrayBrowse
ASORT()
Sort an array
Syntax
ASORT( <aArray>, [<nStart>], [<nCount>], [<bSort>] ) --> aArray
Arguments
<aArray> Array to be sorted.
<nStart> The first element to start the sort from, default is 1.
<nCount> Number of elements starting from <nStart> to sort, default is all
elements.
<bSort> Code block for sorting order, default is ascending order {| x, y |
x < y }. The code block should accept two parameters and must return .T. if
the sort is in order, .F. if not.
Returns
<aArray> reference to the now sorted or NIL if the passed <aArray> is not
an array.
Description
ASORT() sort all or part of a given array. If <bSort> is omitted, the
function expect <aArray> to be one dimensional array containing single data
type (one of: Character, Date, Logical, Numeric) and sort this array in
ascending order: Character are sorted by their ASCII value, Dates are sorted
chronologically, Logical put .F. values before .T., Numeric are sorted by
their value.
If <bSort> is specified, it is used to handle the sorting order. With each
time the block is evaluate, two array elements are passed to the code block,
and <bSort> must return a logical value that state if those elements are in
order (.T.) or not (.F.). Using this block you can sort multidimensional
array, descending orders or even (but why would you want to do that) sort
array that contain different data type.
Examples
// sort numeric values in ascending order
ASORT( { 3, 1, 4, 42, 5, 9 } ) // result: { 1, 3, 4, 5, 9, 42 }
// sort character strings in descending lexical order
aKeys := { "Ctrl", "Alt", "Delete" }
bSort := {| x, y | UPPER( x ) > UPPER( y ) }
ASORT( aKeys,,, bSort ) // result: { "Delete", "Ctrl", "Alt" }
// sort two-dimensional array according to 2nd element of each pair
aPair := { {"Sun",8}, {"Mon",1}, {"Tue",57}, {"Wed",-6} }
ASORT( aPair,,, {| x, y | x[2] < y[2] } )
// result: { {"Wed",-6}, {"Mon",1}, {"Sun",8}, {"Tue",57} }
Status
Ready
Compliance
Codeblock calling frequency and order differs from Clipper, since Harbour
uses a different (faster) sorting algorithm (quicksort).
"Pablo Herranz" <pabloi@ibertabaco.com> escribió en el mensaje
news:[email=4649796a@ozsrv2.ozlan.local...]4649796a@ozsrv2.ozlan.local...[/email]
> No se donde lo vi, pero los paramtros son las columas que quieras ordenar
> ::oArrayBrowse:aSort{1,4,3}
>
> Pablo
>
> "José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
> news:[email=4648c38e@ozsrv2.ozlan.local...]4648c38e@ozsrv2.ozlan.local...[/email]
>> ¿Que prámetros lleva aSort?
>
>
Sort an array
Syntax
ASORT( <aArray>, [<nStart>], [<nCount>], [<bSort>] ) --> aArray
Arguments
<aArray> Array to be sorted.
<nStart> The first element to start the sort from, default is 1.
<nCount> Number of elements starting from <nStart> to sort, default is all
elements.
<bSort> Code block for sorting order, default is ascending order {| x, y |
x < y }. The code block should accept two parameters and must return .T. if
the sort is in order, .F. if not.
Returns
<aArray> reference to the now sorted or NIL if the passed <aArray> is not
an array.
Description
ASORT() sort all or part of a given array. If <bSort> is omitted, the
function expect <aArray> to be one dimensional array containing single data
type (one of: Character, Date, Logical, Numeric) and sort this array in
ascending order: Character are sorted by their ASCII value, Dates are sorted
chronologically, Logical put .F. values before .T., Numeric are sorted by
their value.
If <bSort> is specified, it is used to handle the sorting order. With each
time the block is evaluate, two array elements are passed to the code block,
and <bSort> must return a logical value that state if those elements are in
order (.T.) or not (.F.). Using this block you can sort multidimensional
array, descending orders or even (but why would you want to do that) sort
array that contain different data type.
Examples
// sort numeric values in ascending order
ASORT( { 3, 1, 4, 42, 5, 9 } ) // result: { 1, 3, 4, 5, 9, 42 }
// sort character strings in descending lexical order
aKeys := { "Ctrl", "Alt", "Delete" }
bSort := {| x, y | UPPER( x ) > UPPER( y ) }
ASORT( aKeys,,, bSort ) // result: { "Delete", "Ctrl", "Alt" }
// sort two-dimensional array according to 2nd element of each pair
aPair := { {"Sun",8}, {"Mon",1}, {"Tue",57}, {"Wed",-6} }
ASORT( aPair,,, {| x, y | x[2] < y[2] } )
// result: { {"Wed",-6}, {"Mon",1}, {"Sun",8}, {"Tue",57} }
Status
Ready
Compliance
Codeblock calling frequency and order differs from Clipper, since Harbour
uses a different (faster) sorting algorithm (quicksort).
"Pablo Herranz" <pabloi@ibertabaco.com> escribió en el mensaje
news:[email=4649796a@ozsrv2.ozlan.local...]4649796a@ozsrv2.ozlan.local...[/email]
> No se donde lo vi, pero los paramtros son las columas que quieras ordenar
> ::oArrayBrowse:aSort{1,4,3}
>
> Pablo
>
> "José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
> news:[email=4648c38e@ozsrv2.ozlan.local...]4648c38e@ozsrv2.ozlan.local...[/email]
>> ¿Que prámetros lleva aSort?
>
>
Reordenar TArrayBrowse
Ignacio,
TArrayBrowse dispone de un mecanismo para ordernar el array al pulsar en
las cabeceras en caso de que este activa la propiedad lAutoOrder.
Pues bien, yo tengo activa dicha propiedad y lo que quiero es saber que
tengo que hacer para que cada vez que añada o modifique una fila del
TArrayBrowse se vuelva a ordenar.
La edición la hago desde fuera del browse.
Saludos y gracias,
Jose A. Suarez
TArrayBrowse dispone de un mecanismo para ordernar el array al pulsar en
las cabeceras en caso de que este activa la propiedad lAutoOrder.
Pues bien, yo tengo activa dicha propiedad y lo que quiero es saber que
tengo que hacer para que cada vez que añada o modifique una fila del
TArrayBrowse se vuelva a ordenar.
La edición la hago desde fuera del browse.
Saludos y gracias,
Jose A. Suarez
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Reordenar TArrayBrowse
José Alfonso,
ya está contestado justitamente
en mi anterior mensaje.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:4649c9aa$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ignacio,
>
> TArrayBrowse dispone de un mecanismo para ordernar el array al pulsar en
> las cabeceras en caso de que este activa la propiedad lAutoOrder.
>
> Pues bien, yo tengo activa dicha propiedad y lo que quiero es saber que
> tengo que hacer para que cada vez que añada o modifique una fila del
> TArrayBrowse se vuelva a ordenar.
>
> La edición la hago desde fuera del browse.
>
> Saludos y gracias,
>
> Jose A. Suarez
>
ya está contestado justitamente

Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:4649c9aa$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ignacio,
>
> TArrayBrowse dispone de un mecanismo para ordernar el array al pulsar en
> las cabeceras en caso de que este activa la propiedad lAutoOrder.
>
> Pues bien, yo tengo activa dicha propiedad y lo que quiero es saber que
> tengo que hacer para que cada vez que añada o modifique una fila del
> TArrayBrowse se vuelva a ordenar.
>
> La edición la hago desde fuera del browse.
>
> Saludos y gracias,
>
> Jose A. Suarez
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Reordenar TArrayBrowse
Ignacio,
> También podrias
> utilizar el metodo TBrwColumn:Sort( oCol ), pero dicho metodo es reservado y
> no documentado y no te aseguro que no vaya a cambiar en el futuro.
>
Pues es lo que estoy buscando. ¿No podría dejar de ser reservado y
documentarse? Es de lo más normal que después de operar en un
TArrayBrowse se quiera dejar ordenado.
¿Que parámetros lleva el método Sort?
Gracias.
Un saludo,
Jose A. Suarez
> También podrias
> utilizar el metodo TBrwColumn:Sort( oCol ), pero dicho metodo es reservado y
> no documentado y no te aseguro que no vaya a cambiar en el futuro.
>
Pues es lo que estoy buscando. ¿No podría dejar de ser reservado y
documentarse? Es de lo más normal que después de operar en un
TArrayBrowse se quiera dejar ordenado.
¿Que parámetros lleva el método Sort?
Gracias.
Un saludo,
Jose A. Suarez
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Reordenar TArrayBrowse
José Alfonso,
¿No podría dejar de ser reservado y documentarse?
La clase ya tiene bastantes miembros y preferimos documentar sólo los
realmente importantes (Los árboles no dejan ver el bosque
). Además si
disparas el evento OnHeaderClick de la columna ni siquiera hace falta
llamarlo.
> ¿Que parámetros lleva el método Sort?
Como he indicado con anterioridad: OCOL. Es decir, un objeto TBrwColumn.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:[email=4649da71@ozsrv2.ozlan.local...]4649da71@ozsrv2.ozlan.local...[/email]
> Ignacio,
>
> > También podrias
>> utilizar el metodo TBrwColumn:Sort( oCol ), pero dicho metodo es
>> reservado y no documentado y no te aseguro que no vaya a cambiar en el
>> futuro.
>>
>
> Pues es lo que estoy buscando. ¿No podría dejar de ser reservado y
> documentarse? Es de lo más normal que después de operar en un TArrayBrowse
> se quiera dejar ordenado.
>
> ¿Que parámetros lleva el método Sort?
>
> Gracias.
>
> Un saludo,
>
>
> Jose A. Suarez
¿No podría dejar de ser reservado y documentarse?
La clase ya tiene bastantes miembros y preferimos documentar sólo los
realmente importantes (Los árboles no dejan ver el bosque

disparas el evento OnHeaderClick de la columna ni siquiera hace falta
llamarlo.
> ¿Que parámetros lleva el método Sort?
Como he indicado con anterioridad: OCOL. Es decir, un objeto TBrwColumn.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:[email=4649da71@ozsrv2.ozlan.local...]4649da71@ozsrv2.ozlan.local...[/email]
> Ignacio,
>
> > También podrias
>> utilizar el metodo TBrwColumn:Sort( oCol ), pero dicho metodo es
>> reservado y no documentado y no te aseguro que no vaya a cambiar en el
>> futuro.
>>
>
> Pues es lo que estoy buscando. ¿No podría dejar de ser reservado y
> documentarse? Es de lo más normal que después de operar en un TArrayBrowse
> se quiera dejar ordenado.
>
> ¿Que parámetros lleva el método Sort?
>
> Gracias.
>
> Un saludo,
>
>
> Jose A. Suarez
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Reordenar TArrayBrowse
Ignacio,
>
> Como he indicado con anterioridad: OCOL. Es decir, un objeto TBrwColumn.
Ok. No existe forma de decirle que ordene de forma ascendente o
descendente. Lo hace de forma alternativa.
Un saludo,
>
> Como he indicado con anterioridad: OCOL. Es decir, un objeto TBrwColumn.
Ok. No existe forma de decirle que ordene de forma ascendente o
descendente. Lo hace de forma alternativa.
Un saludo,
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Reordenar TArrayBrowse
José Alfonso,
Lo más sencillo es que utilices la función Asort y ordenes el array como tu
mejor desees.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:4649de95$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ignacio,
>>
>> Como he indicado con anterioridad: OCOL. Es decir, un objeto TBrwColumn.
>
> Ok. No existe forma de decirle que ordene de forma ascendente o
> descendente. Lo hace de forma alternativa.
>
>
> Un saludo,
>
Lo más sencillo es que utilices la función Asort y ordenes el array como tu
mejor desees.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:4649de95$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ignacio,
>>
>> Como he indicado con anterioridad: OCOL. Es decir, un objeto TBrwColumn.
>
> Ok. No existe forma de decirle que ordene de forma ascendente o
> descendente. Lo hace de forma alternativa.
>
>
> Un saludo,
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Reordenar TArrayBrowse
Ignacio Ortiz de Zúñiga escribió:
> José Alfonso,
>
> Lo más sencillo es que utilices la función Asort y ordenes el array como tu
> mejor desees.
>
Ya veo que va a ser eso lo que tenga que hacer.
Me quedo muy desilusionado con el tema del sort en los browses
. Sin
ánimo de ofender, pero tal como están valen para mas bien poco, la verdad.
Un saludo y gracias,
Jose A. Suarez
> José Alfonso,
>
> Lo más sencillo es que utilices la función Asort y ordenes el array como tu
> mejor desees.
>
Ya veo que va a ser eso lo que tenga que hacer.
Me quedo muy desilusionado con el tema del sort en los browses

ánimo de ofender, pero tal como están valen para mas bien poco, la verdad.
Un saludo y gracias,
Jose A. Suarez
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Reordenar TArrayBrowse
José Alfonso,
Sólo ofende ...
Siento igualmente que no entiendas que no podemos hacer un Xailer a cada
medida de vosotros.
Un saludo,
ASORT()
Sort an array
------------------------------------------------------------ ------------------
Syntax
ASORT(<aTarget>, [<nStart>],
[<nCount>], [<bOrder>]) --> aTarget
Arguments
<aTarget> is the array to be sorted.
<nStart> is the first element of the sort. If not specified, the
default starting position is one.
<nCount> is the number of elements to be sorted. If not specified,
all elements in the array beginning with the starting element are
sorted.
<bOrder> is an optional code block used to determine sorting order.
If not specified, the default order is ascending.
Returns
ASORT() returns a reference to the <aTarget> array.
Description
ASORT() is an array function that sorts all or part of an array
containing elements of a single data type. Data types that can be
sorted include character, date, logical, and numeric.
If the <bOrder> argument is not specified, the default order is
ascending. Elements with low values are sorted toward the top of the
array (first element), while elements with high values are sorted
toward
the bottom of the array (last element).
If the <bOrder> block argument is specified, it is used to determine
the
sorting order. Each time the block is evaluated, two elements from the
target array are passed as block parameters. The block must return
true
(.T.) if the elements are in sorted order. This facility can be used
to
create a descending or dictionary order sort. See the examples below.
When sorted, character strings are ordered in ASCII sequence; logical
values are sorted with false (.F.) as the low value; date values are
sorted chronologically; and numeric values are sorted by magnitude.
Notes
. ASORT() is only guaranteed to produce sorted output (as
defined by the block), not to preserve any existing natural order in
the process.
. Because CA-Clipper implements multidimensional arrays by
nesting subarrays within other arrays, ASORT() will not directly
sort
a multidimensional array. To sort a nested array, you must supply a
code block which properly handles the subarrays.
Examples
. This example creates an array of five unsorted elements, sorts
the array in ascending order, then sorts the array in descending
order using a code block:
aArray := { 3, 5, 1, 2, 4 }
ASORT(aArray)
// Result: { 1, 2, 3, 4, 5 }
ASORT(aArray,,, { |x, y| x > y })
// Result: { 5, 4, 3, 2, 1 }
. This example sorts an array of character strings in ascending
order, independent of case. It does this by using a code block that
converts the elements to uppercase before they are compared:
aArray := { "Fred", Kate", "ALVIN", "friend" }
ASORT(aArray,,, { |x, y| UPPER(x) < UPPER(y) })
. This example sorts a nested array using the second element of
each subarray:
aKids := { {"Mary", 14}, {"Joe", 23}, {"Art", 16} }
aSortKids := ASORT(aKids,,, { |x, y| x[2] < y[2] })
Result:
{ {"Mary", 14}, {"Art", 16}, {"Joe", 23} }
Files Library is EXTEND.LIB.
------------------------------------------------------------ --------------------
See Also: ASCAN() EVAL() SORT
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:4649e0d7$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ignacio Ortiz de Zúñiga escribió:
>> José Alfonso,
>>
>> Lo más sencillo es que utilices la función Asort y ordenes el array como
>> tu mejor desees.
>>
>
> Ya veo que va a ser eso lo que tenga que hacer.
>
> Me quedo muy desilusionado con el tema del sort en los browses
. Sin
> ánimo de ofender, pero tal como están valen para mas bien poco, la verdad.
>
> Un saludo y gracias,
>
> Jose A. Suarez
Sólo ofende ...
Siento igualmente que no entiendas que no podemos hacer un Xailer a cada
medida de vosotros.
Un saludo,
ASORT()
Sort an array
------------------------------------------------------------ ------------------
Syntax
ASORT(<aTarget>, [<nStart>],
[<nCount>], [<bOrder>]) --> aTarget
Arguments
<aTarget> is the array to be sorted.
<nStart> is the first element of the sort. If not specified, the
default starting position is one.
<nCount> is the number of elements to be sorted. If not specified,
all elements in the array beginning with the starting element are
sorted.
<bOrder> is an optional code block used to determine sorting order.
If not specified, the default order is ascending.
Returns
ASORT() returns a reference to the <aTarget> array.
Description
ASORT() is an array function that sorts all or part of an array
containing elements of a single data type. Data types that can be
sorted include character, date, logical, and numeric.
If the <bOrder> argument is not specified, the default order is
ascending. Elements with low values are sorted toward the top of the
array (first element), while elements with high values are sorted
toward
the bottom of the array (last element).
If the <bOrder> block argument is specified, it is used to determine
the
sorting order. Each time the block is evaluated, two elements from the
target array are passed as block parameters. The block must return
true
(.T.) if the elements are in sorted order. This facility can be used
to
create a descending or dictionary order sort. See the examples below.
When sorted, character strings are ordered in ASCII sequence; logical
values are sorted with false (.F.) as the low value; date values are
sorted chronologically; and numeric values are sorted by magnitude.
Notes
. ASORT() is only guaranteed to produce sorted output (as
defined by the block), not to preserve any existing natural order in
the process.
. Because CA-Clipper implements multidimensional arrays by
nesting subarrays within other arrays, ASORT() will not directly
sort
a multidimensional array. To sort a nested array, you must supply a
code block which properly handles the subarrays.
Examples
. This example creates an array of five unsorted elements, sorts
the array in ascending order, then sorts the array in descending
order using a code block:
aArray := { 3, 5, 1, 2, 4 }
ASORT(aArray)
// Result: { 1, 2, 3, 4, 5 }
ASORT(aArray,,, { |x, y| x > y })
// Result: { 5, 4, 3, 2, 1 }
. This example sorts an array of character strings in ascending
order, independent of case. It does this by using a code block that
converts the elements to uppercase before they are compared:
aArray := { "Fred", Kate", "ALVIN", "friend" }
ASORT(aArray,,, { |x, y| UPPER(x) < UPPER(y) })
. This example sorts a nested array using the second element of
each subarray:
aKids := { {"Mary", 14}, {"Joe", 23}, {"Art", 16} }
aSortKids := ASORT(aKids,,, { |x, y| x[2] < y[2] })
Result:
{ {"Mary", 14}, {"Art", 16}, {"Joe", 23} }
Files Library is EXTEND.LIB.
------------------------------------------------------------ --------------------
See Also: ASCAN() EVAL() SORT
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"José Alfonso Suárez Moreno" <jasm@tpvsoft.com> escribió en el mensaje
news:4649e0d7$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Ignacio Ortiz de Zúñiga escribió:
>> José Alfonso,
>>
>> Lo más sencillo es que utilices la función Asort y ordenes el array como
>> tu mejor desees.
>>
>
> Ya veo que va a ser eso lo que tenga que hacer.
>
> Me quedo muy desilusionado con el tema del sort en los browses

> ánimo de ofender, pero tal como están valen para mas bien poco, la verdad.
>
> Un saludo y gracias,
>
> Jose A. Suarez
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Reordenar TArrayBrowse
Hola Jose Alfonso
Yo utilizo TMemdataSet con TDBBrowse, este ultimo tiene un metodo :Sort
bastante agil y acomodable a muchas necesidades, pruebalo.
Saludos. Miguel A. Torrellas
José Alfonso Suárez Moreno escribió:
> Ignacio Ortiz de Zúñiga escribió:
>> José Alfonso,
>>
>> Lo más sencillo es que utilices la función Asort y ordenes el array
>> como tu mejor desees.
>>
>
> Ya veo que va a ser eso lo que tenga que hacer.
>
> Me quedo muy desilusionado con el tema del sort en los browses
. Sin
> ánimo de ofender, pero tal como están valen para mas bien poco, la verdad.
>
> Un saludo y gracias,
>
> Jose A. Suarez
Yo utilizo TMemdataSet con TDBBrowse, este ultimo tiene un metodo :Sort
bastante agil y acomodable a muchas necesidades, pruebalo.
Saludos. Miguel A. Torrellas
José Alfonso Suárez Moreno escribió:
> Ignacio Ortiz de Zúñiga escribió:
>> José Alfonso,
>>
>> Lo más sencillo es que utilices la función Asort y ordenes el array
>> como tu mejor desees.
>>
>
> Ya veo que va a ser eso lo que tenga que hacer.
>
> Me quedo muy desilusionado con el tema del sort en los browses

> ánimo de ofender, pero tal como están valen para mas bien poco, la verdad.
>
> Un saludo y gracias,
>
> Jose A. Suarez
Reordenar TArrayBrowse
Perdon.
Miguel A. Torrellas escribió:
> Hola Jose Alfonso
> Yo utilizo TMemdataSet con TDBBrowse, este ultimo tiene un metodo :Sort
> bastante agil y acomodable a muchas necesidades, pruebalo.
Donde pongo último quise decir primero
Saludos de nuevo
Miguel A. Torrellas escribió:
> Hola Jose Alfonso
> Yo utilizo TMemdataSet con TDBBrowse, este ultimo tiene un metodo :Sort
> bastante agil y acomodable a muchas necesidades, pruebalo.
Donde pongo último quise decir primero
Saludos de nuevo
Reordenar TArrayBrowse
Ignacio,
Lo siento, no quiero ofender.
Comprendo que no se pueda hacer un Xailer a la medida de cada cual, pero
también comprendo que hay cosas que pueden mejorarse. No se si habrá más
gente en mi caso, pero es de toda lógica y razón que si se están
haciendo cambios sobre un browse que permite ordenación por columnas, al
terminar exista un método que permita presentarle el resultado ordenado
al usuario por el criterio de ordenación establecido. Y eso no es
hacerlo "a mi medida".
Lo he solucionado por otra vía.
Muchas gracias y un saludo,
Jose A. Suarez
Lo siento, no quiero ofender.
Comprendo que no se pueda hacer un Xailer a la medida de cada cual, pero
también comprendo que hay cosas que pueden mejorarse. No se si habrá más
gente en mi caso, pero es de toda lógica y razón que si se están
haciendo cambios sobre un browse que permite ordenación por columnas, al
terminar exista un método que permita presentarle el resultado ordenado
al usuario por el criterio de ordenación establecido. Y eso no es
hacerlo "a mi medida".
Lo he solucionado por otra vía.
Muchas gracias y un saludo,
Jose A. Suarez