Interactive reports in ABAP

Events in a interactive Report

At Line-Selection

This event will trigger whenever the user double click on any list line.

At User Command

This event will trigger whenever user clicks on any custom buttons of the GUI.

At PF Status

This event will trigger whenever user clicks on any function buttons.

Top Of Page During line selection

This is used to print heading for secondary lists in interactive reports.

Techniques used in interactive reporting

Hide area

It is a key word which is used to store the data into a temporary memory call as HIDE area.

Functionality of HIDE is
  • Whenever the user uses the HIDE statement, the data will be stored in ‘HIDE’ area along with line numbers.
  • Whenever user double clicks on any list line the system takes the line number and checks the HIDE area for the corresponding data in that particular line, then the data will be returned to the HIDE variables.
GET CURSOR

This key word is used to read the field name and field value where the mouse cursor is placed or double click action is raised. It dosen`t use hide area.

Sample program using AT USER COMMAND

*&---------------------------------------------------------------------*
*& Report  ZINTERACTIVE_1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
 
REPORT ZINTERACTIVE_1.
 
TYPES : BEGIN OF ty_vbrk,
vbeln TYPE vbeln,
fktyp TYPE fktyp,
land1 TYPE land1,
kunag TYPE kunag,
END OF ty_vbrk,
 
BEGIN OF ty_vbrp,
vbeln TYPE vbeln,
posnr TYPE posnr,
uepos TYPE uepos,
END OF ty_vbrp,
 
BEGIN OF ty_kna1,
kunnr TYPE kunnr,
land1 TYPE land1,
END OF ty_kna1.
 
DATA : it_vbrk TYPE TABLE OF ty_vbrk,
wa_vbrk TYPE          ty_vbrk,
 
it_vbrp TYPE TABLE OF ty_vbrp,
wa_vbrp TYPE          ty_vbrp,
 
it_kna1 TYPE TABLE OF ty_kna1,
wa_kna1 TYPE          ty_kna1.
 
SELECT-OPTIONS : s_vbeln FOR wa_vbrk-vbeln.
 
START-OF-SELECTION.
SET PF-STATUS 'SHIV'.
PERFORM get_vbrk.
PERFORM get_vbrp.
PERFORM get_kna1.
PERFORM display_vbrk.
PERFORM display_vbrp.
PERFORM display_kna1.
 
end-of-SELECTION.
*&---------------------------------------------------------------------*
*&      Form  GET_VBRK
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_vbrk .
SELECT vbeln
fktyp
land1
kunag FROM vbrk
INTO TABLE it_vbrk
WHERE vbeln In  s_vbeln.
ENDFORM.                    " GET_VBRK
*&---------------------------------------------------------------------*
*&      Form  GET_VBRP
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_vbrp .
SELECT vbeln
posnr
uepos FROM vbrp
INTO TABLE it_vbrp
*       FOR ALL ENTRIES,. IN IT_VBRK
WHERE vbeln = wa_vbrk-VBELN.
ENDFORM.                    " GET_VBRP
*&---------------------------------------------------------------------*
*&      Form  GET_KNA1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_kna1 .
SELECT kunnr
land1 FROM kna1
INTO TABLE it_kna1
WHERE kunnr = wa_vbrk-kunag.
ENDFORM.                    " GET_KNA1
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_KNA1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_kna1 .
LOOP at it_kna1 into wa_kna1.
WRITE : / wa_kna1-kunnr,
wa_kna1-land1.
ENDLOOP.
ENDFORM.                    " DISPLAY_KNA1
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_VBRK
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_vbrk .
LOOP at it_vbrk INTO wa_vbrk.
WRITE : / wa_vbrk-vbeln,
wa_vbrk-fktyp,
wa_vbrk-land1,
wa_vbrk-kunag.
HIDE wa_vbrk-vbeln.
ENDLOOP.
ENDFORM.                    " DISPLAY_VBRK
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_VBRP
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM display_vbrp .
LOOP at it_vbrp INTO wa_vbrp.
WRITE : / wa_vbrp-vbeln,
wa_vbrp-posnr,
wa_vbrp-uepos.
HIDE wa_vbrp-vbeln.
ENDLOOP.
ENDFORM.                    " DISPLAY_VBRP
 
at USER-COMMAND.
CASE sy-ucomm.
WHEN 'VBRK'.
PERFORM get_vbrk.
PERFORM display_vbrk.
WHEN 'VBRP'.
PERFORM get_vbrp.
PERFORM display_vbrp.
WHEN OTHERS.
PERFORM get_kna1.
PERFORM display_kna1.
ENDCASE.

NOTE: you need to create a PF-status by giving some name ( in CAPITALS ) and you need to assign the function keys.

Leave a comment