Nueva Pagina En Formulario

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • apozosanz
    Member
    • feb
    • 86

    #1

    Nueva Pagina En Formulario

    Hola a todos .
    Tengo un formulario en el que represento los datos d euna tabla interna.
    Al hacer el write del main hago lo siguiente:

    LOOP AT IT_ABONADOS.

    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
    * ELEMENT = ' '
    WINDOW = 'MAIN'
    EXCEPTIONS
    ELEMENT = 1
    FUNCTION = 2
    TYPE = 3
    UNOPENED = 4
    UNSTARTED = 5
    WINDOW = 6
    BAD_PAGEFORMAT_FOR_PRINT = 7
    SPOOL_ERROR = 8
    OTHERS = 9.

    SUMA = SUMA + IT_ABONADOS-PRECIO.
    ENDLOOP.


    Se trata de sacar las facturas de los abonados para un mes seleccionado.
    Lo que quiero hacer es que en este loop, me cambie de pagina cada vez que cambie el nombre del abonado.
    La it la tengo ordenada por nombre de abonado.

    Alguien me puede decir como hacerlo.
    Gracias.
  • tomasm
    Member
    • jun
    • 87

    #2
    LOOP AT IT_ABONADOS.
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
    * ELEMENT = ' '
    WINDOW = 'MAIN'
    EXCEPTIONS
    ELEMENT = 1
    FUNCTION = 2
    TYPE = 3
    UNOPENED = 4
    UNSTARTED = 5
    WINDOW = 6
    BAD_PAGEFORMAT_FOR_PRINT = 7
    SPOOL_ERROR = 8

    at end of it_abonados-NOMBRE.
    write:/ suma.
    clear suma.
    endat.

    at new it_abonados-NOMBRE.
    new-page.
    *perform cabecera. " (si la hay)
    endat.

    SUMA = SUMA + IT_ABONADOS-PRECIO.
    ENDLOOP.


    Suerte, que esto funciona.
    Editado por última vez por tomasm; 31/08/2006, 12:39:59.

    Comentario

    • apozosanz
      Member
      • feb
      • 86

      #3
      Hola.
      El At End Lo Quito Porque La Suma La Represento En Una Ventana Aparte.
      De Todos Modos El

      At New Nombre
      New-page
      Endat

      No Me Lo Hace.

      De Todos Modos Gracias, Si Se Te Ocurre Otra Forma Me Los Dices.
      Algo Habra Que Estoy Poniendo Mal.
      Saludos.
      Alfonso

      Comentario

      • tomasm
        Member
        • jun
        • 87

        #4
        Lo que pide el at new x, es que la tabla interna esté ordenada, no importa si es ascending o descending.

        Te copio la ayuda.

        Example
        DATA: NAME(30),
        SALES TYPE I.
        FIELD-GROUPS: HEADER, INFOS.
        INSERT: NAME INTO HEADER,
        SALES INTO INFOS.
        ...
        LOOP.
        AT NEW NAME.
        NEW-PAGE.
        ENDAT.
        ...
        AT END OF NAME.
        WRITE: / NAME, SUM(SALES).
        ENDAT.
        ENDLOOP.

        Comentario

        • tomasm
          Member
          • jun
          • 87

          #5
          Otra manera, es la habitual, de guardar el nombre que estas tratando en una variable auxiliar, y cuando cambie, hacer algo.

          Saludos !!!!!!

          Comentario

          Trabajando...