*&---------------------------------------------------------------------*
*& Report  Z_DYNRO_MIT_NAVIGATION                                      *
*&---------------------------------------------------------------------*

REPORT  Z_DYNRO_MIT_NAVIGATION      .

DATA: wa_scarr TYPE scarr,
      wa_spfli TYPE spfli,
      table_spfli TYPE STANDARD TABLE OF spfli ,
      wa_sflight TYPE sflight,
      idx TYPE i,
      wa_idx LIKE idx,
      anz TYPE i,
      wa_anz LIKE anz ,
      anz_pai type i,
      anz_pbo type i.

DATA: ok_code TYPE sy-ucomm,
      save_ok LIKE ok_code .

DATA: wa_mandt TYPE scarr-mandt,
      wa_carrid TYPE scarr-carrid,
      wa_carrname TYPE scarr-carrname,
      wa_currcode TYPE scarr-currcode,
      wa_url TYPE scarr-url,
      wa_connid TYPE spfli-connid,
      wa_cityfrom TYPE spfli-cityfrom,
      wa_cityto TYPE spfli-cityto,
      wa_fltime TYPE spfli-fltime .

PARAMETER: p_carrid TYPE scarr-carrid .

START-OF-SELECTION .

  anz = 0 .
  idx = 1 .
  anz_pai = 0 .
  anz_pbo = 0 .

  SELECT SINGLE * FROM scarr INTO wa_scarr
         WHERE carrid = p_carrid .

* Lesen in eine interne Tabelle
  SELECT *
     FROM   spfli
     INTO wa_spfli
     WHERE carrid = p_carrid .
    anz = anz + 1 .
    APPEND wa_spfli TO table_spfli .
  ENDSELECT .

  wa_anz = anz .

  wa_mandt = wa_scarr-mandt .
  wa_carrid = wa_scarr-carrid .
  wa_carrname = wa_scarr-carrname .
  wa_currcode = wa_scarr-currcode .
  wa_url = wa_scarr-url .

  CALL SCREEN 100.


*---------------------------------------------------------------------*
*  MODULE status_0100 OUTPUT
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  anz_pbo = anz_pbo + 1 .
  SET PF-STATUS 'STATUS_100'.
  SET TITLEBAR '100'.

  wa_idx = idx .
  READ TABLE table_spfli INDEX idx INTO wa_spfli .
  wa_connid = wa_spfli-connid .
  wa_cityfrom = wa_spfli-cityfrom.
  wa_cityto = wa_spfli-cityto.
  wa_fltime = wa_spfli-fltime .

ENDMODULE.                    "status_0100 OUTPUT

*---------------------------------------------------------------------*
*  MODULE user_command_0100 INPUT
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  anz_pai = anz_pai + 1 .
  save_ok = ok_code.
  CLEAR ok_code.
  CASE save_ok.
    WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.
      LEAVE PROGRAM.
    WHEN 'FIRST' .
      idx = 1 .
    WHEN 'PREVIOUS' .
      IF idx > 1.
        idx = idx - 1 .
      ENDIF .
    WHEN 'NEXT' .
      IF idx < anz .
        idx = idx + 1 .
      ENDIF .
    WHEN 'LAST' .
      idx = anz .

*    WHEN OTHERS.
  ENDCASE.
ENDMODULE.                    "user_command_0100 INPUT