Tuesday, 1 January 2013

SY-LSIND Example



REPORT xxx.
TABLES: spfli.
PARAMETERS: p_carrid TYPE spfli-carrid.


DATA: itab TYPE TABLE OF spfli,
      wa TYPE spfli,
      itab2 TYPE TABLE OF sflight,
      wa2 TYPE sflight.

SELECT * FROM spfli  INTO TABLE itab WHERE carrid = p_carrid.
IF sy-subrc EQ  0.
  LOOP AT itab INTO wa.
    WRITE:/ wa-carrid, wa-connid, wa-cityfrom, wa-cityto.
    HIDE: wa-carrid,wa-connid.
  ENDLOOP.
ELSE.
  MESSAGE 'NO RECORDS FOUND' TYPE 'I'.
ENDIF.

AT LINE-SELECTION.
  CASE sy-lsind.
      WRITE:/ sy-lsind.
    WHEN 1.
      SELECT * FROM sflight INTO TABLE itab2 WHERE carrid = wa-carrid AND connid = wa-connid.
      LOOP AT itab2 INTO wa2.
        WRITE:/ wa2-carrid,wa2-connid,wa2-seatsmax, wa2-seatsocc.
        HIDE: wa2-seatsmax,wa2-seatsocc.
      ENDLOOP.
    WHEN 2.
      DATA: freeseats TYPE sflight-seatsmax.
      freeseats = wa2-seatsmax - wa2-seatsocc.
      WRITE:/ freeseats.
  ENDCASE.

No comments:

Post a Comment