Professional Documents
Culture Documents
Sap Abap Reports 1
Sap Abap Reports 1
Mail: Praveen.srrec@gmail.com
Page 1 of 107
Reports:
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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 2 of 107
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
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 3 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 4 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 5 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 6 of 107
*&---------------------------------------------------------------------*
*& Report ZCLASSICAL
*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT ZCLASSICAL
TABLES: vbak,vbap.
DATA: v_flag TYPE i.
Sold To Party.
Sales Document Number.
Sales Document Item.
Material Number.
Customer purchase order number.
Customer purchase order date.
" Cumulative order quantity.
Net price.
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 .
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 7 of 107
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
format
WRITE:
format
ULINE.
format
vbeln.
color 3 on. " COLOR START
/ 'CUSTOMER:',it_salesorder-kunnr.
reset. "COLOR END
color 4 on inverse on. "COLOR START
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 8 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 9 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 10 of 107
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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 11 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 12 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 13 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 14 of 107
*&---------------------------------------------------------------------*
*& 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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 15 of 107
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.
************************************************************************
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 16 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 17 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 18 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 19 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 20 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 21 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 22 of 107
Create Domain
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 23 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 24 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 25 of 107
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
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 26 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 27 of 107
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)
ZSMALL_INTERACTIVE_REPORT.
Now to create a message class you have first declare your message class at the
start of the report as
REPORT
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 28 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 29 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 30 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 31 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 32 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 33 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 34 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 35 of 107
*&---------------------------------------------------------------------*
*& Report ZITAB_WITH_HEADER_MANIPULATION
*
*&
*
*&---------------------------------------------------------------------*
*&
*
*&
*
*&---------------------------------------------------------------------*
REPORT
ZITAB_WITH_HEADER_MANIPULATION
Created by Pavan
Mail: Praveen.srrec@gmail.com
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 36 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 37 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 38 of 107
ZITAB_WITH_HEADER
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 39 of 107
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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 40 of 107
To get the output in the table format we use 2 system variables such as SYULINE 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).
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 ENDOF-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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 41 of 107
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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 42 of 107
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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 43 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 44 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 45 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 46 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 47 of 107
In the application tool bar it provides option in output such as open, back, exit,
folder etc,
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 48 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 49 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 50 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 51 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 52 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 53 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 54 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 55 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 56 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 57 of 107
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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 58 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 59 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 60 of 107
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:
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.
Logical databases have a built-in selection screen. Therefore, all of the programs
that use the logical database have the same user interface.
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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 61 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 62 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 63 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 64 of 107
Give the second node which should be hierarchically under the root node and enter
the short description with the database table Name
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 65 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 66 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 67 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 68 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 69 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 70 of 107
Now uncomment your select-options and give any name for your select option
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 71 of 107
FOR
TABLE
FOR
TABLE
FOR
TABLE
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 72 of 107
Now go back to your initial screen and select your table and then Select Source
code
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 73 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 74 of 107
Now check whether the tables you have defined are uncommented or not??
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 75 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 76 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 77 of 107
Now uncomment the SQL statement and enter the field and the database table
name according to the logical database builder.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 78 of 107
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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 79 of 107
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).
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 80 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 81 of 107
Click on Create
Button
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 82 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 83 of 107
Go back to User Group initial screen and then click on Assign users and InfoSets
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 84 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 85 of 107
Now go back to your user screen from there follow this menu path
Environment InfoSets
Or go to Tcode SQ02
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 86 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 87 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 88 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 89 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 90 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 91 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 92 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 93 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 94 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 95 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 96 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 97 of 107
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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 98 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Page 99 of 107
Created by Pavan
Mail: Praveen.srrec@gmail.com
Created by Pavan
Mail: Praveen.srrec@gmail.com
Created by Pavan
Mail: Praveen.srrec@gmail.com
Created by Pavan
Mail: Praveen.srrec@gmail.com
Created by Pavan
Mail: Praveen.srrec@gmail.com
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.
Created by Pavan
Mail: Praveen.srrec@gmail.com
Created by Pavan
Mail: Praveen.srrec@gmail.com
Created by Pavan
Mail: Praveen.srrec@gmail.com