Sap abap report program

18
Pseudo code of the report program. Get Country from User. Select Required records from table: SCUSTOM into internal table: ITABSCUSTOM Where country = country code. Case Country. When 'DE'. Country Name = 'Germany'. When 'GB'. Country Name = 'Great Britain'. When 'US'. Country Name = 'USA'. When 'CA'. Country Name = 'Canada'. When 'FR'. Country Name = 'France'. When 'AU'. Country Name = 'Australia'. When 'NZ'. Country Name = 'New Zealand'. When Others.

description

This Program generates the Reports of the Business and Private Customers after entering the country code by the user; it also generates the report of the bookings of the Particular Customer.

Transcript of Sap abap report program

Page 1: Sap abap report program

Pseudo code of the report program.

Get Country from User.

Select Required records from table: SCUSTOM into internal table: ITABSCUSTOM Where country = country code.

Case Country.

  When 'DE'.

    Country Name = 'Germany'.

  When 'GB'.

    Country Name = 'Great Britain'.

  When 'US'.

    Country Name = 'USA'.

  When 'CA'.

    Country Name = 'Canada'.

  When 'FR'.

    Country Name = 'France'.

  When 'AU'.

    Country Name = 'Australia'.

  When 'NZ'.

    Country Name = 'New Zealand'.

  When Others.

Print: Error Message.

End Case.

Print country, page and number.

Print system information – date, time, and user.

Page 2: Sap abap report program

Loop of internal table itabscustom for Business Customer.

Count For number of Business customer.

Select records from Sbook where Customer id of internal table and table are same.

Print records from internal table for business customer.

End Loop.

IF no records for business customer

Print message

Loop of internal table itabscustom for Business Customer.

Count For number of Private customer.

Select records from Sbook where Customer id of internal table and table are same.

Print records from internal table for Private customers.

End Loop.

if no records for Private customer.

Print message

Print total number of business customers.

Print total number of private customers.

Print hidden id and name of customer selected

Select Required records from table: SBOOK into internal table: itab_sbook Where id = hidden id

Loop of internal table itab_sbook.

Select Agent Name from table: Stravelag to internal table: itab_sbook where Agency number is same.

Modify the internal table for the Record.

End Loop.

Sort internal table: itab_sbook by name in ascending order

Print Required records from internal table: itab_sbook.

Page 3: Sap abap report program

Print Class

If itab_sbook class ‘F’

Class name = 'FRST'

Else if class ‘C’.

Class name = 'BSNS'

Else if class ‘Y’

Class name= 'ECON'

End if.

IF No Bookings for the customer

Print message

Print: Total Bookings for the Customer

Page 4: Sap abap report program

Hard Code of the Program:

*&---------------------------------------------------**& *&---------------------------------------------------**& Customer Booking Report*&*&---------------------------------------------------*

REPORT YA4004A2.

*----------------------------------------------------** Tables. *

*----------------------------------------------------*

TABLES: SCUSTOM, " Customer Detail Table. SBOOK, " Booking Detail Table. STRAVELAG. " Travel Agency Detail Table.

*-----------------------------------------------------** Variables. *

*-----------------------------------------------------*

DATA: BOOKING TYPE I, " Number Of Bookings. CUSTOMER_NO_B(3) TYPE P, " Total No of Business Customers. CUSTOMER_NO_P(3) TYPE P, " Total No of Private Customers. CUSTOMER_BOOK_NO TYPE I, " Total Customers Booking Numbers. COUNTRY_NAME TYPE STRING, " Country Name. AGENT_NAME TYPE STRING, " Agent Name. AGENCY_NUMBER TYPE I, " Agency Number. CLASS_NAME TYPE STRING. " Class Name For Ticket Class.

*-----------------------------------------------------** Internal Table of Scustom Table.*-----------------------------------------------------*

DATA: BEGIN OF ITABSCUSTOM OCCURS 0, ID LIKE SCUSTOM-ID, NAME LIKE SCUSTOM-NAME, POSTBOX LIKE SCUSTOM-POSTBOX, POSTCODE LIKE SCUSTOM-POSTCODE, CITY LIKE SCUSTOM-CITY, DISCOUNT LIKE SCUSTOM-DISCOUNT, CUSTTYPE LIKE SCUSTOM-CUSTTYPE,

Page 5: Sap abap report program

END OF ITABSCUSTOM.

*-----------------------------------------------------** Internal Table of Sbook and Stravelag Tables.*-----------------------------------------------------*

DATA: BEGIN OF ITAB_SBOOK OCCURS 0, FLIGHT_DATE LIKE SBOOK-FLDATE, BOOK_ID LIKE SBOOK-BOOKID, CARR_ID LIKE SBOOK-CARRID, CONN_ID LIKE SBOOK-CONNID, CLASS LIKE SBOOK-CLASS, AGENCY_NUMBER LIKE STRAVELAG-AGENCYNUM, AGENT_NAME LIKE STRAVELAG-NAME, END OF ITAB_SBOOK.

*-----------------------------------------------------** User Will Input Company Code Manually.*-----------------------------------------------------*

PARAMETERS: Country LIKE SCUSTOM-COUNTRY.

*-----------------------------------------------------** Fatch the Required Data From Scustom Table to* ItabScustom Internal Table.*-----------------------------------------------------*

*-----------------------------------------------------*

SELECT ID NAME POSTBOX POSTCODE CITY DISCOUNT CUSTTYPE FROM SCUSTOM INTO TABLE ITABSCUSTOM WHERE COUNTRY = Country.

*-----------------------------------------------------*

*-----------------------------------------------------** Using Case, Country Names Deternined From* Country Code and If the Country Code is Other Than* Given Seven Contries, Display Appropriate Message.*-----------------------------------------------------*

CASE Country.

Page 6: Sap abap report program

WHEN 'DE'.

COUNTRY_NAME = 'Germany'.

WHEN 'GB'.

COUNTRY_NAME = 'Great Britain'.

WHEN 'US'.

COUNTRY_NAME = 'USA'.

WHEN 'CA'.

COUNTRY_NAME = 'Canada'.

WHEN 'FR'.

COUNTRY_NAME = 'France'.

WHEN 'AU'.

COUNTRY_NAME = 'Australia'.

WHEN 'NZ'.

COUNTRY_NAME = 'New Zealand'.

WHEN OTHERS.

SKIP 1. ULINE AT /1(175).

WRITE: /1 SY-VLINE NO-GAP,'No' AS ICON, 'You cannot Search other than 7 countries.' color 6, 175 SY-VLINE NO-GAP. ULINE AT /1(175). EXIT.

ENDCASE.

*-----------------------------------------------------** Print the Report Heading With System Variables.*-----------------------------------------------------*

TOP-OF-PAGE. ULINE AT /1(175).

FORMAT COLOR COL_HEADING. WRITE: / SY-VLINE NO-GAP,25 'Customer Booking Report for',

Page 7: Sap abap report program

COUNTRY_NAME,110 'Page :', SY-PAGNO, 175 SY-VLINE NO-GAP. ULINE AT /1(175).

WRITE: / SY-VLINE NO-GAP,'Run Date', 20 SY-DATUM,55 'At :',60 SY-UZEIT, 90 'By :',SY-UNAME,175 SY-VLINE NO-GAP.

ULINE AT /1(175).

WRITE: / SY-VLINE NO-GAP,'Customer ID',25 'Name', 55 'Post Box',69 'Post Code',90 'City', 119 'Discount',133 'Number of Bookings', 175 SY-VLINE NO-GAP.

FORMAT RESET.

ULINE AT /1(175).

*-----------------------------------------------------** Start of Selection starts from Here and Also* Prints Some Messages With System Variables.*-----------------------------------------------------*

START-OF-SELECTION.

WRITE: /175 SY-VLINE NO-GAP.

WRITE: 1 SY-VLINE NO-GAP,'Bussiness Customers' COLOR 7, 175 SY-VLINE NO-GAP.

WRITE: /1 SY-VLINE NO-GAP,175 SY-VLINE NO-GAP.

*-----------------------------------------------------** Loop Of Internal Table Itabscustom with* Business Customers.*-----------------------------------------------------*

LOOP AT ITABSCUSTOM WHERE CUSTTYPE = 'B'.

CUSTOMER_NO_B = CUSTOMER_NO_B + 1. " Counter For Total Number Of " Customers with Type Business.

SELECT * FROM SBOOK " Check the Common ID's WHERE CUSTOMID = ITABSCUSTOM-ID. " Between the Itabscustom ENDSELECT. " and Table Sbook and Select Data.

BOOKING = SY-DBCNT.

*-----------------------------------------------------*

Page 8: Sap abap report program

* Print the Report Lines.*-----------------------------------------------------*

WRITE: / SY-VLINE NO-GAP,ITABSCUSTOM-ID, 25 ITABSCUSTOM-NAME,55 ITABSCUSTOM-POSTBOX, 70 ITABSCUSTOM-POSTCODE,90 ITABSCUSTOM-CITY, 120 ITABSCUSTOM-DISCOUNT,'%',130 BOOKING, 175 SY-VLINE NO-GAP.

*-----------------------------------------------------** Hidden fields Require For the Secondry List's* Common fields.*-----------------------------------------------------*

HIDE:ITABSCUSTOM-ID, ITABSCUSTOM-NAME. " Hidden fields Customer-ID " and Customer-Name.

ENDLOOP.

SORT ITABSCUSTOM BY ID ASCENDING. " Sort By Customer ID " in Ascending Order.

*-----------------------------------------------------** IF the Record not found with Bussines Customer,* it will return Message.*-----------------------------------------------------*

IF SY-SUBRC <> 0.

WRITE: /1 SY-VLINE NO-GAP,175 SY-VLINE NO-GAP.

FORMAT COLOR 6.

WRITE: /1 SY-VLINE NO-GAP, 5 'No Business Customers Records from', COUNTRY_NAME,175 SY-VLINE NO-GAP.

FORMAT RESET.

WRITE: /1 SY-VLINE NO-GAP,175 SY-VLINE NO-GAP.

ENDIF.

WRITE: /1 SY-VLINE NO-GAP,175 SY-VLINE NO-GAP. WRITE: /1 SY-VLINE NO-GAP,175 SY-VLINE NO-GAP.

WRITE: 1 SY-VLINE NO-GAP, 'Private Customers' COLOR 7,175 SY-VLINE NO-GAP.

Page 9: Sap abap report program

WRITE: /1 SY-VLINE NO-GAP,175 SY-VLINE NO-GAP.

*-----------------------------------------------------** Loop Of Internal Table Itabscustom with* Private Customers.*-----------------------------------------------------*

LOOP AT ITABSCUSTOM WHERE CUSTTYPE = 'P'.

CUSTOMER_NO_P = CUSTOMER_NO_P + 1. " Counter For Total Number Of " Customers with Type Private.

SELECT * FROM SBOOK " Check the Common ID's WHERE CUSTOMID = ITABSCUSTOM-ID. " Between the Itabscustom ENDSELECT. "and Table Sbook and Select Data.

BOOKING = SY-DBCNT.

*-----------------------------------------------------** Print the Report Lines.*-----------------------------------------------------*

WRITE: /1 SY-VLINE NO-GAP,ITABSCUSTOM-ID, 25 ITABSCUSTOM-NAME,55 ITABSCUSTOM-POSTBOX, 70 ITABSCUSTOM-POSTCODE,90 ITABSCUSTOM-CITY, 120 ITABSCUSTOM-DISCOUNT,'%',130 BOOKING, 175 SY-VLINE NO-GAP.

*-----------------------------------------------------** Hidden fields Require For the* Secondry List's Common fields.*-----------------------------------------------------*

HIDE:ITABSCUSTOM-ID, ITABSCUSTOM-NAME. " Hidden fields Customer-ID " and Customer-Name.

ENDLOOP.

SORT ITABSCUSTOM BY ID ASCENDING. " Sort By Customer ID " in Ascending Order.

*-----------------------------------------------------** IF the Record not found with Private Customer,* it will return Message.*-----------------------------------------------------*

IF SY-SUBRC <> 0.

WRITE: /1 SY-VLINE NO-GAP,175 SY-VLINE NO-GAP.

Page 10: Sap abap report program

FORMAT COLOR 6. WRITE: /1 SY-VLINE NO-GAP, 5 'No Private Customers Records from', COUNTRY_NAME,175 SY-VLINE NO-GAP. FORMAT RESET.

WRITE: /1 SY-VLINE NO-GAP,175 SY-VLINE NO-GAP.

ENDIF.

ULINE AT /1(175).

*-----------------------------------------------------** Prints Total Number Of Business Customers.*-----------------------------------------------------*

FORMAT COLOR 3. WRITE: /1 SY-VLINE NO-GAP, 'Total Business Customers:', 27 CUSTOMER_NO_B,175 SY-VLINE NO-GAP.

*-----------------------------------------------------** Prints Total Number Of Private Customers.*-----------------------------------------------------*

WRITE: /1 SY-VLINE NO-GAP,'Total Private Customers:', 27 CUSTOMER_NO_P,175 SY-VLINE NO-GAP. FORMAT RESET.

ULINE AT /1(175).

*-----------------------------------------------------** Prints Message At the Top Of the Page* with Some System Varibles.*-----------------------------------------------------*

TOP-OF-PAGE DURING LINE-SELECTION. FORMAT COLOR COL_HEADING. ULINE AT /1(175). WRITE: /1 SY-VLINE NO-GAP,25 'Customer Flight Booking.', 110 'Page :', SY-PAGNO,175 SY-VLINE NO-GAP. ULINE AT /1(175).

WRITE: /1 SY-VLINE NO-GAP,25 'Flight Booking for Customer', ITABSCUSTOM-ID,':',ITABSCUSTOM-NAME,175 SY-VLINE NO-GAP.

ULINE AT /1(175).

WRITE: /1 SY-VLINE NO-GAP,'Travel Agent',

Page 11: Sap abap report program

45 'Flight Date',67 'Booking ID', 85 'Carrier ID',105 'Flight Number', 127 'Ticket Class',175 SY-VLINE NO-GAP.

ULINE AT /1(175).

FORMAT RESET.

*-----------------------------------------------------** At Line Selection Part for the Drill Down* from First List to Secondry List.*-----------------------------------------------------*

AT LINE-SELECTION. " For Drill Down To Secondry List.

CHECK NOT ITABSCUSTOM-ID IS INITIAL. "Check the Initial Value Of the"ID.

*-----------------------------------------------------** Fatch the Required Data From Sbook Table* to ITAB_SBOOK Internal Table whose Customer ID's are Same.*-----------------------------------------------------*

*-----------------------------------------------------*

SELECT FLDATE BOOKID CARRID CONNID CLASS AGENCYNUM FROM SBOOK INTO TABLE ITAB_SBOOK WHERE CUSTOMID = ITABSCUSTOM-ID.

*-----------------------------------------------------*

*-----------------------------------------------------** Loop Of Internal Table ITAB_SBOOK.*-----------------------------------------------------*

LOOP AT ITAB_SBOOK.

CUSTOMER_BOOK_NO = SY-TABIX. " Gives the Total Number Of the " Customer's Bookings.

SELECT SINGLE * FROM STRAVELAG WHERE AGENCYNUM = ITAB_SBOOK-AGENCY_NUMBER.

ITAB_SBOOK-AGENT_NAME = STRAVELAG-NAME.

MODIFY ITAB_SBOOK INDEX SY-TABIX.

ENDLOOP.

Page 12: Sap abap report program

SORT ITAB_SBOOK BY AGENT_NAME ASCENDING. "Sort Name in Ascending "Order.

*-----------------------------------------------------** Loop Of Internal Table ITAB_SBOOK* for Print the Records.*-----------------------------------------------------*

LOOP AT ITAB_SBOOK.

*-----------------------------------------------------** Print the Report Lines.*-----------------------------------------------------*

WRITE: /1 SY-VLINE NO-GAP,ITAB_SBOOK-AGENT_NAME, 40 SY-VLINE NO-GAP,45 ITAB_SBOOK-FLIGHT_DATE, 60 SY-VLINE NO-GAP,67 ITAB_SBOOK-BOOK_ID, 80 SY-VLINE NO-GAP,88 ITAB_SBOOK-CARR_ID, 100 SY-VLINE NO-GAP,110 ITAB_SBOOK-CONN_ID.

*-----------------------------------------------------** Using If Condition it Will Determine the class name* from Characters and Print it.*-----------------------------------------------------*

IF ( ITAB_SBOOK-CLASS = 'F' ).

CLASS_NAME = 'FRCT'. WRITE: 120 SY-VLINE NO-GAP,130 CLASS_NAME.

ELSEIF ( ITAB_SBOOK-CLASS = 'C' ).

CLASS_NAME = 'BSNS'. WRITE: 120 SY-VLINE NO-GAP,130 CLASS_NAME.

ELSEIF ( ITAB_SBOOK-CLASS = 'Y' ).

CLASS_NAME = 'ECON'. WRITE: 120 SY-VLINE NO-GAP,130 CLASS_NAME.

ENDIF.

WRITE: 175 SY-VLINE NO-GAP.

ENDLOOP.

*-----------------------------------------------------*

Page 13: Sap abap report program

* If No Record Found For the Select Customer* It will Return the Message.*-----------------------------------------------------*

IF SY-SUBRC <> 0.

FORMAT COLOR 6. WRITE: /1 SY-VLINE NO-GAP,'No Record found of', ITABSCUSTOM-NAME,175 SY-VLINE NO-GAP. ULINE AT /1(175). EXIT.

ENDIF.

ULINE AT /1(175).

*-----------------------------------------------------** Prints the Total Number Of Customer Bookings.*-----------------------------------------------------*

FORMAT COLOR 3. WRITE: /1 SY-VLINE NO-GAP, 'Total Bookings for the Customer :', CUSTOMER_BOOK_NO,175 SY-VLINE NO-GAP.

ULINE AT /1(175). FORMAT RESET.

CLEAR ITABSCUSTOM. " Clear the Itabscustom table " before end of selection.

*-----------------------------------------------------** End Of the Selection.*-----------------------------------------------------*

END-OF-SELECTION.

CLEAR ITABSCUSTOM. " Clear the Itabscustom table " After end of selection.

*-----------------------------------------------------** End OF The Report Program.*-----------------------------------------------------*

Page 14: Sap abap report program

Example:

The example of the output report of this program is given below.

Report Program output:

Output of the Customers (B and P).

Output of the Customer’s Bookings.

Page 15: Sap abap report program