Página 1 de 1

Ordenar un Memdataset por campo calculado

Publicado: Mié Jun 14, 2006 10:01 am
por jose.luis
Hola,
¿Como puedo ordenar un memdataset por un campo calculado?
En mi caso quisiera hacer lo siguiente. Supongamos la siguente matriz:
aData := { {"100",1,2},{"9023",2,3},{"63",3,2},{"1",9,9} }
Usando un memdataset sería:
oMemDataSet1:open(aData,{"CCODART","CAMPO1","CAMPO2"})
Como se puede observar, todos los campos CCODART son alfanuméricos
alineados a la izquierda. Ese campo necesito alinearlo a la derecha y
con un ancho fijo de 18.
Había pensado en crear un campo calculado tal como sigue:
oMemDataSet1:AddCalcField := {|a,b| PADL(ALLTRIM( a:oDataSet:ccodart),
18," ") }
Y luego ordenarlo con oMemDataSet:Sort( { n } ) donde n es la columna a
ordenar. Pero no se cual número de columna es.
Saludos y gracias,
José Luis Capel

Ordenar un Memdataset por campo calculado

Publicado: Mié Jun 14, 2006 10:13 am
por jose.luis
Ups,
> oMemDataSet1:AddCalcField := {|a,b| PADL(ALLTRIM( a:oDataSet:ccodart),
> 18," ") }

oMemDataSet1:AddCalcField("MICAMPO", {|a,b| PADL(ALLTRIM
( ::oDataSet:ccodart), > 18," ") }

Ordenar un Memdataset por campo calculado

Publicado: Mié Jun 14, 2006 11:14 am
por ignacio
José Luis,
oCol := oMemDataSet1:AddCalcField := {|a,b| PADL(ALLTRIM(
a:oDataSet:ccodart), 18," ") }
oMemDataSet:Sort( { oCol:nIndex } )
Saludos,
"José Luis Capel" <jose.luis@iaicom.com> escribió en el mensaje
news:[email=Xns97E2660C0C4CAjoseluiscapelaicom@82.144.6.50...]Xns97E2660C0C4CAjoseluiscapelaicom@82.144.6.50...[/email]
> Hola,
>
> ¿Como puedo ordenar un memdataset por un campo calculado?
>
> En mi caso quisiera hacer lo siguiente. Supongamos la siguente matriz:
>
> aData := { {"100",1,2},{"9023",2,3},{"63",3,2},{"1",9,9} }
>
> Usando un memdataset sería:
>
> oMemDataSet1:open(aData,{"CCODART","CAMPO1","CAMPO2"})
>
> Como se puede observar, todos los campos CCODART son alfanuméricos
> alineados a la izquierda. Ese campo necesito alinearlo a la derecha y
> con un ancho fijo de 18.
>
> Había pensado en crear un campo calculado tal como sigue:
>
> oMemDataSet1:AddCalcField := {|a,b| PADL(ALLTRIM( a:oDataSet:ccodart),
> 18," ") }
>
> Y luego ordenarlo con oMemDataSet:Sort( { n } ) donde n es la columna a
> ordenar. Pero no se cual número de columna es.
>
>
> Saludos y gracias,
> José Luis Capel

Ordenar un Memdataset por campo calculado

Publicado: Mié Jun 14, 2006 11:25 am
por jose.luis
Ignacio,
Gracias por responder.
>
> oCol := oMemDataSet1:AddCalcField := {|a,b| PADL(ALLTRIM(
> a:oDataSet:ccodart), 18," ") }
>
> oMemDataSet:Sort( { oCol:nIndex } )
>
Estos memdataset son una maravilla!! Me están proporcionando una
flexibilidad tremenda.
Saludos,
José Luis Capel