Sap Abap Reports

107
Created by Pavan Page 1 of 107 Mail: [email protected] m Reports: In ABAP, there are total of 7 types of reports. They are: Classical Interactive Logical Database ABAP query ALV Reports (ALV stands for ABAP List Viewer) Report Writer/Report Painter Views (There are different types of views also) Classical Reports These are the simplest reports. Programmers learn this one first. It is just an output of data using the Write statement inside a loop. Classical reports are normal reports. These reports are not having any sub reports. IT IS HAVING ONLY ONE SCREEN/LIST FOR OUTPUT. Events In Classical Reports. INTIALIZATION: This event triggers before selection screen display. AT-SELECTION-SCREEN: This event triggers after processing user input still selection screen is in active mode. START OF SELECTION: Start of selection screen triggers after processing selection screen. END-OF-SELECTION: It is for Logical Database Reporting. Event blocks are introduced by an event keyword. They end when the next processing block begins. The following processing block can either be an event block or another processing block allowed in this context – for example, a subroutine or a dialog module. Event keywords have the same name as the events to which they react.

description

SAP ABAP Reports with sample logic and screen shots

Transcript of Sap Abap Reports

Page 1: Sap Abap Reports

Created by Pavan Page 1 of 107

Mail: [email protected]

Reports:

In ABAP, there are total of 7 types of reports. They are:

• Classical

• Interactive

• Logical Database

• ABAP query

• ALV Reports (ALV stands for ABAP List Viewer)

• Report Writer/Report Painter

• Views (There are different types of views also)

Classical Reports

These are the simplest reports. Programmers learn this one first. It is just an output

of data using the Write statement inside a loop.

• Classical reports are normal reports. These reports are not having any sub

reports. IT IS HAVING ONLY ONE SCREEN/LIST FOR OUTPUT.

Events In Classical Reports.

• INTIALIZATION: This event triggers before selection screen display.

• AT-SELECTION-SCREEN: This event triggers after processing user input

still selection screen is in active mode.

• START OF SELECTION: Start of selection screen triggers after processing

selection screen.

END-OF-SELECTION: It is for Logical Database Reporting.

Event blocks are introduced by an event keyword. They end when the next

processing block begins. The following processing block can either be an event

block or another processing block allowed in this context – for example, a

subroutine or a dialog module. Event keywords have the same name as the events

to which they react.

Page 2: Sap Abap Reports

Created by Pavan Page 2 of 107

Mail: [email protected]

Syntax:

DATA:...

INITIALIZATION.

...

AT SELECTION-SCREEN.

...

START-OF-SELECTION.

...

GET spfli...

..

...

END-OF-SELECTION.

...

FORM...

...

ENDFORM.

The sequence in which the processing blocks occur in the program is irrelevant.

The actual processing sequence is determined by the external events. However, to

make your programs easier to understand, you should include the event blocks in

your program in approximately the same order in which they will be called by the

system. Subroutines should be placed at the end of the program.

With only two exceptions (AT SELECTION-SCREEN and GET), event blocks

have no local data area. All declarative statements in event blocks are handled

with the global data declarations in the program. You should therefore include all

of your declarations at the start of the program.

Statements that are not assigned to a processing block are never executed. In

executable programs, all non-declarative statements between the REPORT or

PROGRAM statement and the first processing block are assigned to the default

event START-OF-SELECTION. if a program does not contain an explicit

Page 3: Sap Abap Reports

Created by Pavan Page 3 of 107

Mail: [email protected]

START-OF-SELECTION event block, these statements form the entire

START-OF-SELECTION block. If a program contains an explicitly defined

START-OF-SELECTION event block, these statements are inserted at the

beginning of this event block. If a program does not contain any explicit event

blocks, all non-declarative statements form the processing block START-OF-

SELECTION.

In ABAP Editor initial

screen give your program

name and then press F5 or

click on Create

Page 4: Sap Abap Reports

Created by Pavan Page 4 of 107

Mail: [email protected]

Fill all the attributes &

then save it

Page 5: Sap Abap Reports

Created by Pavan Page 5 of 107

Mail: [email protected]

Here Goes your coding check for

inconsistencies and then activate it

Page 6: Sap Abap Reports

Created by Pavan Page 6 of 107

Mail: [email protected]

*&---------------------------------------------------------------------* *& Report ZCLASSICAL * *& * *&---------------------------------------------------------------------* *& * *& * *&---------------------------------------------------------------------* REPORT ZCLASSICAL . TABLES: vbak,vbap. DATA: v_flag TYPE i. ******INTERNAL TABLE USED TO HOLD DATA TEMPORARILY DATA: BEGIN OF it_salesorder OCCURS 0, kunnr LIKE vbak-kunnr, " Sold To Party. vbeln LIKE vbak-vbeln, " Sales Document Number. posnr LIKE vbap-posnr, " Sales Document Item. matnr LIKE vbap-matnr, " Material Number. bstnk LIKE vbak-bstnk, " Customer purchase order number. bstdk LIKE vbak-bstdk, " Customer purchase order date. kwmeng LIKE vbap-kwmeng, " Cumulative order quantity. netpr LIKE vbap-netpr, " Net price. netwr LIKE vbap-netwr, " Net value of the order item. END OF it_salesorder. ***********INPUT THE DATA USING SELECT OPTIONS SELECT-OPTIONS: s_kunnr FOR vbak-kunnr, " Sold To Party. s_vbeln FOR vbak-vbeln. " Sales Document Number. **********INITIALIZATION INITIALIZATION. PERFORM initialization. *********FETCH THE DATA FROM TABLES AND PLACE THEM IN INTERNAL TABLE START-OF-SELECTION. PERFORM fetch_data. **********DISPLAYING THE DATA FROM INTERNAL TABLE END-OF-SELECTION. **********PAGE HEADINGS PERFORM Page_headings. PERFORM display_data. *&---------------------------------------------------------------------* *& Form initialization *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM initialization .

Page 7: Sap Abap Reports

Created by Pavan Page 7 of 107

Mail: [email protected]

s_kunnr-sign = 'I'. s_kunnr-option = 'BT'. s_kunnr-low = '1033'. s_kunnr-high = '1390'. APPEND s_kunnr. s_vbeln-sign = 'I'. s_vbeln-option = 'BT'. s_vbeln-low = '4969'. s_vbeln-high = '5000'. APPEND s_vbeln. ENDFORM. " initialization *&---------------------------------------------------------------------* *& Form fetch_data *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM fetch_data . REFRESH it_salesorder. CLEAR it_salesorder. SELECT kunnr vbak~vbeln posnr matnr bstnk bstdk kwmeng netpr vbap~netwr FROM vbak INNER JOIN vbap ON vbak~vbeln = vbap~vbeln INTO TABLE IT_SALESORDER WHERE kunnr IN s_kunnr AND vbak~vbeln IN s_vbeln. ENDFORM. " fetch_data *&---------------------------------------------------------------------* *& Form display_data *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM display_data . SORT it_salesorder BY kunnr vbeln. LOOP AT it_salesorder. AT NEW vbeln. format color 3 on. " COLOR START WRITE: / 'CUSTOMER:',it_salesorder-kunnr. format reset. "COLOR END ULINE. format color 4 on inverse on. "COLOR START

Page 8: Sap Abap Reports

Created by Pavan Page 8 of 107

Mail: [email protected]

WRITE:/ 'VBELN', "COLOR END 20 'POSNR', 35 'MATNR', 50 'BSTNK', 70 'BSTDK', 85 'KWMENG', 106 'NETPR', 121 'NETWR'. format reset. format color 4 on. WRITE: / it_salesorder-vbeln. format reset. ENDAT. format color 5 on inverse on. WRITE: /20 it_salesorder-posnr, 35 it_salesorder-matnr, 50 it_salesorder-bstnk, 70 it_salesorder-bstdk, 85 it_salesorder-kwmeng LEFT-JUSTIFIED, 101 it_salesorder-netpr, 109 it_salesorder-netwr. format reset. AT END OF vbeln. SKIP 2. ENDAT. ENDLOOP. ENDFORM. " display_data *&---------------------------------------------------------------------* *& Form page_headings *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM page_headings . format color 7 on inverse on. WRITE:/40 'SALES ORDER DOCUMENT FOR A GIVEN CUSTOMER'. SKIP. WRITE:/ 'DATE:',sy-datum, 100 'TIME:',sy-uzeit. format reset. SKIP 2. ENDFORM. " page_headings

Page 9: Sap Abap Reports

Created by Pavan Page 9 of 107

Mail: [email protected]

Page 10: Sap Abap Reports

Created by Pavan Page 10 of 107

Mail: [email protected]

Interactive Reports: In simple Interactive reports are nothing but which were user interface the name

itself signifies that it interacts with the users

A classical non-interactive report consists of one program that creates a single list.

Instead of one extensive and detailed list, with interactive reporting you create

basic list from which the user can call detailed information by positioning the

cursor and entering commands. Interactive reporting thus reduces information

retrieval to the data actually required.

Uses of interactive reporting: The user can actively control data retrieval and display during the session. Instead

of an extensive and detailed list, you create a basic list with condensed information

from which the user can switch to detailed displays by positioning the cursor and

entering commands. The detailed information appears in secondary lists.

Secondary list:

It allows you to enhance the information presented in the basic list. The user can,

for example, select a line of the basic list for which he wants to see more detailed

information. You display these details on a secondary list. Secondary lists may

either overlay the basic list completely or you can display them in an extra

window on the screen. The secondary lists can themselves be interactive again.

To prevent the user from selecting invalid lines, ABAP/4 offers several

possibilities. At the end of the processing block END-OF-SELECTION, delete the

contents of one or more fields you previously stored for valid lines using the HIDE

statement. At the event AT LINE-SELECTION, check whether the work area is

initial or whether the HIDE statement stored field contents there. After processing

the secondary list, clear the work area again. This prevents the user from trying to

create further secondary lists from the secondary list displayed.

Page 11: Sap Abap Reports

Created by Pavan Page 11 of 107

Mail: [email protected]

System fields for secondary lists:

SY-LSIND Index of the list created during the current event (basic list = 0)

SY-LISTI Index of the list level from which the event was triggered.

SY-LILLI Absolute number of the line from which the event was triggered.

SY-LISEL Contents of the line from which the event was triggered.

SY-CUROW Position of the line in the window from which the event was

triggered (counting starts with 1)

SY-CUCOL Position of the column in the window from which the event was

triggered (counting starts with 2).

SY-CPAGE Page number of the first displayed page of the list from which the

event was triggered.

SY-STARO Number of the first line of the first page displayed of the list from

which the event was triggered (counting starts with 1). Possibly, a page header

occupies this line.

SY-STACO Number of the first column displayed in the list from which the event

was triggered (counting starts with 1).

SY-UCOMM Function code that triggered the event.

SY-PFKEY Status of the displayed list.

Events for Interactive Reporting:

AT LINE-SELECTION Moment at which the user selects a line by double

clicking on it or by positioning the cursor on it and pressing F2.

AT USER-COMMAND Moment at which the user presses a function key.

TOP-OF-PAGE DURING Moment during list processing of a

LINE-SELECTION secondary list at which a new page starts.

Page 12: Sap Abap Reports

Created by Pavan Page 12 of 107

Mail: [email protected]

AT PF-FUNCTION KEY function key from F5 to F12 to perform interactive

action on the list.

Page 13: Sap Abap Reports

Created by Pavan Page 13 of 107

Mail: [email protected]

Page 14: Sap Abap Reports

Created by Pavan Page 14 of 107

Mail: [email protected]

*&---------------------------------------------------------------------* *& Report ZSIMPLE_INTERACTIVE * *& * *&---------------------------------------------------------------------* *& * *& * *&---------------------------------------------------------------------* REPORT ZSIMPLE_INTERACTIVE . TABLES: MARA,MARC,MARD. SELECT-OPTIONS: SMATNR FOR MARA-MATNR. *********************************************************** * INITIALIZATION. *********************************************************** INITIALIZATION. SMATNR-LOW = '1300-1400'. SMATNR-HIGH = '1300-2000'. SMATNR-SIGN = 'I'. SMATNR-OPTION = 'BT'. APPEND SMATNR. *********************************************************** * START-OF-SELECTION. *********************************************************** START-OF-SELECTION. WRITE:/10 'MATERIAL NO',25 'PLANT LOCATION',45 'STORAGE LOCATION'. ULINE. SELECT * FROM MARA WHERE MATNR IN SMATNR. WRITE:/10 MARA-MATNR,30 MARA-MBRSH,50 MARA-MTART. HIDE MARA-MBRSH. ENDSELECT. *********************************************************** * AT LINE-SELECTION. *********************************************************** AT LINE-SELECTION. IF SY-LSIND EQ 1. SELECT * FROM MARC WHERE MATNR EQ MARA-MATNR. WRITE:/ MARC-MATNR,MARC-WERKS. HIDE MARC-MATNR. ENDSELECT. ENDIF.

Page 15: Sap Abap Reports

Created by Pavan Page 15 of 107

Mail: [email protected]

IF SY-LSIND EQ 2. SELECT * FROM MARD WHERE WERKS EQ MARC-WERKS. WRITE:/10 MARD-MATNR, 25 MARD-WERKS,45 MARD-LGORT. HIDE MARD-MATNR. ENDSELECT. ENDIF. *********************************************************** * TOP-OF-PAGE DURING LINE-SELECTION. *********************************************************** TOP-OF-PAGE DURING LINE-SELECTION. IF SY-LSIND EQ 1. WRITE:/1 'MATERIAL NO',15 'PLANT LOCATION'. ULINE. ENDIF. TOP-OF-PAGE DURING LINE-SELECTION. IF SY-LSIND EQ 2. WRITE:/10 'MATERIAL NO',25 'PLANT LOCATION',45 'STORAGE LOCATION'. ENDIF. ************************************************************************

Page 16: Sap Abap Reports

Created by Pavan Page 16 of 107

Mail: [email protected]

The AT LINE-SELECTION event is triggered by double-clicking on the output

value to get the drilldown report.

First create two tables for this report

How to create Table?

Page 17: Sap Abap Reports

Created by Pavan Page 17 of 107

Mail: [email protected]

Page 18: Sap Abap Reports

Created by Pavan Page 18 of 107

Mail: [email protected]

Maintain Delivery Class & Table View

Maintenance

Page 19: Sap Abap Reports

Created by Pavan Page 19 of 107

Mail: [email protected]

Check Primary Key

Page 20: Sap Abap Reports

Created by Pavan Page 20 of 107

Mail: [email protected]

Create Data element

Page 21: Sap Abap Reports

Created by Pavan Page 21 of 107

Mail: [email protected]

Page 22: Sap Abap Reports

Created by Pavan Page 22 of 107

Mail: [email protected]

Create Domain

Page 23: Sap Abap Reports

Created by Pavan Page 23 of 107

Mail: [email protected]

Fill all the Attributes and save it

and activate it

Page 24: Sap Abap Reports

Created by Pavan Page 24 of 107

Mail: [email protected]

Maintain technical settings

Page 25: Sap Abap Reports

Created by Pavan Page 25 of 107

Mail: [email protected]

In the same way create another table ZCOMP_DETAILS for company details and

save details in that tables from Utilities � Table Contents � Create Entries

Or from Table Maintenance Generator. Check my another document for that

Check for inconsistencies and then

activate it

Page 26: Sap Abap Reports

Created by Pavan Page 26 of 107

Mail: [email protected]

Page 27: Sap Abap Reports

Created by Pavan Page 27 of 107

Mail: [email protected]

Message Class:

This messages which we will set here will be displayed while executing a report.

We can set up 4 kind of messages.

1. S- status Message. (Will appear green in status bar)

2. E-Error message. (Will appear red in status bar)

3. W-Warning message. (Will appear yellow in the status bar)

4. I-Information message (will appear as information box)

Creating Message Class:

After creating your report then it will directly shows your report name as

REPORT ZSMALL_INTERACTIVE_REPORT.

Now to create a message class you have first declare your message class at the

start of the report as

REPORT ZSMALL_INTERACTIVE_REPORT MESSAGE-ID ZPA1.

Here ZPA1 is message class. Now double click on ZPA1

Page 28: Sap Abap Reports

Created by Pavan Page 28 of 107

Mail: [email protected]

Page 29: Sap Abap Reports

Created by Pavan Page 29 of 107

Mail: [email protected]

Page 30: Sap Abap Reports

Created by Pavan Page 30 of 107

Mail: [email protected]

Page 31: Sap Abap Reports

Created by Pavan Page 31 of 107

Mail: [email protected]

Page 32: Sap Abap Reports

Created by Pavan Page 32 of 107

Mail: [email protected]

Page 33: Sap Abap Reports

Created by Pavan Page 33 of 107

Mail: [email protected]

Page 34: Sap Abap Reports

Created by Pavan Page 34 of 107

Mail: [email protected]

In your report to call a table or to declare a table the syntax is Tables: zemp_details1.

To declare an internal table this is the syntax Data: itab like zemp_details1 occurs 0 with header line.

In internal table we declare in two types

1) Internal Table manipulations

2) with Header line &

3) without header line

Syntax for Table Manipulations:

1. READ:

READ TABLE <itab> WITH KEY < fieldname = ‘’>.

2. INSERT:

INSERT <itab> index <sy-tabix>.

3. MODIFY:

MODIFY <itab> index <sy-tabix>

4. DESCRIBE:

DESCRIBE TABLE <itab> lines <var1> OCCURS <var2>.

5. APPEND:

APPEND <itab>.

6. CLEAR

CLEAR <itab>.

7. REFRESH

REFRESH <itab>.

Page 35: Sap Abap Reports

Created by Pavan Page 35 of 107

Mail: [email protected]

Sample report for Internal Table with header manipulation:

*&---------------------------------------------------------------------* *& Report ZITAB_WITH_HEADER_MANIPULATION * *& * *&---------------------------------------------------------------------* *& * *& * *&---------------------------------------------------------------------* REPORT ZITAB_WITH_HEADER_MANIPULATION . DATA: BEGIN OF ITAB OCCURS 0, BOOKNO(4) TYPE N, BOOKNAME(5) TYPE C, BOOKADD(10) TYPE C, END OF ITAB. ITAB-BOOKNO = '1234'. ITAB-BOOKNAME = 'SAP'. ITAB-BOOKADD = 'KOTI'. APPEND ITAB. CLEAR ITAB. ITAB-BOOKNO = '1235'. ITAB-BOOKNAME = 'ABAP'. ITAB-BOOKADD = 'PUNJAGUTTA'. APPEND ITAB. CLEAR ITAB. ITAB-BOOKNO = '1236'. ITAB-BOOKNAME = 'ERP'. ITAB-BOOKADD = 'BEGUMPET'. APPEND ITAB. CLEAR ITAB. LOOP AT ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. ENDLOOP. SKIP 2. READ TABLE ITAB WITH KEY BOOKNO = '1235'. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. SKIP 2. READ TABLE ITAB INDEX 3. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. SKIP 2. ITAB-BOOKNO = '9876'. ITAB-BOOKNAME = 'XI'. ITAB-BOOKADD = 'CHENNAI'. INSERT ITAB INDEX 2. LOOP AT ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. ENDLOOP. SKIP 2. ITAB-BOOKNO = '4567'. ITAB-BOOKNAME = 'BASIS'. ITAB-BOOKADD = 'SR NAGAR'. MODIFY ITAB INDEX 2. LOOP AT ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. ENDLOOP. SKIP 2.

Page 36: Sap Abap Reports

Created by Pavan Page 36 of 107

Mail: [email protected]

DELETE ITAB INDEX 2. LOOP AT ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. ENDLOOP. SKIP 2. CLEAR ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. SKIP 2. FREE ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. SKIP 2. REFRESH ITAB. LOOP AT ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. ENDLOOP.

Page 37: Sap Abap Reports

Created by Pavan Page 37 of 107

Mail: [email protected]

Sample report for Internal Table without header: *&---------------------------------------------------------------------* *& Report ZITAB_WITHOUT_HEADER * *& * *&---------------------------------------------------------------------* *& * *& * *&---------------------------------------------------------------------* REPORT ZITAB_WITHOUT_HEADER . DATA: BEGIN OF HEADER, BOOKNO(4) TYPE N, BOOKNAME(5) TYPE C, BOOKADD(10) TYPE C, END OF HEADER. DATA: BODY LIKE HEADER OCCURS 0. HEADER-BOOKNO = '1209'. HEADER-BOOKNAME = 'SAP'. HEADER-BOOKADD = 'HYD'. APPEND HEADER TO BODY. CLEAR HEADER. HEADER-BOOKNO = '1235'. HEADER-BOOKNAME = 'ABAP'. HEADER-BOOKADD = 'PUNJAGUTTA'. APPEND HEADER TO BODY. CLEAR HEADER. HEADER-BOOKNO = '1236'. HEADER-BOOKNAME = 'ERP'. HEADER-BOOKADD = 'KOTI'. APPEND HEADER TO BODY. CLEAR HEADER. LOOP AT BODY INTO HEADER. WRITE:/ HEADER-BOOKNO,HEADER-BOOKNAME,HEADER-BOOKADD. ENDLOOP.

Page 38: Sap Abap Reports

Created by Pavan Page 38 of 107

Mail: [email protected]

Sample report for Internal Table with header:

*&---------------------------------------------------------------------* *& Report ZITAB_WITH_HEADER * *& * *&---------------------------------------------------------------------* *& * *& * *&---------------------------------------------------------------------* REPORT ZITAB_WITH_HEADER . DATA: BEGIN OF ITAB OCCURS 0, BOOKNO(4) TYPE N, BOOKNAME(10) TYPE C, BOOKADD(15) TYPE C, END OF ITAB. ITAB-BOOKNO = '1216'. ITAB-BOOKNAME = 'SAP'. ITAB-BOOKADD = 'GANDHINAGAR'. APPEND ITAB. CLEAR ITAB. ITAB-BOOKNO = '1209'. ITAB-BOOKNAME = 'PAVAN-ABAP'. ITAB-BOOKADD = 'GANDHINAGAR'. APPEND ITAB. CLEAR ITAB. ITAB-BOOKNO = '1236'. ITAB-BOOKNAME = 'ERP'. ITAB-BOOKADD = 'HYD'. APPEND ITAB. CLEAR ITAB. LOOP AT ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. ENDLOOP. SKIP 2. READ TABLE ITAB WITH KEY BOOKNO = '1235'. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. SKIP 2. READ TABLE ITAB INDEX 3. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. SKIP 2. ITAB-BOOKNO = '9876'. ITAB-BOOKNAME = 'HR'. ITAB-BOOKADD = 'PUNJAGUTTA'. INSERT ITAB INDEX 2. LOOP AT ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. ENDLOOP. SKIP 2. ITAB-BOOKNO = '4567'. ITAB-BOOKNAME = 'BASIS'. ITAB-BOOKADD = 'KOTI'. MODIFY ITAB INDEX 2. LOOP AT ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. ENDLOOP. SKIP 2. DELETE ITAB INDEX 2. LOOP AT ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD.

Page 39: Sap Abap Reports

Created by Pavan Page 39 of 107

Mail: [email protected]

ENDLOOP. SKIP 2. CLEAR ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. SKIP 2. FREE ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. SKIP 2. REFRESH ITAB. LOOP AT ITAB. WRITE:/ ITAB-BOOKNO,ITAB-BOOKNAME,ITAB-BOOKADD. ENDLOOP.

Initialization event is to set the initial values for the output that we get for the

report.

Low value – here refers to the low value for the primary key.

High value – here refers to the highest value u need.

Sign – can be either ‘Inclusive’ or ‘exclusive’.

Option – can be ‘BT (between), GT(greater than), LT( lesser than).

Now after declaring your internal table declare these values in your report

SELECT-OPTIONS: EMP_NO FOR ZEMP_DETAILS1-EMPNO. INITIALIZATION. EMP_NO-LOW = '1000'. EMP_NO-HIGH = '4000'. EMP_NO-SIGN = 'I'. “ HERE ‘I’ REPRESENTS INTEGER EMP_NO-OPTION = 'BT'. APPEND EMP_NO. CLEAR EMP_NO.

AT SELECTION-SCREEN is used to check the validity of the user input values

by setting the messages in the Message Class.

AT SELECTION-SCREEN. IF EMP_NO-LOW < '1000'. MESSAGE S000(ZPA1). ELSEIF EMP_NO-HIGH > '4000'. MESSAGE S001. ENDIF.

Page 40: Sap Abap Reports

Created by Pavan Page 40 of 107

Mail: [email protected]

START-OF SELECTION event where exactly we use the SQL statements to

retrieve the output from the database table.

START-OF-SELECTION. SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO IN EMP_NO. WRITE:/5 SY-ULINE(35). LOOP AT ITAB. WRITE:/5 SY-VLINE, 6 ITAB-EMPNO, 17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE , 39 SY-VLINE. ENDLOOP.

To get the output in the table format we use 2 system variables such as SY-

ULINE to draw the horizontal line and SY-VLINE to draw the vertical line.

To get the header at the top of every page we use TOP-OF-PAGE event .

TOP-OF-PAGE. WRITE:/5 SY-ULINE(35). WRITE:/5 SY-VLINE,6 'EMPNO',17 SY-VLINE,18 'EMPNAME',28 SY-VLINE, 39 SY-VLINE. WRITE:/5 SY-ULINE(35).

In order to set the LINE-SIZE and the LINE-COUNT ,

REPORT ZSMALL_INTERACTIVE_REPORT MESSAGE-ID ZPA1 LINE-SIZE 255

we need to declare In the first line of the program and at the end of each and every

page we can set the page no by using the END-OF PAGE event and at the end of

selection we can set some message telling that the output is closed in the END-

OF-SELECTION event.

END-OF-PAGE. WRITE:/5 SY-ULINE(35). WRITE:/ 'THE PAGE NO IS',SY-PAGNO. END-OF-SELECTION. WRITE:/ 'THE RECORD IS CLOSED'.

Up to here what we have performed is Classical report the events upto here same

as interactive

Some of the interactive events are:

1. At line Selection

2. At PFn.

Page 41: Sap Abap Reports

Created by Pavan Page 41 of 107

Mail: [email protected]

3. At User-command.

AT LINE-SELECTION event is triggered by double-clicking on the output value

to get the drilldown report.

AT LINE-SELECTION. IF SY-LSIND = 1. SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO = ITAB-EMPNO. LOOP AT ITAB. WRITE:/5 SY-VLINE,6 ITAB-EMPNO,17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE, 39 SY-VLINE. ENDLOOP. WRITE:/5 SY-ULINE(35). ELSEIF SY-LSIND = 2. SELECT * FROM ZCOMP_DETAILS INTO TABLE JTAB. LOOP AT JTAB. WRITE:/5 SY-VLINE,6 JTAB-COMP_NO,17 SY-VLINE,18 JTAB-COMP_NAME,28 SY-VLINE, 39 SY-VLINE. ENDLOOP. WRITE:/5 SY-ULINE(35). ENDIF.

Complete Coding for Interactive report *&---------------------------------------------------------------------* *& Report ZSMALL_INTERACTIVE_REPORT * *& * *&---------------------------------------------------------------------* *& * *& * *&---------------------------------------------------------------------* REPORT ZSMALL_INTERACTIVE_REPORT MESSAGE-ID ZPA1 LINE-SIZE 255 LINE-COUNT 10(2). Tables: zemp_details1, zcomp_details. Data: itab like zemp_details1 occurs 0 with header line. Data: Jtab like zCOMP_details occurs 0 with header line. SELECT-OPTIONS: EMP_NO FOR ZEMP_DETAILS1-EMPNO. INITIALIZATION. EMP_NO-LOW = '1000'. EMP_NO-HIGH = '4000'. EMP_NO-SIGN = 'I'. EMP_NO-OPTION = 'BT'. APPEND EMP_NO. CLEAR EMP_NO. AT SELECTION-SCREEN. IF EMP_NO-LOW < '1000'. MESSAGE S000(ZPA1). ELSEIF EMP_NO-HIGH > '4000'. MESSAGE S001. ENDIF. START-OF-SELECTION.

Page 42: Sap Abap Reports

Created by Pavan Page 42 of 107

Mail: [email protected]

SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO IN EMP_NO. WRITE:/5 SY-ULINE(35). LOOP AT ITAB. WRITE:/5 SY-VLINE, 6 ITAB-EMPNO, 17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE , 39 SY-VLINE. ENDLOOP. TOP-OF-PAGE. WRITE:/5 SY-ULINE(35). WRITE:/5 SY-VLINE,6 'EMPNO',17 SY-VLINE,18 'EMPNAME',28 SY-VLINE, 39 SY-VLINE. WRITE:/5 SY-ULINE(35). END-OF-PAGE. WRITE:/5 SY-ULINE(35). WRITE:/ 'THE PAGE NO IS',SY-PAGNO. END-OF-SELECTION. WRITE:/ 'THE RECORD IS CLOSED'. AT LINE-SELECTION. IF SY-LSIND = 1. SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO = ITAB-EMPNO. LOOP AT ITAB. WRITE:/5 SY-VLINE,6 ITAB-EMPNO,17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE, 39 SY-VLINE. ENDLOOP. WRITE:/5 SY-ULINE(35). ELSEIF SY-LSIND = 2. SELECT * FROM ZCOMP_DETAILS INTO TABLE JTAB. LOOP AT JTAB. WRITE:/5 SY-VLINE,6 JTAB-COMP_NO,17 SY-VLINE,18 JTAB-COMP_NAME,28 SY-VLINE, 39 SY-VLINE. ENDLOOP. WRITE:/5 SY-ULINE(35). ENDIF.

After executing this report if you click on the output any name or number

then it will take you to the another line for which you have defined coding as

above

AT PF ’n’ event is triggered by clicking on the function key assigned at the n

value wherein n can vary from 5 to 9.

If we go to se41, we can get menus, items and different function keys, which we

are using for secondary list in interactive report.

AT PF7.

Page 43: Sap Abap Reports

Created by Pavan Page 43 of 107

Mail: [email protected]

Now to set an PF-STATUS we have to go to Menu Painter (Se41). This Pf status

is for GUI. Goto se 41 and create a menu list or just follow this

In your program write the following code

SET PF-STATUS 'ZPA1_MENU'.

And now double click on ZPA1_MENU

Page 44: Sap Abap Reports

Created by Pavan Page 44 of 107

Mail: [email protected]

Fill all the necessary fields and

then press enter

Page 45: Sap Abap Reports

Created by Pavan Page 45 of 107

Mail: [email protected]

Click on this to expand the menu

bar options

Page 46: Sap Abap Reports

Created by Pavan Page 46 of 107

Mail: [email protected]

Give any name to your object and

double click on the same line

Page 47: Sap Abap Reports

Created by Pavan Page 47 of 107

Mail: [email protected]

In the application tool bar it provides option in output such as open, back, exit,

folder etc,

Fill your required option here so that it

will be displayed in the output and then

press enter

Page 48: Sap Abap Reports

Created by Pavan Page 48 of 107

Mail: [email protected]

Select Static or Dynamic text and then

press enter

Page 49: Sap Abap Reports

Created by Pavan Page 49 of 107

Mail: [email protected]

Give your Function Text and in the

icon name press F4 and select relevant

icon to be displayed at output

Page 50: Sap Abap Reports

Created by Pavan Page 50 of 107

Mail: [email protected]

Page 51: Sap Abap Reports

Created by Pavan Page 51 of 107

Mail: [email protected]

Page 52: Sap Abap Reports

Created by Pavan Page 52 of 107

Mail: [email protected]

You have to assign any function

keys to the object for which u

have created and then press enter

Page 53: Sap Abap Reports

Created by Pavan Page 53 of 107

Mail: [email protected]

Page 54: Sap Abap Reports

Created by Pavan Page 54 of 107

Mail: [email protected]

Here you can see your added function keys

or else you can add from here also

Page 55: Sap Abap Reports

Created by Pavan Page 55 of 107

Mail: [email protected]

Complete code of present report

*&---------------------------------------------------------------------* *& Report ZSMALL_INTERACTIVE_REPORT * *& * *&---------------------------------------------------------------------* *& * *& * *&---------------------------------------------------------------------* REPORT ZSMALL_INTERACTIVE_REPORT MESSAGE-ID ZPA1 LINE-SIZE 255 LINE-COUNT 10(2). Tables: zemp_details1, zcomp_details. Data: itab like zemp_details1 occurs 0 with header line. Data: Jtab like zCOMP_details occurs 0 with header line. SELECT-OPTIONS: EMP_NO FOR ZEMP_DETAILS1-EMPNO. SET PF-STATUS 'ZPA1_MENU'. INITIALIZATION. EMP_NO-LOW = '1000'. EMP_NO-HIGH = '4000'. EMP_NO-SIGN = 'I'. EMP_NO-OPTION = 'BT'. APPEND EMP_NO. CLEAR EMP_NO. AT SELECTION-SCREEN. IF EMP_NO-LOW < '1000'. MESSAGE S000(ZPA1). ELSEIF EMP_NO-HIGH > '4000'. MESSAGE S001. ENDIF. START-OF-SELECTION. SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO IN EMP_NO. LOOP AT ITAB. WRITE:/5 SY-VLINE,6 ITAB-EMPNO,17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE, 39 SY-VLINE. HIDE: ITAB-EMPNO. ENDLOOP. WRITE:/5 SY-ULINE(35). TOP-OF-PAGE. WRITE:/5 SY-ULINE(35). WRITE:/5 SY-VLINE,6 'EMPNO',17 SY-VLINE,18 'EMPNAME',28 SY-VLINE, 39 SY-VLINE. WRITE:/5 SY-ULINE(35). END-OF-PAGE. WRITE:/5 SY-ULINE(35).

Page 56: Sap Abap Reports

Created by Pavan Page 56 of 107

Mail: [email protected]

WRITE:/ 'THE PAGE NO IS',SY-PAGNO. END-OF-SELECTION. WRITE:/ 'THE RECORD IS CLOSED'. AT LINE-SELECTION. IF SY-LSIND = 1. SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO = ITAB-EMPNO. LOOP AT ITAB. WRITE:/5 SY-VLINE,6 ITAB-EMPNO,17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE, 39 SY-VLINE. ENDLOOP. WRITE:/5 SY-ULINE(35). ELSEIF SY-LSIND = 2. SELECT * FROM ZCOMP_DETAILS INTO TABLE JTAB. LOOP AT JTAB. WRITE:/5 SY-VLINE,6 JTAB-COMP_NO,17 SY-VLINE,18 JTAB-COMP_NAME,28 SY-VLINE, 39 SY-VLINE. ENDLOOP. WRITE:/5 SY-ULINE(35). ENDIF. AT PF7. IF SY-LSIND = 1. SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO = ITAB-EMPNO. LOOP AT ITAB. WRITE:/5 SY-VLINE,6 ITAB-EMPNO,17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE, 39 SY-VLINE. ENDLOOP. WRITE:/5 SY-ULINE(35). ELSEIF SY-LSIND = 2. SELECT * FROM ZCOMP_DETAILS INTO TABLE JTAB. LOOP AT JTAB. WRITE:/5 SY-VLINE,6 JTAB-COMP_NO,17 SY-VLINE,18 JTAB-COMP_NAME,28 SY-VLINE, 39 SY-VLINE. ENDLOOP. WRITE:/5 SY-ULINE(35). ENDIF. AT USER-COMMAND. IF SY-UCOMM = '0001'.

Page 57: Sap Abap Reports

Created by Pavan Page 57 of 107

Mail: [email protected]

IF SY-LSIND = 1. SELECT * FROM ZEMP_DETAILS1 INTO TABLE ITAB WHERE EMPNO = ITAB-EMPNO. LOOP AT ITAB. WRITE:/5 SY-VLINE,6 ITAB-EMPNO,17 SY-VLINE,18 ITAB-EMPNAME,28 SY-VLINE, 39 SY-VLINE. ENDLOOP. WRITE:/5 SY-ULINE(35). ELSEIF SY-LSIND = 2. SELECT * FROM ZCOMP_DETAILS INTO TABLE JTAB. LOOP AT JTAB. WRITE:/5 SY-VLINE,6 JTAB-COMP_NO,17 SY-VLINE,18 JTAB-COMP_NAME,28 SY-VLINE, 39 SY-VLINE. ENDLOOP. WRITE:/5 SY-ULINE(35). ENDIF. ENDIF.

Page 58: Sap Abap Reports

Created by Pavan Page 58 of 107

Mail: [email protected]

Logical Data Base Builder:

A logical database is a special ABAP/4 program which combines the contents of

certain database tables. You can link a logical database to an ABAP/4 report

program as an attribute. The logical database then supplies the report program

with a set of hierarchically structured table lines which can be taken from different

database tables.

If you need to find the logical database for a table name, you can used SE36 -

Logical Database Builder.

Steps:-

Go to transaction SE36

Click Extras -> Table usage

Supply the Table name and hit enter.

A Display Logical Database will be shown on a pop-up window.

More Information from help.sap.com

Logical databases are special ABAP programs that retrieve data and make it

available to application programs. The most common use of logical databases is

still to read data from database tables and linking them to executable ABAP

programs while setting the program contents. You edit logical databases using the

Logical Database Builder in the ABAP Workbench.

However, since Release 4.5A, it has also been possible to call logical databases

independently of this tool using the function module LDB_PROCESS. This allows

you to call several logical databases from any ABAP program, nested in any way.

It is also possible to call a logical database more than once in a program, if it has

been programmed to allow this. This is particularly useful for executable

programs, allowing them to use more than one logical database and process a

database more than once.

Logical databases contain Open SQL statements that read data from the database.

You do not therefore need to use SQL in your own programs. The logical database

reads the program, stores them in the program if necessary, and then passes them

Page 59: Sap Abap Reports

Created by Pavan Page 59 of 107

Mail: [email protected]

line by line to the application program or the function module LDB_PROCESS

using an interface work area.

Views of Data in Logical Databases

Logical databases provide a particular view of database tables. It is appropriate to

use logical databases if the database tables you want to read correspond largely to

the structure of the logical database and where the flow of the system program

(select - read - process - display) meets the requirements of the application.

The data structure in a logical database is hierarchical. Many tables in the R/3

System are linked to each other using foreign key relationships. Some of these

dependencies form tree-like hierarchical structures. Logical databases read data

from database tables that are part of these structures.

Page 60: Sap Abap Reports

Created by Pavan Page 60 of 107

Mail: [email protected]

A logical database can read the lines of these tables one after the other into an

executable program in a sequence which is normally defined by the hierarchical

structure. The term logical database is sometimes used to mean not only the

program itself, but also the data that it can procure.

Tasks of Logical Databases

Logical databases serve mainly to reuse predefined functionality for reading data

from database tables, but they can also be programmed for other tasks. To keep the

application logic of application programs free from technical details, logical

databases can perform the following tasks:

· Reading the same data for several programs.

The individual programs do not then need to know the exact structure of the

relevant database tables (and especially not their foreign key relationships).

Instead, they can rely on the logical database to read the database entries in the

right order during the GET event.

· Defining the same user interface for several programs.

Logical databases have a built-in selection screen. Therefore, all of the programs

that use the logical database have the same user interface.

· Central authorization checks

Authorization checks for central and sensitive data can be programmed centrally

in the database to prevent them from being bypassed by simple application

programs.

· Improving Performance

If you want to improve response times, logical databases permit you to take a

number of measures to achieve this (for example, using joins instead of nested

SELECT statements). These become immediately effective in all of the

application programs concerned and save you from having to modify their source

code.

Page 61: Sap Abap Reports

Created by Pavan Page 61 of 107

Mail: [email protected]

Goto Tcode SE36 to create logical Data base

Page 62: Sap Abap Reports

Created by Pavan Page 62 of 107

Mail: [email protected]

Give your short description and

then press enter

Page 63: Sap Abap Reports

Created by Pavan Page 63 of 107

Mail: [email protected]

Give your table name

here

Give the text same as in

declared in your table

Again Declare your Table

here

Page 64: Sap Abap Reports

Created by Pavan Page 64 of 107

Mail: [email protected]

Give the second node which should be hierarchically under the root node and enter

the short description with the database table Name

Page 65: Sap Abap Reports

Created by Pavan Page 65 of 107

Mail: [email protected]

Give your second table name and the short text

should be same as declared in your table for

this particular table

Page 66: Sap Abap Reports

Created by Pavan Page 66 of 107

Mail: [email protected]

Select your table and then click on

Selections Button

Page 67: Sap Abap Reports

Created by Pavan Page 67 of 107

Mail: [email protected]

Page 68: Sap Abap Reports

Created by Pavan Page 68 of 107

Mail: [email protected]

Page 69: Sap Abap Reports

Created by Pavan Page 69 of 107

Mail: [email protected]

Page 70: Sap Abap Reports

Created by Pavan Page 70 of 107

Mail: [email protected]

Now uncomment your select-options and give any name for your select option

Page 71: Sap Abap Reports

Created by Pavan Page 71 of 107

Mail: [email protected]

This is our complete code after uncommenting few lines

SELECT-OPTIONS : empno FOR ZEMP_DETAILS1-EMPNO.

* Parameter for search pattern selection (Type SY-LDB_SP):

* PARAMETERS p_sp AS SEARCH PATTERN FOR TABLE

ZEMP_DETAILS1.

SELECT-OPTIONS : compno FOR ZCOMP_DETAILS-COMP_NO.

* Enable DYNAMIC SELECTIONS for selected nodes :

SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE

ZEMP_DETAILS1.

SELECTION-SCREEN DYNAMIC SELECTIONS FOR TABLE

ZCOMP_DETAILS.

* Enable FIELD SELECTION for selected nodes :

Page 72: Sap Abap Reports

Created by Pavan Page 72 of 107

Mail: [email protected]

Now go back to your initial screen and select your table and then Select Source

code

Page 73: Sap Abap Reports

Created by Pavan Page 73 of 107

Mail: [email protected]

Now double click on TOP Include which is used for Header.

Page 74: Sap Abap Reports

Created by Pavan Page 74 of 107

Mail: [email protected]

Now check whether the tables you have defined are uncommented or not??

Page 75: Sap Abap Reports

Created by Pavan Page 75 of 107

Mail: [email protected]

Now go back to your Program screen and double click on Routines

Page 76: Sap Abap Reports

Created by Pavan Page 76 of 107

Mail: [email protected]

Now click on the include

Double click on top include

BASEN001 for emp details

table here my table is

ZEMP_DETAILS1

Page 77: Sap Abap Reports

Created by Pavan Page 77 of 107

Mail: [email protected]

Now uncomment the SQL statement and enter the field and the database table

name according to the logical database builder.

Page 78: Sap Abap Reports

Created by Pavan Page 78 of 107

Mail: [email protected]

Now go back to includes screen and in the same way as done above for employee

details now double click on Company details and uncomment the SQL statements

then SAVE, CHECK and ACTIVATE the screen.

Click BACK and SAVE, CHECK & ACTIVATE the screen until u reach the

main screen and SAVE the logical database.

Thus the logical database is constructed.

In order to generate the query report, first construct the logical database and

generation of query report is as follows.

The transaction codes used in Query reports are:

1. SQ01 – For creating Query.

2. SQ02 – For creating Infoset.

3. SQ03 – For creating User.

First u need to create the USER and generate the INFOSET, in turn can produce

the Query report.

Page 79: Sap Abap Reports

Created by Pavan Page 79 of 107

Mail: [email protected]

Infoset: An SAP Infoset (formerly known as a Functional Area) is crucial for ABAP query

usage (in SAP versions 4.6A - onward).

The reason for Info Sets being important is because many R/3 clients find

themselves faced with how to develop useful reports from an application using

20k+ tables. In addition, many clients desire to use third-party reporting tools; i.e.,

Crystal Reports. In this article, we will look at what an R/3 Infoset and how they

relate to Crystal Reports.

1. Knowledge learned in this article can be put to use when:

2. Users require an understanding of how InfoSets are used within SAP R/3

3. Users require an understanding of the various methods of developing

InfoSets

4. Users require an understanding of how InfoSets are used in concert with

Crystal Reports.

Report developers cannot be expected to cull through the thousands of tables and

fields R/3 presents - even from a single logical database. Therefore, some form of

technical shortcut is beneficial. InfoSets, when used with ABAP queries are an

example of an available shortcut. At its simplest definition, an InfoSet determines

which tables and/or fields within a table, queries may reference. To accomplish

this, InfoSets are typically based upon table joins or logical databases (LDBs).

Therefore, an Infoset is, for lack of a better term, a form of Ubber View (Super

View).

Page 80: Sap Abap Reports

Created by Pavan Page 80 of 107

Mail: [email protected]

Go to Transaction Code SQ01.

Now follow this path Environment � Usergroups

Page 81: Sap Abap Reports

Created by Pavan Page 81 of 107

Mail: [email protected]

Give your Query name and Click on create button

Click on Create

Button

Page 82: Sap Abap Reports

Created by Pavan Page 82 of 107

Mail: [email protected]

Save or press Enter

Page 83: Sap Abap Reports

Created by Pavan Page 83 of 107

Mail: [email protected]

Go back to User Group initial screen and then click on Assign users and InfoSets

Click on Assign users

& InfoSets

Page 84: Sap Abap Reports

Created by Pavan Page 84 of 107

Mail: [email protected]

Assign any user existing in

SAP and press enter

Page 85: Sap Abap Reports

Created by Pavan Page 85 of 107

Mail: [email protected]

Now go back to your user screen from there follow this menu path

Environment � InfoSets

Or go to Tcode SQ02

Page 86: Sap Abap Reports

Created by Pavan Page 86 of 107

Mail: [email protected]

Page 87: Sap Abap Reports

Created by Pavan Page 87 of 107

Mail: [email protected]

Give your InfoSet query name and

press Create button

Page 88: Sap Abap Reports

Created by Pavan Page 88 of 107

Mail: [email protected]

Give your InfoSet name

Select a logical data base

by pressing F4

Page 89: Sap Abap Reports

Created by Pavan Page 89 of 107

Mail: [email protected]

This is the logical database

which we had created in SE36

Page 90: Sap Abap Reports

Created by Pavan Page 90 of 107

Mail: [email protected]

Page 91: Sap Abap Reports

Created by Pavan Page 91 of 107

Mail: [email protected]

You can drag & drop your

fields on to the screen save it

and come back to main screen

Page 92: Sap Abap Reports

Created by Pavan Page 92 of 107

Mail: [email protected]

Now in SQ03 assign your Infoset

which u had created just above

Page 93: Sap Abap Reports

Created by Pavan Page 93 of 107

Mail: [email protected]

Now to create Query goto USER screen and click on the

ENVIRONMENT ���� QUERIES

and the Query name and click on the CREATE button. It will ask for infoset.

Choose the corresponding Infoset.

Select your infoset query

and then save it

Page 94: Sap Abap Reports

Created by Pavan Page 94 of 107

Mail: [email protected]

Page 95: Sap Abap Reports

Created by Pavan Page 95 of 107

Mail: [email protected]

Page 96: Sap Abap Reports

Created by Pavan Page 96 of 107

Mail: [email protected]

Select your infoset

Page 97: Sap Abap Reports

Created by Pavan Page 97 of 107

Mail: [email protected]

Now on the left hand side u can find the fields in the dictionary and on the right

hand side the field required for the Query report. Drag and drop the field you want

for the Query report and click on the GENERATE button.

Page 98: Sap Abap Reports

Created by Pavan Page 98 of 107

Mail: [email protected]

After selecting your fields click on

generate

Page 99: Sap Abap Reports

Created by Pavan Page 99 of 107

Mail: [email protected]

In the Tcode SQ03 enter your

title

Select ABAP List

Page 100: Sap Abap Reports

Created by Pavan Page 100 of 107

Mail: [email protected]

Click on Next screen

Page 101: Sap Abap Reports

Created by Pavan Page 101 of 107

Mail: [email protected]

Check the Tables for which u

want to make a query

Page 102: Sap Abap Reports

Created by Pavan Page 102 of 107

Mail: [email protected]

Click on Next screen

Page 103: Sap Abap Reports

Created by Pavan Page 103 of 107

Mail: [email protected]

ABAP/4 Query can generate the following 3 simple reports:

Basic List: It is the simple reports.

Statistics: Reports with statistical functions like Average, Percentages.

Ranked Lists: For analytical reports. - For creating a ABAP/4 Query,

programmer has to create user group and a functional group. Functional group can

be created using with or without logical database table. Finally, assign user group

to functional group. Finally, create a query on the functional group generated.

Select the fields and click

next screen

Page 104: Sap Abap Reports

Created by Pavan Page 104 of 107

Mail: [email protected]

Now select the data fields that you want to appear in the query report and click on

the SAVE button. Then Click on the TEST button.

Click on Basic List

Page 105: Sap Abap Reports

Created by Pavan Page 105 of 107

Mail: [email protected]

Select the fields which u want to

display in the output

The fields which u have

selected will be displayed

here

Page 106: Sap Abap Reports

Created by Pavan Page 106 of 107

Mail: [email protected]

In Logical data base(SE36) maintain all fields

Such as Selection Texts, Documentation and then in query report SQ01 execute

your report

Execute the report

Page 107: Sap Abap Reports

Created by Pavan Page 107 of 107

Mail: [email protected]