Page 1 of 1

Algo especial con TReport

Posted: Sat May 19, 2007 8:02 pm
by Armando
Saludos a todo el foro:

Veran, tengo un fichero que contiene campos del mes y campos acumulados al mes, por ejemplo VENTAS DEL MES y ACUMULADO DE VENTAS AL MES, necesito crear un reporte usando la clase TReport donde primero se impriman _ del mes (VENTAS DEL MES) y posteriormente saltar de página y ahora imprimir _ del acumulado (ACUMULADO DE VENTAS), quedaría algo como esto

El fichero esta así
SUCURSAL VTS. MES VTS. ACUMULADAS
NORTE 1450354.54 130480354.54
SUR 950324.87 10950324.87
ESTE 25548.10 3025548.10
OESTE 790578.00 2790578.00

Y el reporte sería así:

Página 1
======= ==============
SUCURSAL VENTAS DEL MES
======= ==============
NORTE $ 1,450,354.54
SUR $ 950,324.87
ESTE $ 25,548.10
OESTE $ 790,578.00


Página 2
======= ===============
SUCURSAL VENTAS ACUMULADAS
======= ===============
NORTE $ 130,480,354.54
SUR $10,950,324.87
ESTE $3,025,548.10
OESTE $ 2,790,578.00

Recuerden que _ (Ventas del mes y las ventas acumuladas) vienen en un solo registro lo que me obliga a leer dos veces el mismo fichero, primero para imprimir las ventas del mes y despues para imprimir las ventas acumuladas.

Ojala me haya explicado.

Alguna idea ?

estaria mejor con Tprinter

Posted: Sun May 20, 2007 5:09 pm
by Ramon Paredes
Armando;

Te resultaria mejor usar la clase Tprinter con oPrn:CmSay, con dos bucles o do while !eof(). uno para el mes y otro para el acumulado,

algo asi como :

PRINT oPrn preview

SELECT A
USE MIBASE
INDEX ON (MICAMPO) TO (MI_INIDCE)

SELECT A
DO WHILE !EOF()
PAGE
oPrn:CmSay( 1,1,"SUCURSAL " ,ofont)
oPrn:CmSay( 1,5,"VENTAS DEL MES " ,ofont)
mSuc = MIBASE->SUCURSAL
mLinea = 3
DO WHILE MIBASE->SUCURSAL = mSuc
oPrn:CmSay(mLinea,1,+mSuc,oFont)
oPrn:CmSay(mLinea,2,+transform(MIBASE->ventas del mes,oFont)
skip
enddo
mLinea = mLInea + 0.5 (separacion entre registros)
enddo
los totales aqui
endpage

select a
y aqui repites el mismo procedimiento para el acumulado, antes del endprint

Ojala te de alguna idea

Ramon Paredes
Managua, Nicaragua

Posted: Mon May 21, 2007 12:35 pm
by Marcelo Via Giglio
Hola,
se me imagina que podrias utilizar GRUPOS y en el ON START GROUP o en alguno de los bloques que se ejecutan cuando hay cambio de grupo, regresar al registro inicial y claro guardar datos y banderas para que no quede en un ciclo infinito.

Otra solucion, pasarlo todo a un array y todo lineal

solo son ideas

saludos

Marcelo

Posted: Mon May 21, 2007 4:57 pm
by Armando
Gracias Ramón, Gracias Marcelo:

Todoas las ideas y sugerencia son bien recibidas, voy a esperar un poco a ver si alguien más del foro se anima a dar su comentario.

Saludos