Anuncio

Colapsar
No hay anuncio todavía.

Mi primer formulario con SAPscript (Ayuda por favor)

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

  • Mi primer formulario con SAPscript (Ayuda por favor)

    Buenos días a todos:

    Estoy haciendo mi primer formulario con SapScript. Es un formulario muy sencillo, simplemente lo que hace es mostrar el contenido de la Tabla de Diccionario de datos SFLIGHT (Tabla de vuelos que viene como ejemplo en SAP)

    No entiendo por qué al hacer la llamada a la función imprimir formulario, duplica la primera fila de datos de la tabla. ¿Le ha pasado a alguien algo parecido y sabe como solucionarlo?

    Muchas gracias y un cordial saludo.

  • #2
    Hola Bienvenido!

    el problema está dentro de la ventana MAIN ? con algún elemento de texto en especial?

    Saludos!

    Comentario


    • #3
      Buenos días a todos, muchas gracias por responder a mi pregunta en el foro.

      Voy a intentar contar con detalle que es lo que me pasa. En la ventana MAIN tengo los siguientes elementos de texto (o simbolos):

      &WA-CARRID& &SPACE(18)& &WA-CONNID& &SPACE(14)& &WA-FLDATE&

      Desde el programa ABAP tengo el siguiente código:

      * Resto de código

      LOOP AT WA.
      PERFORM IMPRIMIR USING 'MAIN'.
      ENDLOOP.

      * Resto de código

      FORM IMPRIMIR USING VENTANA.

      CALL FUNCTION 'WRITE_FORM'
      EXPORTING
      WINDOW = VENTANA
      EXCEPTIONS
      ELEMENT = 1
      FUNCTION = 2
      TYPE = 3
      UNOPENED = 4
      UNSTARTED = 5
      WINDOW = 6
      OTHERS = 7.

      ENDFORM.

      La salida de programa para la compañía AA es la siguiente:

      Compañia Aerea Conexión vuelo Fecha de vuelo
      -----------------------------------------------------------------------------------
      AA 0026 15.03.2003
      AA 0026 15.03.2003
      AA 0026 03.05.2003
      AA 0026 14.06.2003
      AA 0026 19.07.2003

      Como pueden comprobar las dos primeras líneas de datos se duplican y no entiendo por qué, porque en la tabla SFLIGHT no aparece duplicada.

      En el código anterior si pongo dentro un simple WRITE en vez de llamar a la función IMPRIMIR, me saca los datos bien. El problema no es que la tabla WA esté mal cargada con datos duplicados.

      * Sin embargo este loop no duplica la primera línea
      LOOP AT WA.
      WRITE:/ WA-FLDATE.
      ENDLOOP.
      * Sin embargo este loop no duplica las líneas.

      ¿A alguien le ha pasado algo parecido? ¿Sabe como solucionarlo?

      Muchas gracias de antemano y un cordial saludo.

      Comentario


      • #4
        Hola navarra,

        pudiste resolverlo? limpiaste la cabecera de la tabla interna? probaste con un elemento de texto?

        Saludos

        Comentario


        • #5
          pienso que koken a dado en el clavo...
          con un clear it_sfligh antes o despues del loop, solucionarias
          esta incidencia. Pruebalo.

          Comentario


          • #6
            Hola,
            Lo mismo me pasaba. La solucion es la siguiente:
            Dentro del LOOP AT table, revisas lo siguiente
            IF sy-tabix = 1
            llamas WRITE_FORM, con los parametros
            FUNCTION = 'DELETE'
            WINDOW = 'MAIN'
            ELSE
            llamas WRITE_FORM, con los parametros
            FUNCTION = 'SET'
            WINDOW = 'MAIN'
            ENDIF
            ENDLOOP

            con el write_form a la primera posicion lo que hace es que borra la posicion que se duplica. Y cuando pasa por el Else, imprime todas las posiciones de tu tabla interna.
            Espero que sirva la respuesta.. Saludos cordiales!

            Betty :-D

            Comentario

            Trabajando...
            X