De mayor a menor en un report, necesito ranquear
Olga
Lo que necesitas lo haría un report de una Queue.
Una queue es una tabla en memoria, la que podes agregar, modificar y borrar registros
leerlas y ordenarlas
! Leo Cliente y Cargo Queue
CL1:Cliente = CodClie
IF Access:ACLIE001.Fetch(CL1:KeyCliente) !Lee ACLIE001
MESSAGE('No Encuentra Registro en ACLIE001','Mensaje del Sistema',ICON:Exclamation)
Select(?CodClie)
CYCLE
END
Display (CL1:ApellidoNombre)
Free(QResumen) ! La Vacio
! Leo los movimientos del cliente que acabo de leer
I# = 0 ! Inicializo esta variable (la uso como indice para grabar la queue
AC2:Cliente = CodClie
SET(AC2:KeyCliente,AC2:KeyCliente)
LOOP UNTIL Access:ACLIE002.Next() OR AC2:Cliente Not = CodClie
I# += 1
QR:FecEmi = AC2:Fecemi
QR:FecVen = AC2:Fecven
QR:Letra = AC2:Letcom
QR:Puesto = AC2:Ptocom
QR:Numero = AC2:Nrocom
QR:Debe = AC2:Debe
QR:Haber = AC2:Haber
QR:Saldo += QR:Debe - QR:Haber
ADD(QResumen,I#) ! Agrego un registro a la Queue
IF ERRORCODE() THEN STOP(ERROR()).
END !Loop
Para ordenarla se usa "Sort". La ordenas por fecha emision y por numero
Si quieres un ordenamiento de mayor a menor debes usar el signo menos (-)
Sort (QResumen,QR:FecEmi,QR:Numero) ! de menor a mayor
! Imprimir desde una Queue
Loop I#= 1 to Records(QResumen)
Get(QResumen,I#)
Print(RPT:Detail1) ! en filters debes ponelo en false... Action, Filter = False
End
EndPage(Report)
Espero te sirva
Saludos desde Venado Tuerto - Argentina