Professional Documents
Culture Documents
1
Selection Screen
Reports Overview
Classical Reports
Interactive Reports
ALV reports
2
ABAP Reports - Selection Screen
Selection Screens are special screens which are used to enter values in an ABAP
Program and are created with help of ABAP statements such as
• PARAMETERS
• SELECT-OPTIONS
• SELECTION-SCREEN
Parameters
Select-Options
Check Box
Radio Buttons
Push Buttons
Blocks
Sub Screens
Tab Strips
Lines
Comments
Note: Selection Screen is not an independent entity. Selection is part of the report
3
ABAP Reports - Selection Screen
Parameters:
It created selection screen and enters a single value in an ABAP program
Syntax:
PARAMETERS <p_name> TYPE/LIKE <data_type>
[decimals]
[DEFAULT <value>]
[OBLIGATORY]
[MODIF ID <key>]
Example:
4
ABAP Reports - Selection Screen
Select Options:
It creates selection screen and enters a range of values in an ABAP program
Syntax:
SELECT-OPTIONS <s_tab> FOR <data_object>
5
ABAP Reports - Selection Screen
SELECT-OPTIONS statement creates a Internal table with header line which contains
4 fields
SIGN
OPTION
LOW
HIGH
6
ABAP Reports - Selection Screen
7
ABAP Reports - Selection Screen
8
ABAP Reports - Selection Screen
Checkbox:
PARAMETERS <name> AS CHECKBOX DEFAULT ‘X’
9
ABAP Reports - Selection Screen
Blank Line
SELECTION-SCREEN SKIP 2
Screen Box
SELECTION-SCREEN: BEGIN OF BLOCK <blk_name> WITH FRAME TITLE <title>
[NO INTERVALS]
Comment
SELECTION-SCREEN /<POS> [LEN] <comment_name>
Position:
SELECTION-SCREEN POSITION <position>
Push Buttons
SELECTION-SCREEN PUSHBUTTON /<pos> [len] <push_name>
USER-COMMAND <fcode>
MODIF ID <key>
10
ABAP Reports - Selection Screen
Output
Output
Radio Buttons
Radio Buttons
Buttons
Buttons
Output
Output
Replace Technical Names with
Replace Technical Names
Descriptions with
on output
Descriptions on output
11
ABAP Reports Overview
Reports are executable programs. Reports are used to display summarized
Information. Report Program contains following parts
Selection Screen
Data Fetching
Data Processing
Displaying Data
Reports
12
ABAP Reports
Classical Reports
A report with single input screen (selection screen) and single output screen (list screen) is called a
classical report.
Report program which is showing basic list. No further action can be
done on the output.
Interactive Reports
Display the basic information on the basic list and the detailed information in the Secondary list is
called Interactive report.
user can perform action(double click/Pressing button on application Tool bar) basic list to display
further lists
ALV Report
ALV stands for ABAP List Viewer. ALV gives us a standard List format and user interface to all our
ABAP reports. ALV is created by a set of standard function modules provided by SAP .Above report will
be displayed with help of WRITE statement.
We will use ALV function modules/Classes to display data with better look and feel.
13
ABAP Reports – Classical Reports
Classical Reports
A report with single input screen (selection screen) and single output screen (list screen) is called a
classical report.
Report program which is showing basic list. No further action can be
done on the output.
The List of the events are:
• Load of Program
• Initialization
• At Selection-screen output
• At Selection-screen on field
• At Selection-screen on value request
• At Selection-screen on Help Request
• At Selection-screen
• Start of selection
• End of selection
• Top of page
• End of page
14
ABAP Reports - Events in Classical Reports
Load of Program - This event is used to load the program into memory for execution. This is internal event,
which we cannot see.
Initialization - This event is used to initialize the default values to program variables and selection-screen
variables.
Examples:
v_land1 = ‘IN’
v_bukrs = ‘1001’
AT Selection-screen output - This event is used to modify the selection screen dynamically based on user
actions on the selection screen. This event is triggered (or) executed for every action on the selection screen.
AT Selection-screen on field - This event is used to validate a single input field on the selection-screen.
AT Selection-screen on value request - This event is used to provide a search help for an input field. This
event is triggered whenever the user click on search help button
AT Selection-screen on help request - This event is used to provide help information for an input field. This
event is triggered whenever the user click on Help button i.e. F1 button.
AT Selection-screen - This event is used to validate multiple fields of the selection-screen, whereas AT
Selection-screen on field is used to validate a single input field
15
ABAP Reports – At selection-screen output event
AT Selection-screen output - This event is used to modify the selection screen dynamically based on user
actions on the selection screen.
This event is triggered (or) executed for every action on the selection screen.
Modification ID - It is an ID assigned to a group of Selection- screen fields, So that the properties of all the
selection screen fields can be modified directly with the help of modification ID.
Suppose if Modification ID is not available then we have to modify each selection-screen field individually
which makes program very complex.
Syntax: -
Parameters: <p_name> type <table-fname> MODIF ID <modification ID name>.
16
ABAP Reports - Events in Classical Reports
Start of selection - This event is used to write the original business logic statements i.e all select statements.
It is also used to indicate the starting point of a program. It is the default event.
End of selection - It is used to indicate the start of selection has been ended.
It is mainly used with logical database, which are absolute in ABAP (LDB’s are used in old version of ABAP).
But LDB’s are stilled used in HR-ABAP, so end of selection is mainly used in HR-ABAP. It doesn’t have much
importance in ABAP, it is used to indicate the start of selection has been ended
Top of page - This event is use to display constant page heading for all the pages in the output screen. This
event is triggered after the first WRITE statement.
End of page - This event is used to provide constant footer information across the all pages of the list-screen.
To display end of page (or) footer information we have to reserve some lines as footer lines using the
statement.
17
ABAP Reports - Classical Reports
Example: Display Material Stock details
Input:
Plant - Parameter
Material Number – Select-Options
Storage Location – Select-Options
Output
18
ABAP Reports - Classical Reports
Validation:
• Validate Plant in T001W
• Validate Material, Plant and Storage Location in MARD Table
Data Fetching
• Get Material Master data from MARA
• Get Material Descriptions from MAKT
• Get Material Plant Data from MARC
• Get Material Stock from MARD
Processing:
Loop Storage Location Data
Read Material Master
Read Material Description
Read Material Data
Output:
• Display final internal table in the output
19
ABAP Reports - Classical Reports
20
ABAP Reports - Classical Reports
21
ABAP Reports - Classical Reports
22
ABAP Reports - Classical Reports
Processing Logic
23
ABAP Reports - Classical Reports
Report Header
No Standard Page Heading:
This option will avoid the standard Page heading.
Line-Count <count>:
it is used to create multiple pages and each page, number of lines
Are <count>
Example: Line-Count 20: each page contains 20 lines
Line-Count <Count>(Footer):
It is used to create multiple pages and each page, number of lines are <count>
In that count it will reserve <footer> number of lines for footer.
Example: Line-Count 20(4) each page contains total 20 lines and 4 lines reserved
for Footer. 16 for content and 4 for footer.
Line-Size <size>:
For specifying width of each line
Example: Line-Size 20.
Message-ID
For specifying message class so that in the rest of the program we can use short
Form of message
24
ABAP Reports - Classical Reports
Text Elements
Text that appear on the selection screen or output screen are called text
elements. There are different types of text elements
Program or Report Title: It is the title of a program which describes the purpose of
the program
List Heading: It is the first line of the output screen. Generally list heading is
provided from the Title of the program
Selection Text: It is used to replace the standard text that appears with the help
Parameters or select options
Text Symbols: These are the constants or text literals maintained outside of the
Program in order make the program independent of the language
25
ABAP Reports - Classical Reports
26
ABAP Reports - Classical Reports
Text symbols are used to make text
Maintain outside of source code &
Language independent
27
ABAP Reports - Interactive Reports
Interactive reports also called Drill down reports.
28
ABAP Reports – Events in Interactive Reports
Interactive Reports Events:-
• AT Line-selection
• AT User command
• AT PF <Function Key>.
29
ABAP Reports – Events in Interactive Reports
AT Line Selection: - This event is triggered whenever the user double clicks on any list line.
HIDE: - It is a keyword which is used to hide the data into a temporarily memory called as hide area for further processing. We use the hide
statement within the loop….end loop, so that the HIDE keyword will hide the values into hide area.
Functionality of hide: - Whenever the user double clicks on any list line, the event at line selection will be triggered.
The system automatically identifies the line no where the user has double clicked and reads the corresponding record into hide variable.
GET CURSOR: - This statement is used to read or get the selected line content i.e.
fieldname, field value into the variables.
Syntax: - GET CURSOR field <v_fname> Value <v_fvalue>.
The main Advantage of get cursor is,
We don’t have any hide area or temporary memory
30
ABAP Reports – Events in Interactive Reports
At User command: - This event is triggered whenever the user clicks on custom GUI buttons.
Custom GUI: - It is used to create our menus in the menu bar, our own buttons in the application toolbar, enabling or disabling the standard
buttons on the standard toolbar.
Syntax: - SET PF-status <CustomGUI MenuName>
‘SE41’is the tcode for creating custom GUI (also called as MENU PAINTER)
FCT CODE (Function code):- It is a shortcut code assigned to a button or menu to identify the button or menu which is clicked .
The FCT codes are automatically stored in a system variable SY-UCOMM.
Top of page during line selection: - This event is used for providing the constant page heading for all the secondary lists.
AT PF <Function Key>: - This event is used or triggered whenever the user clicks on function keys (f1, f2, .etc)
This event is obsolete in new versions (ECC 5.0 or 6.0)
31
ABAP Reports – Conversion Routines
Conversion Routine: - It is a function module which is used to convert a value from internal format to external format and vice-versa.
Conversion exits are maintained at domain level.
Go to the domain and double click on conversion exit.
Conversion exit function module will be displayed
Example: -
Conversion_exit_Alpha_input :- used to convert a value from external format to internal format.
Conversion_exit_Alpha_output:- used to convert a value from internal format to external format
32
ABAP Reports – Interactive Reports
System variables used in Interactive Reports
System Purpose
Variable
SY-LSIND Contains current List Index
SY-LINSZ Contains width of line of output screen
SY-LINCT Contains number of lines per page
SY-LISEL Contains content of the line from where the event was triggered
SY-LISTI Contains list index number from where the event was triggered
SY-UCOMM Contains the function code of the selected push button or Menu
Item
SY-LINNO Contains current line number
SY-PFKEY Contains the current status or user interface
33
ABAP Reports – Menu Painter
GUI Status
It contains Menu Bar, Application Tool Bar with Push Buttons, Icons etc.
So that user can more easily interact with the system.
Menu painter is an ABAP workbench tool used to design user interface or status.
Transaction: SE41. GUI status will exists for each screen the program
Example: ME21 Initial Screen Status.
34
ABAP Reports – Menu Painter
Transaction: SE41
Report: ZREPORT_002 Status: STATUS_1
35
ABAP Reports – Interactive Reports
Example:
Input:
• Purchase Document
OR
• Vendor
• Document Category
• Document Type
• Document Date
Output:
Basic List: Purchase Header Data
First Secondary List: Purchase Item when clicking on Basic List
Second Secondary List: Purchase Sch. Line when clicking on first Secondary List
36
ABAP Reports – Interactive Reports
First Secondary
List:
Purchase Item
Details
37
ABAP Reports – Interactive Reports
38
ABAP Reports – Interactive Reports
39
ABAP Reports – ALV Reports
ALV – ABAP List Viewer or SAP List Viewer
The SAP List Viewer is a generic tool that outputs data in a table form (rows
and columns), with integrated functions to manipulate output (sort, totals, filter,
column order, hide, etc.) and export it (Excel, Crystal report, CSV files, etc.) It is
also possible to make ALV editable via ALV control.
ALV stands for ABAP List Viewer. ALV gives us a standard List format and user
interface to all our ABAP reports. ALV is created by a set of standard function
modules provided by SAP.
ALV provides a lot of inbuilt functions to our reports and some of the functions
are listed below.
• Sorting of records
• Filtering of records
• Totals and Sub-totals
• Download the report output to Excel/HTML
• Changing the order of the columns in the report
• Hide the unwanted columns from the report
40
ABAP Reports – ALV Reports
41
ABAP Reports – ALV Reports
We will use some set of function modules (APIs) to work with ALV Reports
TYPE-POOLS: SLIS
SLIS is a type pool which holds all the structure useful for the type declarations in ALV
42
ABAP Reports – ALV Reports
Function Module: REUSE_ALV_GRID_DISPLAY
Events Handling: we can handle user actions on ALV grid with help of event
Event handling methods
43
ABAP Reports – ALV Reports
Specifying Column properties
Structure Name:
we can specify any of the data dictionary structure or Table name if same list
of fields, you want to display in the ALV. So all the properties(Data type, Length,
Description) can be applied from Data dictionary structure.
OR
Field Catalog:
If there is no exact structure/table exists in data dictionary in the Data
dictionary then we can supply column properties with help of Field catalog. It can
be built in three ways.
• Automatically: Using Function Module REUSE_ALV_FIELDCATALOG_MERGE
• Semi Automatically
• Manually
44
ABAP Reports – ALV Reports
Subtotals:
Subtotals can be displayed with help of IT_SORT importing parameter
45
ABAP Reports – ALV Reports
46
ABAP Reports – ALV Reports
47
ABAP Reports – ALV Reports
48
ABAP Reports – ALV Reports
Interactive ALV:
we can navigate from one ALV list to another ALV list by performing some
action the report. There are several events which help us to perform actions on
ALV reports
Events:
USER-COMMAND: it is used to implement the logic to handle
double click or single click on HOTSPOT field
49
ABAP Reports – ALV Reports
50