Report Zreport_demo5

You might also like

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.

IF currency IS NOT INITIAL.


PERFORM get_currency_in_order USING itab currency CHANGING
itab_final.
PERFORM data_display USING itab_final wa.

ELSE.
PERFORM data_display USING itab wa.

ENDIF.

ELSE.

WRITE : 'NO DATA FOUND FOR GIVEN CRITERIA '.

ENDIF.

FORM get_currency_in_order
USING i_itab LIKE itab
i_currency LIKE currency
CHANGING c_itab LIKE itab .

DATA: general_curr TYPE sbook-forcurkey,


i_wa LIKE wa.

MOVE i_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 c_itab.
ENDIF.

ENDLOOP.

ENDFORM.

FORM data_display
USING itab_dis LIKE itab
wa_dis LIKE wa.

LOOP AT itab_dis INTO wa_dis.

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

FORMAT COLOR 4 INVERSE ON.


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

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

ENDLOOP.

ENDFORM.

You might also like