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 ?
Algo especial con TReport
Algo especial con TReport
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- Ramon Paredes
- Posts: 215
- Joined: Fri Feb 02, 2007 3:38 pm
- Location: Managua, Nicaragua
estaria mejor con Tprinter
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
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
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
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
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
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
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero