Clarion - De mayor a menor en un report, necesito ranquear

   
Vista:

De mayor a menor en un report, necesito ranquear

Publicado por Olga (2 intervenciones) el 05/06/2012 23:32:28
Tengo un reporte que debo hacer para mi jefe lo antes posible y me pide ranquear unos datos, o sea poner de mayor a menor, un ranking, como se hace esto?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Clarion
- Código fuente de Clarion
- Cursos de Clarion
información
Códigos de Clarion
- Llamar al form para insertar desde el menu

De mayor a menor en un report, necesito ranquear

Publicado por federico federicoar@yahoo.com (43 intervenciones) el 05/06/2012 23:45:00
La unica manera que conozco es utillizar una tabla temporal y crearle una clave descente por el valor a ranquear y luego en el reporte utilizar esa clave para ordenar que se va a imprimir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

De mayor a menor en un report, necesito ranquear

Publicado por Marcelo Madelon (572 intervenciones) el 13/06/2012 15:24:03
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar