ASort por dos columnas

ASort por dos columnas

Postby jrestojeda » Mon May 02, 2022 1:14 am

Hola a todos,
Necesito ordenar un array por dos columnas, pero en el orden necesito que ordene por la primera columna de manera ascendente y por la segunda de manera descente.
La primera columna es una cadena y la segunda un numero.
Alguien tiene una idea de como debo hacer para que ASort haga lo que necesito?
Desde ya muchas gracias.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 598
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: ASort por dos columnas

Postby Ariel » Mon May 02, 2022 3:28 am

Esteban,

ASort( aArray,,, {| x, y | x[ 1 ] < y[ 1 ] .and. x[ 2 ] > y[ 2 ] } )

1. tu primer orden alfa
2. tu segundo orden numerico

no lo probe pero deberia funcionar.

Saludos.
Ariel
 
Posts: 374
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: ASort por dos columnas

Postby jrestojeda » Mon May 02, 2022 11:25 am

Buen día Ariel...
No funciona de ese modo.

Alguna otra sugerencia?

Desde ya muchas gracias.
Saludos,
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 598
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: ASort por dos columnas

Postby jbrita » Mon May 02, 2022 12:48 pm

y esta forma

ASort( aDatos,,, {| x, y | If( x[ 1 ] == y[ 1 ], x[ 2 ] < y[ 2 ] ) } )

saludos
jbrita
 
Posts: 490
Joined: Mon Jan 16, 2006 3:42 pm

Re: ASort por dos columnas

Postby jrestojeda » Mon May 02, 2022 2:14 pm

jbrita wrote:ASort( aDatos,,, {| x, y | If( x[ 1 ] == y[ 1 ], x[ 2 ] < y[ 2 ] ) } )


Esta manera me ordena ambas columnas de manera descendente.
Yo necesito la primera columna ascendente y la segunda descendente.
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 598
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: ASort por dos columnas

Postby jrestojeda » Mon May 02, 2022 5:07 pm

Finalmente me fucionó lo siguiente:

aDatos:=ASort( aDatos,,, {| x, y | If( x[ 1 ] == y[ 1 ], x[ 2 ] > y[ 2 ] , x[ 1 ] < y[ 1 ] ) } )

Muchas gracias por las respuestas.
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 598
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 140 guests

cron