Anuncio

Colapsar
No hay anuncio todavía.

Salto de Pagina ---Sapscript

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Salto de Pagina ---Sapscript

    Hola a todos.

    Hay forma imprimir masivamente sin necesidad de hacer click al botón de visualización de impresión o Impresión en formulario SAPSCRIPT?

    Resulta que tengo que listar para n clientes sus estados de cuenta. Inicialmente era selectivo, pero ahora me han pedido que se listen por categoría de clientes (Ejm. listar los clientes cuyos codigo de ramo KNA1-BRSCH = z111). Si son 250 clientes que estan en ese ramo necesito imprimir 250 estados de cuenta.

    El problema que estoy confrontando es que por cada cliente tengo que hacer click al botón de Visualización de impresión o Impresión uno por uno.
    Como podría hacer para ahorrarme los 254 click restantes y solo hacerlo para el primero?

    Agradezco su valiosa ayuda.

    Saludos desde Panamá.

  • #2
    El open form (internamente) tienen su propio salto de pagina pero para no hacerlo por cada cliente finalmente me funcionó con una variable propia (w_page) enviada desde el programa control la cual además de iniciar debí controlar su incremento en dos situaciones:

    1. Según líneas de detalle impresas (por cada write_form desde el programa control incremento un contador de líneas) y una vez llegue al limite re-ininio el contador de líneas (w_line) e incremento el contador de páginas (w_page).
    2. Cuando sea un cliente nuevo (como estoy provocando con el comando NEW-PAGE en el sapscript) debo re-iniciar el contador de páginas (w_page).

    De esta forma, me funcionó y me limito al click solo para el primer cliente.


    Por cierto el Open_form y Close_form los hago para el primero y último cliente respectivamente:
    LOOP itab_clientes.
    At first.
    CALL FUNCTION 'OPEN_FORM'
    EXPORTING
    FORM = 'ZESTADO_CUENTA'
    LANGUAGE = SY-LANGU
    OPTIONS = ITCPO
    DEVICE = 'PRINTER'
    DIALOG = 'X'
    EXCEPTIONS
    OTHERS = 1.

    IF SY-SUBRC NE 0.
    WRITE /'error al abrir formulario'.
    STOP.
    ENDIF.
    Endat.

    .....
    ** Aqui se invoca impresion de ventanas de Titulos,
    ** subtitulos, etc. Luego de sus impresiones le doy
    ** valor fijo al contador de líneas:
    w_line = 6.
    ** Esta es tablita con datos de partidas compensadas. A
    ** partir de este loop incremento y valido límite.
    Loop at itab.
    w_line = w_line + 1.
    If w_line gt 37.
    w_page = w_page + 1.
    w_line = 0.
    Endif.
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
    WINDOW = 'MAIN'
    ELEMENT = '***'
    EXCEPTIONS
    OTHERS = 1.
    Endloop.
    ** Este elemento en el sapscrpit tiene el commando NEW-PAGE
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
    WINDOW = 'MAIN'
    ELEMENT = '595'
    EXCEPTIONS
    OTHERS = 1.

    AT LAST.
    IF l_error IS INITIAL.
    CALL FUNCTION 'CLOSE_FORM'.
    IF sy-subrc NE 0.
    l_error = 'X'.
    ENDIF.
    ENDIF.
    ENDAT.
    ENDLOOP.

    Me funcionó y no sé si es la mejor opción sin embargo la comparto con todos uds.

    Saludos y que estén buy bien.

    Comentario


    • #3
      Muchas gracias por tu aporte!

      Comentario

      Trabajando...
      X