*&---------------------------------------------------------------------*
*& Report  ZANMA_EJERCICIO4
*&
*&---------------------------------------------------------------------*

REPORT  zanma_ejercicio4.

*inicio de definicion de variables
DATA: itab_vuelos TYPE TABLE OF spfli WITH HEADER LINE.

SELECTION-SCREEN BEGIN OF BLOCK block WITH FRAME TITLE text-000.
PARAMETERS: pcompany(3) TYPE c,
            paisfrom(3) TYPE c,
            paisto(3) TYPE c.
SELECTION-SCREEN END OF BLOCK block.

* inicio del start of selection
START-OF-SELECTION.

*inicio llamada de los form
  PERFORM info USING pcompany paisfrom paisto. "imprime los datos informativos

  PERFORM search USING pcompany paisfrom paisto. "busca los datos en la tabla de la base de datos
  SKIP.
  PERFORM datos TABLES itab_vuelos.
  SKIP.
  PERFORM datos2 TABLES itab_vuelos.

**inicio de los codigos de los form
FORM info USING pcompany paisfrom paisto.

  WRITE: / '¿Qué Vamos a hacer?'.
  WRITE: / sy-uline(25).
  WRITE: / 'Voy a hacer la busqueda de la compañia', pcompany ,'con salida en el pais', paisfrom ,'y llegada en el pais', paisto.

ENDFORM.                    "info

*&---------------------------------------------------------------------*
*&      Form  search
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PCOMPANY   text
*      -->PAISFROM   text
*      -->PAISTO     text
*----------------------------------------------------------------------*

FORM search USING pcompany paisfrom paisto.

  SELECT * FROM spfli INTO TABLE itab_vuelos WHERE carrid = pcompany AND countryfr = paisfrom AND countryto = paisto.

ENDFORM.                    "search

*&---------------------------------------------------------------------*
*&      Form  datos
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->ITAB_VUELOS  text
*----------------------------------------------------------------------*
FORM datos TABLES itab_vuelos STRUCTURE spfli.

  DATA: cont(2) TYPE n VALUE 0.

  WRITE: / 'Resultados Encontrados'.
  WRITE: / sy-uline(25).
  SKIP.

  LOOP AT itab_vuelos.

    cont = cont + 1.

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
      EXPORTING
        input  = cont
      IMPORTING
        output = cont.

    WRITE: / 'Resultado ', cont.
    WRITE: / sy-uline(20).
    WRITE: / 'Compañia Aerea: ',itab_vuelos-carrid,
           / 'Pais de Salida: ',itab_vuelos-countryfr,
           / 'Pais de Llegada: ',itab_vuelos-countryto.
    SKIP.

  ENDLOOP.

ENDFORM.                    "datos

*&---------------------------------------------------------------------*
*&      Form  datos2
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->ITAB_VUELOS  text
*----------------------------------------------------------------------*
FORM datos2 TABLES itab_vuelos STRUCTURE spfli.

  DATA: km TYPE spfli-distance.

  LOOP AT itab_vuelos.

    km = km + itab_vuelos-distance.

  ENDLOOP.

  WRITE: / 'Datos Complementarios'.
  WRITE: / sy-uline(25).
  WRITE: / 'La Distancia Recorrida entre todos lo vuelos encontrados es de',km,'Kilometros'.

ENDFORM.                                                    "datos2