Algo especial con TReport

Post Reply
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Algo especial con TReport

Post 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 ?
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Ramon Paredes
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

estaria mejor con Tprinter

Post 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
Marcelo Via Giglio
Posts: 1033
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Post 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
User avatar
Armando
Posts: 2479
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Contact:

Post 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
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Post Reply