Tuesday, 1 January 2013

Structures with Internal Tables

REPORT    zstr4_09  MESSAGE-ID  zstr_msg_09.
TABLES:spfli,  sflight.
TYPES:  BEGIN  OF  ty_spfli,
                carrid  TYPE  spfli-carrid,
                connid  TYPE  spfli-connid,
                cityfrom  TYPE  spfli-cityfrom,
                cityfto  TYPE  spfli-cityfrom,
            END  OF  ty_spfli.

TYPES:  BEGIN  OF  ty_sfli,
                carrid  TYPE  sflight-carrid,
                connid  TYPE  sflight-connid,
                fldate  TYPE  sflight-fldate,
                seatsmax  TYPE  sflight-seatsmax,
                seatsocc  TYPE  sflight-seatsocc,
            END  OF  ty_sfli.

DATA:  it_spfli  TYPE  TABLE  OF  ty_spfli,
            wa_spfli  LIKE  LINE  OF  it_spfli,
            it_sfli  TYPE  TABLE  OF  ty_sfli,
            wa_sflight  LIKE  LINE  OF  it_sfli,
            seatsfree  TYPE  i.

SELECTION-SCREEN  BEGIN  OF  BLOCK  b1  WITH  FRAME  TITLE  text-001.
SELECT-OPTIONS:  p_carrid  FOR  spfli-carrid.
SELECTION-SCREEN  END  OF  BLOCK  b1.
SELECTION-SCREEN  BEGIN  OF  BLOCK    b2  WITH  FRAME  TITLE  text-002.
PARAMETERS:  p_spfli  RADIOBUTTON  GROUP  g1  DEFAULT  'X',
                        p_sflig  RADIOBUTTON  GROUP  g1.
SELECTION-SCREEN  END  OF  BLOCK  b2.
CONSTANTS  mark  VALUE  'X'.

IF  mark  =  p_spfli.
    SELECT  carrid  connid  cityfrom  cityto  FROM  spfli  INTO  TABLE  it_spfli  WHERE  carrid  IN  p_carrid.
    IF  sy-subrc  =  0.
        MESSAGE  i002.
        LOOP  AT  it_spfli  INTO  wa_spfli.
            WRITE:/  wa_spfli-carrid,wa_spfli-connid.
        ENDLOOP.
    ELSE.
        MESSAGE  'No  Records  Found!'  TYPE  'I'.
        MESSAGE  s001.
    ENDIF.
ELSEIF  mark  =  p_sflig.
    SELECT  *  FROM  sflight  INTO  CORRESPONDING  FIELDS  OF  TABLE  it_sfli  WHERE  carrid  IN  p_carrid.
    IF  sy-subrc  =  0.
        MESSAGE  'Records  are  being  fetced...  PLz.  click  continue'  TYPE  'i'.
        LOOP  AT  it_sfli  INTO  wa_sflight.
            seatsfree  =  wa_sflight-seatsmax  -  wa_sflight-seatsocc.
            WRITE:/  wa_sflight-carrid,wa_sflight-connid,wa_sflight-fldate,
                            wa_sflight-seatsmax,wa_sflight-seatsocc,seatsfree.
        ENDLOOP.
    ELSE.
        MESSAGE  'No  Records  Found!'  TYPE  'I'.
        MESSAGE  s001.
    ENDIF.
ENDIF.

No comments:

Post a Comment