Clarion - Reporte en Clarion

 
Vista:

Reporte en Clarion

Publicado por Silvana (1 intervención) el 09/02/2011 15:36:36
¿Como hago para crear un repote en clarion, dentro de la misma aplicacion... pero fuera de los browser?
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
sin imagen de perfil

RE:Reporte en Clarion

Publicado por Marcelo Madelon (572 intervenciones) el 09/02/2011 16:03:04
Silvana

lo puedes hacer de varias maneras
1) Todo código usando LinePrint (Template Free)

! Imprimir con LinePrint
LinePrint('<27,64>',,0) ! Inicializo Impresora
LinePrint('<27,67,72>',,0) ! Longitud pagina a 72 Líneas
LinePrint('<27,102,1,1>',,0) ! Salta 1 Lineas
LinePrint(CHR(27)&CHR(18)&' '&ATI:DenominacionCbte)
LinePrint('<27,102,1,2>',,0) ! Salta 2 Lineas
LinePrint(CHR(27)&CHR(18)&' FECHA EMISION: '|
&(format (FAC1:FechaEmision,@d6)))
LinePrint('<27,102,1,4>',,0) ! Salta 4 Lineas
LinePrint(CHR(27)&CHR(18)&' '&AC1:ApellidoNombre)
LinePrint(CHR(27)&CHR(18)&' '&AC1:Direccion)
LinePrint(CHR(27)&CHR(18)&Format(AC1:CodPostal,@P(####-##)P)&' '&AEN:Localidad |
&' '&Format(AC1:Cuit,@P##-########-#P)&' '|
&ASI:Abreviatura)

LinePrint('<27,102,1,2>',,0) ! Salta 2 Lineas
..
.
.
.
......

2) tambien todo código usando el template PrintDrv (free)

! Imprimir con PrintDrv
PRINTDRV::Initialise(CLIP(IMP:NombreImpresora))
PRINTDRV::ModoDraft() ! --> Pasa la printer a modo Draft

PRINTDRV::WriteText('<27,64>',0) ! Inicializo Impresora
PRINTDRV::WriteText('<27,67,48>',0) ! Longitud pagina a 48 Líneas
PRINTDRV::WriteText(' ') ! Salta 1 Lineas
PRINTDRV::WriteText(CHR(27)&CHR(18)&' FECHA EMISION: '|
&(format (RE1:FechaEmision,@d06)))
PRINTDRV::WriteText(CHR(27)&CHR(18)&' '&format(AC1:ApellidoNombre,@s30))
PRINTDRV::WriteText(CHR(27)&CHR(18)&' '&format(AC1:Direccion,@s30))
PRINTDRV::WriteText(CHR(27)&CHR(18)&' '&Format(AC1:CodPostal,@P(####-##)P)&' '&Format(AEN:Localidad,@s30) &' '|

3) Hacer un reporte comun con Report Wizard - Create a New Report Procedure
y luego configuras las Report Propierties

4) Hacer un Reporte usando el Wizard de un archivo que contenga un (1) solo registro. En Other Files le agregas los archivos a leer y listar, en Report Propierties en Filters le pones False y tildas la opcion Exclude Unfiltered a todos los details que hayas creado. Luego imprimes manualmente agegando el código en Take Record. Y seria algo asi:

!!!!!!!!!!!!!!!!!
! CARGO, ORDENO E IMPRIMO LA QUEUE

Free (QVentas) ! Inicializo la Queue QVentas
I# = 0

Clear(FA1:Record) ! Inicializo el Registro de Facturas
FA1:Estado = 0
SET(FA1:KeyEstado,FA1:KeyEstado) ! Recorro todos los que estan en estado 0 LOOP UNTIL Access:Factura1.Next() or FA1:Estado > 0 ! Leo hasta que encuentra uno distinto de cero

I# += 1 ! Sumo 1 al indice
QV:Fecha = FA1:FechaEmision
QV:Numero = FA1:Numero
QV:Comprobante = FA1:Comprobante

QV:ImporteComprobante = FA1:ImporteTotal
QV:SubTotal = FA1:SubTotal
QV:Comision = FA1:AlicuotaVentas
QV:ImporteComision = FA1:SubTotal * (FA1:AlicuotaVentas / 100)
ADD(QVentas,I#)
IF ERRORCODE() THEN STOP(ERROR()).
END

LOC:Saldo = 0
SORT (QVentas,QV:Fecha,QV:Numero) ! Ordena por fecha y por numero
! Imprimir desde una Queue
Loop I#= 1 to Records(QVentas)
Get(QVentas,I#)
Print(RPT:Detail) ! IMPRIMIS
LOC:Saldo += QV:ImporteComision
End

IF I# > 0
Print(RPT:Totales) ! Imprimis el detalle de los totales
END

EndPage(Report)

! Fijate que en Report Propierties, tenes que poneren Filter FALSE y tildar exclude Unfilteres
! eso hace que no se impirma en forma automática. De no hacer esto vas a imprimir por código y luego lo hara clarion
! el resultado sera que los 2 ultimos renglones se repetiran

! Tene en cuenta que es un ejemplo armado con pocos detalles.
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