Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

*&---------------------------------------------------------------------*

*& Report ZREPORT_DEMO2


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zreport_demo4.

TABLES : spfli, sbook.

SELECTION-SCREEN SKIP.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-aaa.

SELECTION-SCREEN BEGIN OF LINE.


SELECTION-SCREEN COMMENT 1(15) text-001 .
PARAMETERS: frctr TYPE spfli-countryfr.

SELECTION-SCREEN COMMENT 40(15) text-002.


PARAMETERS: toctr TYPE spfli-countryto.
SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN SKIP.
SELECT-OPTIONS : airline FOR sbook-carrid.
SELECT-OPTIONS : depdate FOR sbook-fldate.

SELECTION-SCREEN SKIP.
PARAMETERS: smoker AS CHECKBOX,
currency TYPE sbook-forcurkey.

SELECTION-SCREEN END OF BLOCK b1.

DATA: BEGIN OF wa,


carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
countryfr TYPE spfli-countryfr,
airpfrom TYPE spfli-airpfrom,
countryto TYPE spfli-countryto,
airpto TYPE spfli-airpto,
fldate TYPE sbook-fldate,
bookid TYPE sbook-bookid,
smoker TYPE sbook-smoker,
class TYPE sbook-class,
forcuram TYPE sbook-forcuram,
forcurkey TYPE sbook-forcurkey,
END OF wa.

DATA: itab LIKE STANDARD TABLE OF wa,


itab_final LIKE itab.

IF smoker = 'X'.

SELECT a~carrid a~connid a~countryfr a~airpfrom a~countryto a~airpto


b~fldate b~bookid b~smoker b~class b~forcuram b~forcurkey
INTO CORRESPONDING FIELDS OF TABLE itab
FROM spfli AS a INNER JOIN sbook AS b
ON a~carrid = b~carrid
AND a~connid = b~connid
WHERE a~countryfr = frctr
AND a~countryto = toctr
AND a~carrid IN airline
AND b~fldate IN depdate
AND b~smoker = 'X'.

ELSE.

SELECT a~carrid a~connid a~countryfr a~airpfrom a~countryto a~airpto


b~fldate b~bookid b~smoker b~class b~forcuram b~forcurkey
INTO CORRESPONDING FIELDS OF TABLE itab
FROM spfli AS a INNER JOIN sbook AS b
ON a~carrid = b~carrid
AND a~connid = b~connid
WHERE a~countryfr = frctr
AND a~countryto = toctr
AND a~carrid IN airline
AND b~fldate IN depdate.

ENDIF.

IF sy-subrc = 0.
FORMAT COLOR 3 ON.
WRITE : 'TOTAL BOOKINGS FOUND' , sy-dbcnt.

NEW-LINE.

PERFORM get_currency_in_order USING itab currency CHANGING itab_final.

LOOP AT itab_final INTO wa.

AT NEW carrid.
ULINE.
FORMAT COLOR 3 ON.
WRITE : /40 'AIRLINE ID ' , wa-carrid.
ULINE.
ENDAT.

FORMAT COLOR 4 INVERSE ON.


WRITE : / sy-tabix, wa-carrid, wa-connid, wa-airpfrom, wa-airpto, wa-
fldate, wa-bookid, wa-class, wa-smoker, wa-forcuram, wa-forcurkey.
FORMAT COLOR 4 INVERSE OFF.

AT END OF carrid.
FORMAT COLOR 5 ON.
WRITE : /40 'BEGINING OF A NEW AIRLINE'.
ENDAT.

ENDLOOP.

ELSE.
WRITE : 'NO DATA FOUND FOR GIVEN CRITERIA '.

ENDIF.

FORM get_currency_in_order USING i_itab LIKE itab currency CHANGING e_itab


LIKE itab .
DATA: general_curr TYPE sbook-forcurkey,
i_wa LIKE wa.

MOVE currency TO general_curr.

LOOP AT i_itab INTO i_wa.

CALL FUNCTION 'CONVERT_TO_LOCAL_CURRENCY'


EXPORTING
client = sy-mandt
date = sy-datum
foreign_amount = i_wa-forcuram
foreign_currency = i_wa-forcurkey
local_currency = general_curr
type_of_rate = 'M'
IMPORTING
local_amount = i_wa-forcuram
.

IF sy-subrc = 0.

i_wa-forcurkey = general_curr.
APPEND i_wa TO e_itab.

ENDIF.

ENDLOOP.

ENDFORM.

You might also like