About interactive report
A classical report consists of one program that creates a single list. This means that when the list is displayed, it has to contain all the requested data, regardless of the number of details the user want to see. This procedure may result in extensive and cluttered lists from which the user has to pick the relevant data. The desired selections must be made before hand and the report must provide detailed information.
This is not possible using the classical report and for this ABAP/4 has provided reporting feature called INTERACTIVE REPORT. The list produced by classical report doesn’t allow user to interact with the system but the list produced by interactive report allows the user to interact with the system i.e., user can tell the system, that he needs further information. Depending upon what the user tells the system, the action is taken. Interactive reporting thus reduces information retrieval to the data actually required.
Interactive reporting allows the user to participate in retrieving and presenting data at each level during the session. Instead of presenting one extensive and detailed list with cluttered information, with interactive reporting you can create a condensed basic list from which the user can call detailed information by positioning the cursor and entering commands.
Detailed information is presented in secondary lists. A secondary list may either overlay the basic list completely or appear in an additional dialog window on the same screen. The secondary list can itself be interactive again. The basic list is not deleted when secondary list is created.
A classical report consists of one program that creates a single list. This means that when the list is displayed, it has to contain all the requested data, regardless of the number of details the user want to see. This procedure may result in extensive and cluttered lists from which the user has to pick the relevant data. The desired selections must be made before hand and the report must provide detailed information.
This is not possible using the classical report and for this ABAP/4 has provided reporting feature called INTERACTIVE REPORT. The list produced by classical report doesn’t allow user to interact with the system but the list produced by interactive report allows the user to interact with the system i.e., user can tell the system, that he needs further information. Depending upon what the user tells the system, the action is taken. Interactive reporting thus reduces information retrieval to the data actually required.
Interactive reporting allows the user to participate in retrieving and presenting data at each level during the session. Instead of presenting one extensive and detailed list with cluttered information, with interactive reporting you can create a condensed basic list from which the user can call detailed information by positioning the cursor and entering commands.
Detailed information is presented in secondary lists. A secondary list may either overlay the basic list completely or appear in an additional dialog window on the same screen. The secondary list can itself be interactive again. The basic list is not deleted when secondary list is created.
User can
interact with the system by:
¨
Double clicking or pressing F2
¨
Selecting menu option
¨
At line-selection
¨
At user-command
¨
Top-of-Page During Line-Selection for Secondary
Page Header info
Interactive
report consists of one BASIC list and 20 secondary list. Basic list is produced
by START-OF-SELECTION event. When the user double clicks on the basic list or
chooses the menu option, the secondary list is produced. All the events
associated with classical report except end-of-page are applicable only to
basic list.
AT LINE-SELECTION event
Start-of-selection.
Write: / ‘this
is basic list’.
At line-selection.
Write : ‘this
is first secondary list’.
In this case
the output will be displayed on basic list i.e.
This is basic
list.
When user
double clicks on this line, the event at line-selection gets triggered and
secondary list is produced, i.e.
This is first
secondary list.
You can go
back to basic list by clicking on F3 or back icon on the standard tool
bar. For this list, the value of
sy-lsind will be 1.
HIDE technique
In this case
thins are much simpler. Consider the case, wherein you display fields from
table sflight in basic list. When user double clicks on any sflight-carrid, you
are displaying the detailed information related to that particular carrid on
secondary list. Hence there is a need to
store the clicked carrid in some variable.
So that you can access this carrid for next list. ABAP/4 has facility; a
statement called HIDE, which
provides the above functionality.
HIDE command
temporarily stores the content of clicked field in system area.
Syntax:
HIDE
.
The HIDE area
is a table, in which the system stores the names and values of all HIDE fields
for each list and line number. As soon
as they are needed, the system reads the values from the table. (Please try to find the name of this table.)
Sy-lsind
indicates the index of the list and can be used to handle all the secondary
lists. When the user double clicks on
the line or presses F2, sy-lsind is increased by one and this new sy-lsind can
be handled. For example:
Write: / ‘this is basic list’.
·
Will create a basic list.
If sy-lsind = 1.
Write: / ‘this is first secondary
list’.
Elseif sy-lsind = 2.
Write: / ‘This is second
secondary list’.
Endif.
·
Basic list is produced.
·
When the user clicks on the basic list, sy-lsind
becomes one.
·
AT LINE-SELECTION event is triggered.
·
Whatever is written under IF Sy-lsind = 1, gets
executed.
·
Secondary list is produced.
·
Again if user clicks on this list, sy-lsind
becomes two.
·
AT LINE-SELECTION gets triggered.
·
Code written under IF Sy-lsind = 2, gets
executed.
Example for Interactive Report Events
*&---------------------------------------------------------------------*
*& Report ZBASU_INTERACTIVE_REPORT_EVENT *
*&---------------------------------------------------------------------*
REPORT
ZBASU_INTERACTIVE_REPORT_EVENT NO STANDARD PAGE HEADING
LINE-SIZE 90 LINE-COUNT 40(2).
Tables: mara, kna1, vbak, vbap.
types:begin of ty_kna1,
kunnr like kna1-kunnr,
name1 like kna1-name1,
end of ty_kna1.
types:begin of ty_vbln,
vbeln like vbak-vbeln,
netwr like vbak-netwr,
end of ty_vbln.
types:begin of ty_vbap,
posnr like vbap-posnr,
matnr like mara-matnr,
end of ty_vbap.
data: it_kna1 type standard table of
ty_kna1,
wa_kna1 like line of it_kna1.
data: it_vbln type standard table of
ty_vbln,
wa_vbln like line of it_vbln.
data: it_vbap type standard table of
ty_vbap,
wa_vbap like line of it_vbap.
START-OF-SELECTION.
select kunnr name1 from kna1 into corresponding fields of table it_kna1.
loop at it_kna1 into wa_kna1.
write:/ wa_kna1-kunnr,
wa_kna1-name1.
hide: wa_kna1-kunnr.
endloop.
TOP-OF-PAGE.
WRITE:/ 'GALAXE SOLUTIONS'.
At line-selection.
case sy-lsind.
when '1'.
select vbeln netwr from vbak into
corresponding fields of table it_vbln.
loop at it_vbln into wa_vbln.
write:/ wa_vbln-vbeln,
wa_vbln-netwr.
hide: wa_vbln-vbeln.
endloop.
when '2'.
select a~posnr b~matnr into
corresponding fields of table it_vbap from
vbap as a inner join mara as b on
a~matnr = b~matnr.
loop at it_vbap into wa_vbap.
write:/ wa_vbap-posnr,
wa_vbap-matnr.
endloop.
endcase.
Top-of-page during line-selection.
if sy-lsind = '1'.
write:/ ' first list'.
elseif sy-lsind = '2'.
write:/ 'second list'.
else.
write:/ 'proper list no'.
endif.
what is the difference between domain, field, data element?
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteGreat job....
ReplyDeleteif u dont mind can u please tell me what is table,types & begin of & like, type of, type ref to?
ReplyDelete