Algo especial con TReport

Algo especial con TReport

Postby Armando » Sat May 19, 2007 8:02 pm

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 los campos del mes (VENTAS DEL MES) y posteriormente saltar de página y ahora imprimir los campos 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 ambos campos (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
Armando
 
Posts: 3235
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

estaria mejor con Tprinter

Postby Ramon Paredes » Sun May 20, 2007 5:09 pm

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
User avatar
Ramon Paredes
 
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Postby Marcelo Via Giglio » Mon May 21, 2007 12:35 pm

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

Postby Armando » Mon May 21, 2007 4:57 pm

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 46 guests