# TOTAL DE PAGINAS
Moderator: Rathinagiri
# TOTAL DE PAGINAS
Hola Amigos:
Estuve revisando los Reports que vienen en la carpeta Samples, y noté algo:
Todos tienen el contador de página "Str(_PAGENO)" , es decir, cada página va numerándose
1 ... 2 ... 3 ... etc
Pero no ví cómo mostrar cada página con su contador total de páginas, es decir:
Page 1/3 ... Page 2/3 ... Page 3/3 (dentro de la página que se imprimirá)
Con qué variable obtengo el número total de páginas ? En este ejemplo es el 3 que va debajo como denominador común.
Hay un marco que muestra la vista previa de la página, y en este marco sí esta como 1/3, 2/3, 3/3
Es decir la variable sí está por ahí ... podeis ayudarme ?
Gracias por sus respuestas.
Estuve revisando los Reports que vienen en la carpeta Samples, y noté algo:
Todos tienen el contador de página "Str(_PAGENO)" , es decir, cada página va numerándose
1 ... 2 ... 3 ... etc
Pero no ví cómo mostrar cada página con su contador total de páginas, es decir:
Page 1/3 ... Page 2/3 ... Page 3/3 (dentro de la página que se imprimirá)
Con qué variable obtengo el número total de páginas ? En este ejemplo es el 3 que va debajo como denominador común.
Hay un marco que muestra la vista previa de la página, y en este marco sí esta como 1/3, 2/3, 3/3
Es decir la variable sí está por ahí ... podeis ayudarme ?
Gracias por sus respuestas.
- Pablo César
- Posts: 4059
- Joined: Wed Sep 08, 2010 1:18 pm
- Location: Curitiba - Brasil
# TOTAL DE PAGINAS
Hola Louis,
Si quieres agregar total de páginas en EXPRESSION de tu DEFINE REPORT (FOOTER), debes agregar: Por ejemplo del C:\hmg.3.3.1\SAMPLES\Controls\ReportAdvanced\REPORT_ADVANCED_1\demo.prg
Después debes alterar el archivo C:\hmg.3.3.1\INCLUDE\i_rptgen.ch, agregandole: No precisa reconstruir la biblioteca del HMG.
Solo recompilar el ejemplo y listo ! Source code sample (C:\hmg.3.3.1\SAMPLES\Controls\ReportAdvanced\REPORT_ADVANCED_1\demo.prg)
Saludos
At HMG Development Team:
Could you evaluate whether this constant _PageTot can become part of the permanent in HMG ?
This seems usuable for anyone.
Si quieres agregar total de páginas en EXPRESSION de tu DEFINE REPORT (FOOTER), debes agregar: Por ejemplo del C:\hmg.3.3.1\SAMPLES\Controls\ReportAdvanced\REPORT_ADVANCED_1\demo.prg
Después debes alterar el archivo C:\hmg.3.3.1\INCLUDE\i_rptgen.ch, agregandole: No precisa reconstruir la biblioteca del HMG.
Solo recompilar el ejemplo y listo ! Source code sample (C:\hmg.3.3.1\SAMPLES\Controls\ReportAdvanced\REPORT_ADVANCED_1\demo.prg)
At HMG Development Team:
Could you evaluate whether this constant _PageTot can become part of the permanent in HMG ?
This seems usuable for anyone.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
- Pablo César
- Posts: 4059
- Joined: Wed Sep 08, 2010 1:18 pm
- Location: Curitiba - Brasil
# TOTAL DE PAGINAS
Para los casos de utilizar HMG_HPDF, existen las funciones:
HMG_HPDF_PageNo()
HMG_HPDF_PageCount()
Que pueden ser utilizadas gracias al vector _HMG_SYSDATA[ 150 ] que tiene HMG_HPDF.
HMG_HPDF_PageNo()
HMG_HPDF_PageCount()
Que pueden ser utilizadas gracias al vector _HMG_SYSDATA[ 150 ] que tiene HMG_HPDF.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
Re: # TOTAL DE PAGINAS
Gracias Pablo, siempre tan gentil, sos Genial !
+1
+1
- srvet_claudio
- Posts: 2193
- Joined: Thu Feb 25, 2010 8:43 pm
- Location: Uruguay
- Contact:
Re: # TOTAL DE PAGINAS
Done!Pablo César wrote:Could you evaluate whether this constant _PageTot can become part of the permanent in HMG ?
Code: Select all
#xtranslate _PageCount => HMG_LEN (_HMG_SYSDATA \[ 160 \])
-
- Posts: 1275
- Joined: Tue Sep 03, 2013 4:22 am
- Location: Tecámac, México
Re: # TOTAL DE PAGINAS
Si que hace falta! yo siempre lo hacia a mano!
Y gracias por las contribuciones.
Saludos
Y gracias por las contribuciones.
Saludos
- Pablo César
- Posts: 4059
- Joined: Wed Sep 08, 2010 1:18 pm
- Location: Curitiba - Brasil
# TOTAL DE PAGINAS
Thank you Claudio !
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
Re: # TOTAL DE PAGINAS
Master Pablo:
However ...
Cuando el Report va definido en el prg, funciona muy bien este punto que hemos tratado aquì con (i_rptgen.ch), pero cuando el RPT es Externo, (me topé con este ejemplo que me parece muy bueno, ya que no hay que recompilar el código del prg, sino sólo se modifica este archivo externo y con el exe se ven los cambios inmediatamente), no sé cómo poner los pies de página con _pageno/_pageTot ni tampoco sé cómo ponerle los quiebres por grupos
Este es el código del RPT Externo:
A pesar de que allí dice GROUPED BY 'USUARIO' y HEADRGRP 'Usuario:' , en realidad no hace el quiebre que se espera
En la imagen adjunta, se aprecia el quiebre cuando después de Argentina llega Brazil (este Reporte es definido dentro del prg)
de la siguiente manera:
Cómo hacer que lo mismo que se programa dentro de la Function CreateReport dentro del PRG ... pueda funcionar y aparecer en el RPT Externo (DEFINE REPORT TEMPLATE) ?
Espero no molestar con estas inquietudes.
Muy agradecido anticipadamente.
However ...
Cuando el Report va definido en el prg, funciona muy bien este punto que hemos tratado aquì con (i_rptgen.ch), pero cuando el RPT es Externo, (me topé con este ejemplo que me parece muy bueno, ya que no hay que recompilar el código del prg, sino sólo se modifica este archivo externo y con el exe se ven los cambios inmediatamente), no sé cómo poner los pies de página con _pageno/_pageTot ni tampoco sé cómo ponerle los quiebres por grupos
Este es el código del RPT Externo:
Code: Select all
DEFINE REPORT TEMPLATE
TITLE wempresa + '|INFORME DE CAJA'
HEADERS {'',' ',' ',' '} , {'USUARIO','TIEMPO','FECHA','VALOR'}
FIELDS {'usuario','tiempo','fecha','valor'}
WIDTHS {15,15,15,14}
TOTALS {.F.,.F.,.F.,.T.}
NFORMATS { , , ,'999,999,999.99'}
WORKAREA mtiempo
LPP 50
CPL 80
LMARGIN 4
PREVIEW
SELECT
IMAGE {'rosa.jpg',1,75,6,80 }
GROUPED BY 'USUARIO'
HEADRGRP 'Usuario:'
END REPORT
En la imagen adjunta, se aprecia el quiebre cuando después de Argentina llega Brazil (este Reporte es definido dentro del prg)
de la siguiente manera:
Code: Select all
Function CreateReport
DEFINE REPORT Report1
* Report Layout ***********************************************
BEGIN LAYOUT
PAPERSIZE PRINTER_PAPER_A4
ORIENTATION PRINTER_ORIENT_PORTRAIT
END LAYOUT
* Header Band *************************************************
BEGIN HEADER
BANDHEIGHT 25
BEGIN LINE
FROMROW 23
FROMCOL 10
TOROW 23
TOCOL 200
PENWIDTH 0.1
PENCOLOR { 0 , 0 , 0 }
END LINE
BEGIN TEXT
EXPRESSION 'Report Header'
ROW 13
COL 10
WIDTH 100
HEIGHT 10
FONTNAME 'Arial'
FONTSIZE 20
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR { 0 , 0 , 0 }
ALIGNMENT Left
END TEXT
BEGIN PICTURE
VALUE 'hmg.jpg'
ROW 10
COL 189
WIDTH 11
HEIGHT 11
STRETCH .F.
END PICTURE
END HEADER
* Detail Band *************************************************
BEGIN DETAIL
BANDHEIGHT 6
BEGIN TEXT
EXPRESSION Test->Code
ROW 2
COL 18
WIDTH 10
HEIGHT 10
FONTNAME 'Arial'
FONTSIZE 9
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR { 0 , 0 , 0 }
ALIGNMENT Left
END TEXT
BEGIN TEXT
EXPRESSION Test->First
ROW 2
COL 30
WIDTH 60
HEIGHT 10
FONTNAME 'Arial'
FONTSIZE 9
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR { 0 , 0 , 0 }
ALIGNMENT Left
END TEXT
BEGIN TEXT
EXPRESSION Test->Last
ROW 2
COL 70
WIDTH 60
HEIGHT 10
FONTNAME 'Arial'
FONTSIZE 9
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR { 0 , 0 , 0 }
ALIGNMENT Left
END TEXT
BEGIN TEXT
EXPRESSION Test->Country
ROW 2
COL 110
WIDTH 60
HEIGHT 10
FONTNAME 'Arial'
FONTSIZE 9
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR { 0 , 0 , 0 }
ALIGNMENT Left
END TEXT
BEGIN TEXT
EXPRESSION Test->Province
ROW 2
COL 140
WIDTH 60
HEIGHT 10
FONTNAME 'Arial'
FONTSIZE 9
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR { 0 , 0 , 0 }
ALIGNMENT Left
END TEXT
BEGIN TEXT
EXPRESSION Test->Birth
ROW 2
COL 175
WIDTH 60
HEIGHT 10
FONTNAME 'Arial'
FONTSIZE 9
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR { 0 , 0 , 0 }
ALIGNMENT Left
END TEXT
END DETAIL
* Footer Band *************************************************
BEGIN FOOTER
BANDHEIGHT 27
BEGIN LINE
FROMROW 4
FROMCOL 10
TOROW 4
TOCOL 200
PENWIDTH 0.1
PENCOLOR { 0 , 0 , 0 }
END LINE
BEGIN TEXT
EXPRESSION 'Page. No:' + Str(_PageNo) + '/' + ALLTRIM(Str(_PageNo))
ROW 7
COL 11
WIDTH 100
HEIGHT 10
FONTNAME 'Arial'
FONTSIZE 12
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR { 0 , 0 , 0 }
ALIGNMENT Left
END TEXT
BEGIN TEXT
EXPRESSION Date()
ROW 7
COL 177
WIDTH 30
HEIGHT 10
FONTNAME 'Arial'
FONTSIZE 12
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR { 0 , 0 , 0 }
ALIGNMENT Left
END TEXT
END FOOTER
* Summary Band ************************************************
BEGIN SUMMARY
BANDHEIGHT 50
BEGIN TEXT
EXPRESSION 'Total Records: ' + Str(RecCount()) + chr(13) + 'Total Pages: ' + Str(_PAGENO)
ROW 10
COL 20
WIDTH 100
HEIGHT 30
FONTNAME 'Arial'
FONTSIZE 12
FONTBOLD .T.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
FONTCOLOR { 0 , 0 , 0 }
ALIGNMENT Left
END TEXT
END SUMMARY
* Group Definition *********************************************
BEGIN GROUP
GROUPEXPRESSION Test->Country
BEGIN GROUPHEADER
BANDHEIGHT 15
BEGIN TEXT
EXPRESSION Test->Country
ROW 5
COL 20
WIDTH 100
HEIGHT 30
FONTNAME 'Arial'
FONTSIZE 14
FONTBOLD .T.
END TEXT
END GROUPHEADER
BEGIN GROUPFOOTER
BANDHEIGHT 15
BEGIN LINE
FROMROW 8
FROMCOL 50
TOROW 8
TOCOL 160
PENWIDTH 0.1
PENCOLOR { 0 , 0 , 0 }
END LINE
END GROUPFOOTER
END GROUP
END REPORT
Return
Espero no molestar con estas inquietudes.
Muy agradecido anticipadamente.
- Attachments
-
- CON QUIEBRE.jpg (189.54 KiB) Viewed 3853 times
Re: # TOTAL DE PAGINAS
Adjunto la imagen del RPT Externo ... Sin quiebres ni Pie de página ... hacia abajo después del Total todo es blanco, no hay nada más.
Deberían haber 7 quiebres o GRUPOS por número de usuario.
Saludos.
Deberían haber 7 quiebres o GRUPOS por número de usuario.
Saludos.
- Attachments
-
- SIN QUIEBRE.jpg (179.98 KiB) Viewed 3826 times
- Pablo César
- Posts: 4059
- Joined: Wed Sep 08, 2010 1:18 pm
- Location: Curitiba - Brasil
# TOTAL DE PAGINAS
Hola Louis,
Gracias por tu preocupacion a respecto y estimular los reparos que como este es un BUG.
Me costó un poquito pero encontré dos problemas:
1. Faltaba el parámetro cHeader en una de las llamadas de
easyreport(ctitle,aheaders1,aheaders2,afields,awidths,atotals,nlpp,ldos,lpreview,cgraphic,nfi,nci,nff,ncf,lmul,cgrpby,chdrgrp,llandscape,ncpl,lselect,calias,nllmargin,aformats,npapersize,lnoprop)
Linea 102 de C:\hmg.3.3.1\SOURCE\Report\H_REPORT.PRG
Tambien fueron alterado en:
METHOD extreport1(cfilerep)
Linea 190 de C:\hmg.3.3.1\SOURCE\Report\H_REPORT.PRG porque tambien faltava argumento cHeader
2. Agregué clean1( donde decia:
cgrpby:=repobject:leadato('REPORT','GROUPED BY','')
para
cgrpby:=clean1( repobject:leadato('REPORT','GROUPED BY','') )
Linea 674 de C:\hmg.3.3.1\SOURCE\Report\H_REPORT.PRG
Observacion: Puse Clean1 porque mismo esté presente el método clean, yo no consigo utilizarlo. Tratamiento de classes, no es mi fuerte. Talvez el Dr. Claudio pueda darnos una manito... Entonces creé otra funcion con igual procedimiento pero con nombre distinto. Esto tendria que ser arreglado.
Adjunto mi C:\hmg.3.3.1\SOURCE\Report\H_REPORT.PRG que debe ser substituído y ejecutado el C:\hmg.3.3.1\SOURCE\Report\buildlib.bat para re-crear la biblioteca libreport.a
Y este es el resultado: Este demo fué adicionado HEADING " - Agrupando" en la funcion testrepo() que no teníamos ejemplo prático. Seria bueno que sea substituído por el actual SAMPLES.Espero que Claudio o Rathi nos ayude a arreglar el Clean1() para Clean() y modificar nuestra biblioteca de forma definitiva.
Gracias por tu preocupacion a respecto y estimular los reparos que como este es un BUG.
Me costó un poquito pero encontré dos problemas:
1. Faltaba el parámetro cHeader en una de las llamadas de
easyreport(ctitle,aheaders1,aheaders2,afields,awidths,atotals,nlpp,ldos,lpreview,cgraphic,nfi,nci,nff,ncf,lmul,cgrpby,chdrgrp,llandscape,ncpl,lselect,calias,nllmargin,aformats,npapersize,lnoprop)
Linea 102 de C:\hmg.3.3.1\SOURCE\Report\H_REPORT.PRG
Tambien fueron alterado en:
METHOD extreport1(cfilerep)
Linea 190 de C:\hmg.3.3.1\SOURCE\Report\H_REPORT.PRG porque tambien faltava argumento cHeader
2. Agregué clean1( donde decia:
cgrpby:=repobject:leadato('REPORT','GROUPED BY','')
para
cgrpby:=clean1( repobject:leadato('REPORT','GROUPED BY','') )
Linea 674 de C:\hmg.3.3.1\SOURCE\Report\H_REPORT.PRG
Observacion: Puse Clean1 porque mismo esté presente el método clean, yo no consigo utilizarlo. Tratamiento de classes, no es mi fuerte. Talvez el Dr. Claudio pueda darnos una manito... Entonces creé otra funcion con igual procedimiento pero con nombre distinto. Esto tendria que ser arreglado.
Adjunto mi C:\hmg.3.3.1\SOURCE\Report\H_REPORT.PRG que debe ser substituído y ejecutado el C:\hmg.3.3.1\SOURCE\Report\buildlib.bat para re-crear la biblioteca libreport.a
Y este es el resultado: Este demo fué adicionado HEADING " - Agrupando" en la funcion testrepo() que no teníamos ejemplo prático. Seria bueno que sea substituído por el actual SAMPLES.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein