Salto de Pagina (Write)

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • mitosap
    Member
    • sep
    • 57

    #1

    Salto de Pagina (Write)

    Hola amigos.

    Tengo un reporte z, donde muestro varias entregas a escuelitas. Quisiera que por cada una de ellas (escuelas) me salte una pagina con su encabezado respectivo. Por ahora con el TOP-OF-PAGE se hace una sola vez.

    Parte del código (donde genero la impresion) :

    **///////////////////////////////////
    FORM IMPRIMIR .

    DATA: w_cantidad(9),
    w_saldo_fe (9),
    w_entreg_d(9),
    w_dias_sal (7).


    If prn eq 'X'.
    FORMAT COLOR 1 INTENSIFIED OFF.
    Endif.

    SORT it_alv by vtext ascending
    escuela ascending.

    Loop at it_alv.
    At new escuela.
    r_flag01 = 1.
    Endat.

    If r_flag01 = 1.
    r_flag01 = 0.
    perform TOP-OF-PAGE-PRN.
    Endif.

    write it_alv-cantidad to w_cantidad.
    write it_alv-saldo_fe to w_saldo_fe.
    write it_alv-entreg_d to w_entreg_d.
    write it_alv-dias_sal to w_dias_sal.

    Write:/001 it_alv-vbeln,
    010 it_alv-wadat,
    020 it_alv-material+12(6),
    027 it_alv-material+19(35),
    064 w_cantidad,
    073 w_saldo_fe,
    082 w_entreg_d,
    091 w_dias_sal.
    *
    skip.
    *
    At end of escuela.
    ULINE at (88).
    Sum.

    write it_alv-cantidad to w_cantidad.
    write it_alv-saldo_fe to w_saldo_fe.
    write it_alv-entreg_d to w_entreg_d.
    write it_alv-dias_sal to w_dias_sal.

    Write:/01 ' Total Entrega por Escuela ',
    064 w_cantidad,
    073 w_saldo_fe,
    082 w_entreg_d,
    091 w_dias_sal.
    *
    ULINE at /(88).
    skip 1.
    Endat.
    AT LAST.
    ULINE at (88).
    Sum.
    write it_alv-cantidad to w_cantidad.
    write it_alv-saldo_fe to w_saldo_fe.
    write it_alv-entreg_d to w_entreg_d.
    write it_alv-dias_sal to w_dias_sal.

    Write:/01 ' T o t a l F i n a l',
    064 w_cantidad,
    073 w_saldo_fe,
    082 w_entreg_d,
    091 w_dias_sal.
    *
    ULINE at /(88).
    ENDAT.
    ****>>>>>>>>>>>>>>>>>>>>>
    Endloop.
    ENDFORM.
    **//////////////////////////////////
    ** FORM PARA IMPRESION DE ENCABEZADOS (INICIALMENTE ESTABA COMO
    ** UN EVENTO, PERO SOLO LO HACE UNA VEZ, POR TAL RAZON LO INCLUI
    ** COMO UN FORM, PERO IGUAL NO ME FUINCIONA, ME HACE LOS **ENCABEZADOS POR CADA ESCUELA PERO CORRIDO, NECESITO SALTAR **ANTES DE IMPRIMIR ENCABEZADOS.
    **/////////////////////////////////
    *TOP-OF-PAGE.
    FORM TOP-OF-PAGE-PRN.
    *SELECT SINGLE * FROM t001w WHERE werks eq w_werks.
    If prn eq 'X'.
    FORMAT COLOR 1 INTENSIFIED OFF.
    Endif.
    ULINE at (88).
    WRITE:/001 w_texto,
    055 'Fecha de Emisión:', 73 SY-DATUM.
    WRITE:/001 'Distrito Escolar: ',
    019 it_alv-vtext,
    055 'Hora de Emision :', 73 SY-UZEIT.

    WRITE:/001 'Escuela Destino :',
    019 it_alv-escuela+0(50),
    73 SY-pagno.

    WRITE:/001 'Fecha Entrega ', w_fecha_larga.


    WRITE:/001 ' ', 55 'USUARIO: ', SY-SYSID, 72 '-', 73 SY-UNAME.

    *
    ULINE at /(88).

    ENDFORM.
    **//////////////////////////////////
    Gracias de antemano por su ayuda.
  • temaljose
    Senior Member
    • oct
    • 203

    #2
    Hola amigo, tu codigo deberia quedar asi:
    **///////////////////////////////////
    FORM IMPRIMIR .

    DATA: w_cantidad(9),
    w_saldo_fe (9),
    w_entreg_d(9),
    w_dias_sal (7).


    If prn eq 'X'.
    FORMAT COLOR 1 INTENSIFIED OFF.
    Endif.

    SORT it_alv by escuela ascending vtext ascending.
    Loop at it_alv.
    At new escuela.
    new-page.
    Endat.

    write it_alv-cantidad to w_cantidad.
    write it_alv-saldo_fe to w_saldo_fe.
    write it_alv-entreg_d to w_entreg_d.
    write it_alv-dias_sal to w_dias_sal.

    Write:/001 it_alv-vbeln,
    010 it_alv-wadat,
    020 it_alv-material+12(6),
    027 it_alv-material+19(35),
    064 w_cantidad,
    073 w_saldo_fe,
    082 w_entreg_d,
    091 w_dias_sal.
    *
    skip.
    *
    At end of escuela.
    ULINE at (88).
    Sum.

    write it_alv-cantidad to w_cantidad.
    write it_alv-saldo_fe to w_saldo_fe.
    write it_alv-entreg_d to w_entreg_d.
    write it_alv-dias_sal to w_dias_sal.

    Write:/01 ' Total Entrega por Escuela ',
    064 w_cantidad,
    073 w_saldo_fe,
    082 w_entreg_d,
    091 w_dias_sal.
    *
    ULINE at /(88).
    skip 1.
    Endat.
    AT LAST.
    ULINE at (88).
    Sum.
    write it_alv-cantidad to w_cantidad.
    write it_alv-saldo_fe to w_saldo_fe.
    write it_alv-entreg_d to w_entreg_d.
    write it_alv-dias_sal to w_dias_sal.

    Write:/01 ' T o t a l F i n a l',
    064 w_cantidad,
    073 w_saldo_fe,
    082 w_entreg_d,
    091 w_dias_sal.
    *
    ULINE at /(88).
    ENDAT.
    ****>>>>>>>>>>>>>>>>>>>>>
    Endloop.
    ENDFORM.
    **//////////////////////////////////
    ** FORM PARA IMPRESION DE ENCABEZADOS (INICIALMENTE ESTABA COMO
    ** UN EVENTO, PERO SOLO LO HACE UNA VEZ, POR TAL RAZON LO INCLUI
    ** COMO UN FORM, PERO IGUAL NO ME FUINCIONA, ME HACE LOS **ENCABEZADOS POR CADA ESCUELA PERO CORRIDO, NECESITO SALTAR **ANTES DE IMPRIMIR ENCABEZADOS.
    **/////////////////////////////////
    FORM TOP-OF-PAGE.
    *SELECT SINGLE * FROM t001w WHERE werks eq w_werks.
    If prn eq 'X'.
    FORMAT COLOR 1 INTENSIFIED OFF.
    Endif.
    ULINE at (88).
    WRITE:/001 w_texto,
    055 'Fecha de Emisión:', 73 SY-DATUM.
    WRITE:/001 'Distrito Escolar: ',
    019 it_alv-vtext,
    055 'Hora de Emision :', 73 SY-UZEIT.

    WRITE:/001 'Escuela Destino :',
    019 it_alv-escuela+0(50),
    73 SY-pagno.

    WRITE:/001 'Fecha Entrega ', w_fecha_larga.


    WRITE:/001 ' ', 55 'USUARIO: ', SY-SYSID, 72 '-', 73 SY-UNAME.

    *
    ULINE at /(88).

    ENDFORM.

    saludos y espero te ayude
    Lo unico que se, es que no se nada.....

    Comentario

    • zonanet
      Senior Member
      • mar
      • 195

      #3
      te recomiendo que no uses el top of page, en su lugar usa las cabeceras de lista, es igual que el top-of-page, sólo que aquí cuentas únicamente con 4 renglones para tu encabezado, así cada vez que saltas a una página nueva se imprime la cabecera, la forma de llegar a las cabeceras de lista es:

      Menu PASAR A ----> ELEMENTOS DE TEXTO----> CABECERAS DE LISTA

      tienes que "acomodar" como quieres que se imprima en pantalla pero eso a prueba y error.


      cualquier cosa que no me haya explicado bien, lo haces saber.

      Saludos

      Comentario

      • mitosap
        Member
        • sep
        • 57

        #4
        Excelente amigos, justo lo que buscaba. En cuanto a la cabecera lo tendré presente para cuando no requiera tantas filas de encabezados, por ahora lo manejaré en el evento top_op_page.

        Que estén muy bien.

        Comentario

        Trabajando...