Calcular número total de paginas en ALV evento TOP_OF_PAGES
Para calcular el total de páginas impresas en un ALV, lo hice en el evento TOP_OF_PAGE. Bien la formula que encontré fue [TOTAL DE LINAS A IMPRIMIR entre EL TOTAL DE LINEAS QUE ME CABEN EN EL PAPEL]. Dudo que este sea el mejor método para hacer esto, pero fue el único que encontré, y vaya que investigue. Pero ya sabemos que los tiempos cuentan en esto. A mi me funciona bien.
data: vpage type sy-pagno, "Variable donde pondré el total
divit type p decimals 2,
vnlines type i.
clear: vpage,vnlines,divit.
"Conseguir el número total de lineas a imprimir
describe table xdata lines vnlines.
divit = vnlines / 50. "<-- Este 50, representa la cantidad de lineas que caben en mi impresión.
" como ya sabemos la impresión depende del formato de edición
" para este reporte tenia una de x_65_230
vpage = ceil( divit ). "Al utilizar el CEIL me redondea al próximo entero más grande. Ejemplo:
" 1.01 lo lleva a 2.. seria un total de 2 paginas impresas.
WRITE: / 'Página', sy-pagno, ' de ', vpage.
data: vpage type sy-pagno, "Variable donde pondré el total
divit type p decimals 2,
vnlines type i.
clear: vpage,vnlines,divit.
"Conseguir el número total de lineas a imprimir
describe table xdata lines vnlines.
divit = vnlines / 50. "<-- Este 50, representa la cantidad de lineas que caben en mi impresión.
" como ya sabemos la impresión depende del formato de edición
" para este reporte tenia una de x_65_230
vpage = ceil( divit ). "Al utilizar el CEIL me redondea al próximo entero más grande. Ejemplo:
" 1.01 lo lleva a 2.. seria un total de 2 paginas impresas.
WRITE: / 'Página', sy-pagno, ' de ', vpage.
Comentarios