Añadir lineas en REPORT
- Manuel Aranda
- Posts: 605
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Añadir lineas en REPORT
Necesito añadir varias lineas al final de un report con oReport:bPostEnd . La particularidad es que tienen que ir todas juntas y si no caben no escribir ninguna y pasar a escribirlas todas en la página siguiente. ¿Podeis ayudarme?
Un saludo,
Manuel
xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
-
- Posts: 1079
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
- Has thanked: 1 time
- Been thanked: 1 time
Re: Añadir lineas en REPORT
Manuel,
revisando el código de la clase report, hay este método que te orienta como saber las líneas restante de impresión
METHOD NeedNewPage() INLINE ( ::nRow >= ::nBottomRow )
con esa información puedes utilizar otro método NewLine para añadir líneas manualmente
espero sea de ayuda
saludos
Marcelo
revisando el código de la clase report, hay este método que te orienta como saber las líneas restante de impresión
METHOD NeedNewPage() INLINE ( ::nRow >= ::nBottomRow )
con esa información puedes utilizar otro método NewLine para añadir líneas manualmente
espero sea de ayuda
saludos
Marcelo
- Manuel Aranda
- Posts: 605
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: Añadir lineas en REPORT
Gracias, Marcelo. Voy a probarlo.
Un saludo,
Manuel
xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
- Armando
- Posts: 3279
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 4 times
- Contact:
Re: Añadir lineas en REPORT
Manuel y amigos:
Voy a meter un poquito de más rollo en esto, Manuel, cual es la necesidad de imprimir las líneas en
otra página si es que no caben?.
Lo pregunto porque pienso que si pretendes imprimirlas en la misma página y no caben te tira un error, cierto?
El error es que no se puede borrar el meta file, cierto?
Saludos
Voy a meter un poquito de más rollo en esto, Manuel, cual es la necesidad de imprimir las líneas en
otra página si es que no caben?.
Lo pregunto porque pienso que si pretendes imprimirlas en la misma página y no caben te tira un error, cierto?
El error es que no se puede borrar el meta file, cierto?
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
- FranciscoA
- Posts: 2164
- Joined: Fri Jul 18, 2008 1:24 am
- Location: Chinandega, Nicaragua, C.A.
Re: Añadir lineas en REPORT
Hola Manuel.
Si tienes definidas que cantidad de lineas vas a agregar en el bPstEnd, entonces creo que este codigo te puede servir:
//--------------------------------------------------------------//
Function ResumenCaja(oReport,nTContado,nTRcaja,nEfectivo,nVauchers)
local nLinAdic:=5
oReport:lGrid := .f.
CkNewPage(oReport,nLinAdic) //chequear si necesita nueva pagina
oReport:NewLine()
oReport:Say( 1, "RESUMEN DE CAJA:")
oReport:Say( 2, "FACT CONTADO: "+Transform(nTContado,"9,999,999.99") )
oReport:Say( 3, "RECIBOS CAJA: "+Transform(nTRCaja,"9,999,999.99") )
oReport:Say( 4, "VAUCHERS: "+Transform(nVauchers,"9,999,999.99") )
oReport:Say( 5, "EFECTIVO: "+Transform(nEfectivo,"9,999,999.99") )
return nil
//------------------------------
Function CkNewPage(oReport,nLinAdic)
if (oReport:nRow() + (oReport:nStdLineHeight()*nLinAdic)) >= oReport:nBottomRow()
oReport:EndPage()
oReport:StartPage()
endif
return nil
Saludos.
Si tienes definidas que cantidad de lineas vas a agregar en el bPstEnd, entonces creo que este codigo te puede servir:
//--------------------------------------------------------------//
Function ResumenCaja(oReport,nTContado,nTRcaja,nEfectivo,nVauchers)
local nLinAdic:=5
oReport:lGrid := .f.
CkNewPage(oReport,nLinAdic) //chequear si necesita nueva pagina
oReport:NewLine()
oReport:Say( 1, "RESUMEN DE CAJA:")
oReport:Say( 2, "FACT CONTADO: "+Transform(nTContado,"9,999,999.99") )
oReport:Say( 3, "RECIBOS CAJA: "+Transform(nTRCaja,"9,999,999.99") )
oReport:Say( 4, "VAUCHERS: "+Transform(nVauchers,"9,999,999.99") )
oReport:Say( 5, "EFECTIVO: "+Transform(nEfectivo,"9,999,999.99") )
return nil
//------------------------------
Function CkNewPage(oReport,nLinAdic)
if (oReport:nRow() + (oReport:nStdLineHeight()*nLinAdic)) >= oReport:nBottomRow()
oReport:EndPage()
oReport:StartPage()
endif
return nil
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
Chinandega, Nicaragua.
Fwxh-MySql-TMySql
- Manuel Aranda
- Posts: 605
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: Añadir lineas en REPORT
Francisco, muchas gracias por el código. Con algunos ajustes y pruebas he logrado lo que pretendía.
Armando, efectivamente, es cierto lo que comentas del error al eliminar el metafile. Usando el código de Francisco lo he podido ajustar para que no se produzca ese error. Tengo que añadir 12 lineas en bloque y he tenido que poner nLinAdic a 13 para que no se produzca el error. No se si es una solución muy ortodoxa pero, de momento, funciona.
Armando, efectivamente, es cierto lo que comentas del error al eliminar el metafile. Usando el código de Francisco lo he podido ajustar para que no se produzca ese error. Tengo que añadir 12 lineas en bloque y he tenido que poner nLinAdic a 13 para que no se produzca el error. No se si es una solución muy ortodoxa pero, de momento, funciona.
Un saludo,
Manuel
xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
- Armando
- Posts: 3279
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 4 times
- Contact:
Re: Añadir lineas en REPORT
Manuel:
Lo sospeche desde un principio (El chavo),
Mira esta función a ver que te parece.
Después de imprimir, o antes si así lo prefieres, cada una de las líneas adicionales mando llamar
a esta función y así acabe con el famoso error.
Saludos
Lo sospeche desde un principio (El chavo),

Mira esta función a ver que te parece.
Code: Select all | Expand
FUNCTION OverFlow(oReporte)
IF (oReporte:nRow + (oReporte:nStdLineHeight * 2)) >= oReporte:nBottomRow
oReporte:EndPage()
oReporte:StartPage()
ENDIF
RETURN NIL
Después de imprimir, o antes si así lo prefieres, cada una de las líneas adicionales mando llamar
a esta función y así acabe con el famoso error.
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
- Manuel Aranda
- Posts: 605
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
Re: Añadir lineas en REPORT
Armando, gracias de nuevo.
Un saludo,
Manuel
xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Manuel
xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Re: Añadir lineas en REPORT
Manuel:
Yo tengo algo parecido al de Armando, que agregue a la clase tReport
por cierto, yo usaba tb EndPage() y StartPage() pero ::EndPage() hace eso y algo mas...
Y como dice armando ".. la llama Después de imprimir, o antes si así lo prefieres, ..."
Ejemplo:
En este caso yo tengo que imprimir 6 lineas de distinto tamaño y le doy un espacio mas extra.
Seria ideal incorporar este metodo a la clase tReport
Atentamente,
Rolando
Cochabamba - Bolivia
FWH 1109 - xHarbour 1.1.0 (SimpLex) - BCC58
Yo tengo algo parecido al de Armando, que agregue a la clase tReport
Code: Select all | Expand
METHOD NewPageIfNeed( nRow ) INLINE if(nRow >= ::nBottomRow, ::EndPage(), NIL)
por cierto, yo usaba tb EndPage() y StartPage() pero ::EndPage() hace eso y algo mas...
Y como dice armando ".. la llama Después de imprimir, o antes si así lo prefieres, ..."
Ejemplo:
En este caso yo tengo que imprimir 6 lineas de distinto tamaño y le doy un espacio mas extra.
Code: Select all | Expand
oRpt:NewPageIfNeed(oRpt:nStdLineHeight*2.00 + ;
oRpt:nStdLineHeight*1.05 + ;
oRpt:nStdLineHeight*1.15 + ;
oRpt:nStdLineHeight*1.15 + ;
oRpt:nStdLineHeight*1.30 + ;
oRpt:nStdLineHeight*1.05 + ;
oRpt:nStdLineHeight)
Seria ideal incorporar este metodo a la clase tReport
Atentamente,
Rolando
Cochabamba - Bolivia
FWH 1109 - xHarbour 1.1.0 (SimpLex) - BCC58
- Armando
- Posts: 3279
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 4 times
- Contact:
Re: Añadir lineas en REPORT
Amigos:
Tal vez llamando a estos dos métodos ayude en algo, se describen por sí solos.
Saludos
Tal vez llamando a estos dos métodos ayude en algo, se describen por sí solos.
Code: Select all | Expand
oReporte:EndLine()
oReporte:StartLine()
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