20 de julio de 2006

Obtener el número de página en el que fué impreso cada registro en un reporte

Usando esta función podés obtener el número de página en el que fue impreso cada registro en un reporte.

Para que el reporte actualice los datos hay que colocar en el "On Exit" de la banda Detail del reporte una llamada a la función SavePageNo()

Una vez finalizado el reporte queda en la tabla PageCnt.dbf del directorio temporal cada registro impreso con el número de página correspondiente.

FUNCTION SavePageNo
  LOCAL nSel, nRec
  nRec = RECNO()
  nSel = SELECT()
  IF EMPTY(SELECT("PageCnt"))
    CREATE TABLE (ADDBS(SYS(2023)) + "PageCnt") FREE ;
      (RECNO I UNIQUE, PageNo I)
    INDEX ON BINTOC(RECNO) TAG RECNO
  ENDIF
  IF SEEK(BINTOC(nRec), "PageCnt")
    REPLACE PageNo WITH _PAGENO IN PageCnt
  ELSE
    INSERT INTO PageCnt VALUES (nRec, _PAGENO)
  ENDIF
  SELECT(nSel)
  RETURN
ENDFUNC

Mario Lopez

No hay comentarios. :

Publicar un comentario