Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Basics of interactive reporting.

Former Member
0 Kudos

Hi All,

Im new to SAP ABAP. I have worked with normal reporting and now i want to do the interactive reporting. can any one suggest me hw to proceed further.....

Thnks in advance.

1 ACCEPTED SOLUTION
7 REPLIES 7

Former Member
0 Kudos

hi,,

see the simple interactive program: all u need is to capture the row which u clicked( user command & hide) , then use at line-selection for further processing.

TABLES: MARA, MAKT.

* Data Declaration
DATA: V_MATNR LIKE MARA-MATNR,
      V_MAKTX LIKE MAKT-MAKTX.

* Internal table declaration
DATA: BEGIN OF I_MARA OCCURS 0,
        MATNR LIKE MARA-MATNR,
      END OF I_MARA,

      BEGIN OF I_MAKT OCCURS 0,
        MATNR LIKE MARA-MATNR,
        MAKTX LIKE MAKT-MAKTX,
      END OF I_MAKT.

START-OF-SELECTION.
* Select materials from MARA table
  SELECT MATNR
    UP TO 30 ROWS
    INTO TABLE I_MARA
    FROM MARA.

  IF SY-SUBRC = 0.
    SORT I_MARA.
    DELETE ADJACENT DUPLICATES FROM I_MARA COMPARING MATNR.
  ENDIF.

END-OF-SELECTION.
  WRITE: 'MATERIAL NO'.
  LOOP AT I_MARA.
    WRITE:/ I_MARA-MATNR.
    HIDE I_MARA-MATNR.
  ENDLOOP.

AT LINE-SELECTION.
* Select Material description from MAKT
  SELECT SINGLE MATNR MAKTX
    INTO (V_MATNR, V_MAKTX)
    FROM MAKT
    WHERE MATNR = I_MARA-MATNR
      AND SPRAS = 'EN'.
  IF SY-SUBRC = 0.
    WRITE: 'Material Number: ' , V_MATNR.
    WRITE: 'Material Description: ', V_MAKTX.
  ELSE.
    WRITE: 'DESCRIPTION NOT FOUND FOR THE MATERIAL: ' , V_MATNR.
  ENDIF.

regards,

madhumitha

Former Member
0 Kudos

Hi,

Check this link.

Link:

[http://help.sap.com/saphelp_nw70/helpdata/EN/d2/cb40a4455611d189710000e8322d00/frameset.htm]

Following is a sample interactive report developed for our demo purpose:

REPORT zintractive .

TYPES : BEGIN OF str_mard,

matnr TYPE mard-matnr,

lgort TYPE mard-lgort,

werks TYPE mard-werks,

END OF str_mard.DATA : wa_mard TYPE str_mard,

it_mard TYPE TABLE OF str_mard.TYPES : BEGIN OF str_makt,

matnr TYPE makt-matnr,

maktg TYPE makt-maktg, END OF str_makt.DATA : wa_makt TYPE str_makt,

it_makt TYPE TABLE OF str_makt.TYPES : BEGIN OF str_mara,

matnr TYPE mara-matnr,

ersda TYPE mara-ersda,

ernam TYPE mara-ernam,

laeda TYPE mara-laeda,

mtart TYPE mara-mtart,

matkl TYPE mara-matkl,

meins TYPE mara-meins,

END OF str_mara.DATA : wa_mara TYPE str_mara,

it_mara TYPE TABLE OF str_mara.TYPES : BEGIN OF str_final,

matnr TYPE mara-matnr,

ersda TYPE mara-ersda,

ernam TYPE mara-ernam,

laeda TYPE mara-laeda,

mtart TYPE mara-mtart,

matkl TYPE mara-matkl,

meins TYPE mara-meins,

lgort TYPE mard-lgort,

werks TYPE mard-werks,

END OF str_final.DATA: wa_final TYPE str_final,

it_final TYPE TABLE OF str_final.PARAMETERS : plant TYPE mard-werks,

stor LIKE mard-lgort.SELECT matnr lgort werks

FROM mard

INTO TABLE it_mard

WHERE lgort = stor AND werks = plant.

.SELECT matnr maktg

FROM makt

INTO TABLE it_makt FOR ALL ENTRIES IN it_mard

WHERE matnr = it_mard-matnr AND spras = 'E'.

SELECT matnr ersda ernam laeda mtart matkl meins

FROM mara

INTO TABLE it_mara FOR ALL ENTRIES IN it_makt

WHERE matnr = it_makt-matnr.

LOOP AT it_makt INTO wa_makt.

WRITE : /1 wa_makt-matnr COLOR 1,

40 wa_makt-maktg COLOR 2.

HIDE wa_makt-matnr.

ENDLOOP.CLEAR wa_mard-matnr.AT LINE-SELECTION.

REFRESH it_final.

CLEAR wa_final.

ULINE.

IF sy-lsind = 1.

WRITE : /1 'MATERIAL NO' COLOR 2,

20 'CREATION DATE' COLOR 3,

32 'PERSON CREATED',

50 'DATE OF LIST' ,

65 'MATERIALTYPE',

80 'MATGROUP' ,

90 'UNITOFMEASURE',

110 'STORLOCATION' COLOR 4,

130 'PLANT' COLOR 5.

ULINE.

ENDIF. LOOP AT it_mara INTO wa_mara WHERE matnr = wa_makt-matnr. wa_final-matnr = wa_mara-matnr.

wa_final-ersda = wa_mara-ersda.

wa_final-ernam = wa_mara-ernam.

wa_final-laeda = wa_mara-laeda.

wa_final-mtart = wa_mara-mtart.

wa_final-matkl = wa_mara-matkl.

wa_final-meins = wa_mara-meins. READ TABLE it_mard INTO wa_mard WITH KEY matnr = wa_makt-matnr. wa_final-lgort = wa_mard-lgort.

wa_final-werks = wa_mard-werks. APPEND wa_final TO it_final. ENDLOOP. LOOP AT it_final INTO wa_final. WRITE : /1 wa_final-matnr COLOR 2,

20 wa_final-ersda COLOR 3,

37 wa_final-ernam,

50 wa_final-laeda ,

70 wa_final-mtart ,

85 wa_final-matkl ,

95 wa_final-meins,

115 wa_final-lgort COLOR 4,

130 wa_final-werks COLOR 5.

ENDLOOP.TOP-OF-PAGE.

WRITE : /1 'MATERIAL NO' COLOR 1,

40 'DISCRIPTION' COLOR 2.

ULINE .

Check this link too....

Link:

[http://www.saptechnical.com/Tutorials/ABAP/InteractiveReport/page1.htm]

Reward if helpful.

Former Member
0 Kudos

Hai,may be this examplw may help to u.

&----


*& Report ZNAGALV

*&

&----


*&

*&

&----


REPORT ZNAGALV.

TYPE-POOLS SLIS.

TABLES : VBAK, vbap.

  • DECLARATION OF INTERNAL TABLES FOR BASIC LIST

DATA : BEGIN OF IT_BASIC OCCURS 0,

VKORG LIKE VBAK-VKORG,

VTWEG LIKE VBAK-VTWEG,

SPART LIKE VBAK-SPART,

AUDAT LIKE VBAK-AUDAT,

VBELN LIKE VBAK-VBELN,

KUNNR LIKE VBAK-KUNNR,

NETWR LIKE VBAK-NETWR,

KNUMV LIKE VBAK-KNUMV,

MATNR LIKE VBAP-MATNR,

GBStk like vbuk-GBStk,

POSNR LIKE VBAP-POSNR,

WERKS LIKE VBAP-WERKS,

PARVW LIKE VBPA-PARVW,

BSTKD LIKE VBKD-BSTKD,

BSTDK LIKE VBKD-BSTDK,

END OF IT_BASIC.

DATA: BEGIN OF IT_SECOND OCCURS 0,

KNUMV LIKE KONV-KNUMV,

KPOSN LIKE KONV-KPOSN,

KSCHL LIKE KONV-KSCHL,

KBETR LIKE KONV-KBETR,

KWERT LIKE KONV-KWERT,

END OF IT_SECOND.

DATA: BEGIN OF IT_THIRD OCCURS 0,

KSCHL LIKE KONV-KSCHL,

VTEXT LIKE T685T-VTEXT,

END OF IT_THIRD.

DATA: BEGIN OF IT_FOURTH OCCURS 0,

KNUMV LIKE KONV-KNUMV,

KPOSN LIKE KONV-KPOSN,

KSCHL LIKE KONV-KSCHL,

KBETR LIKE KONV-KBETR,

KWERT LIKE KONV-KWERT,

VTEXT LIKE T685T-VTEXT,

END OF IT_FOURTH.

  • DECLARATION OF INTERNAL TABLES FOR SECONDARY LIST

DATA: BEGIN OF IT_FINAL2 OCCURS 0,

*INCLUDE STRUCTURE ZNAG_STRU.

KNUMV LIKE KONV-KNUMV,

KPOSN LIKE KONV-KPOSN,

KSCHL LIKE KONV-KSCHL,

KBETR LIKE KONV-KBETR,

KWERT LIKE KONV-KWERT,

VTEXT LIKE T685T-VTEXT.

data END OF IT_FINAL2.

*data it_final3 type ZNAG_LINE.

*data it_final4 like it_final3 occurs 0 .

data begin of it_final3 OCCURS 0.

INCLUDE structure ZNAG_stru.

data end of it_final3.

*DATA IT_FINAL3 TYPE STANDARD TABLE OF IT_FINAL2.

DATA F_INDEX TYPE SY-TABIX .

*Title displayed when the alv list is displayed

DATA: I_TITLE_BASIC TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED',

i_title_SECOND type lvc_title value 'secondary list displayed',

V_REPID TYPE SY-REPID.

  • Declaration for fieldcatalog

DATA: FIELDCAT1 TYPE SLIS_FIELDCAT_ALV,

FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.

data: v_events type slis_t_event,

wa_event type slis_alv_event.

DATA FNIT_FINAL TYPE RS38L_FNAM.

selection-screen begin of block b1

with frame TITLE TEXT-001 no intervals.

PARAMETERS : VKORG LIKE VBAK-VKORG obligatory,

VTWEG LIKE VBAK-VTWEG obligatory,

SPART LIKE VBAK-SPART obligatory.

selection-screen end of block b1.

selection-screen begin of block b2 with frame.

SELECT-OPTIONS : AUDAT FOR VBAK-AUDAT obligatory,

VBELN FOR VBAK-VBELN,

KUNNR FOR VBAK-KUNNR,

MATNR FOR VBAP-MATNR.

selection-screen end of block b2.

selection-screen begin of block b3 with frame NO INTERVALS.

PARAMETERS : G1 RADIOBUTTON GROUP RADI DEFAULT 'X',

G2 RADIOBUTTON GROUP RADI.

selection-screen end of block b3.

initialization.

audat-sign = 'I'.

audat-option = 'BT'.

audat-low = sy-datum - 30.

audat-high = sy-datum.

append audat.

V_REPID = SY-REPID.

perform event_call_basic.

*perform populate_event_basic.

AT SELECTION-SCREEN.

start-of-selection.

SELECT VBELN FROM VBAK INTO CORRESPONDING FIELDS

OF VBAK WHERE vkorg = vkorg and

vtweg = vtweg and spart = spart and

audat IN AUDAT.

IF SY-SUBRC = 0.

IF G1 = 'X'.

PERFORM DATA_RETRIEVAL_OPEN_ORDERS.

else.

PERFORM DATA_RETRIEVAL_ALL_ORDERS.

ENDIF.

else.

message 'no records found' type 'E'.

EXIT.

endif.

EXIT.

endselect.

FIELDCAT1-FIELDNAME = 'VBELN'.

FIELDCAT1-TABNAME = 'IT_BASIC'.

FIELDCAT1-REF_TABNAME = 'VBAK'.

FIELDCAT1-HOTSPOT = 'X'.

APPEND FIELDCAT1 TO FIELDCAT.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = V_REPID

I_INTERNAL_TABNAME = 'IT_BASIC'

  • I_STRUCTURE_NAME = 'VBAK'

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = FIELDCAT[]

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

*IF sy-subrc <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*

*ENDIF.

PERFORM DISPLAY_ALV_ITAB1.

&----


*& Form OPEN_ORDERS

&----


  • RETRIEVING VALUES FROM DATABASE TABLES INTO INTERNAL

  • TABLE FOR OPEN ORDERS

----


  • --> p1 text

  • <-- p2 text

----


form DATA_RETRIEVAL_OPEN_ORDERS .

CLEAR IT_BASIC.

SELECT DISTINCT Avkorg Avtweg Aspart Aaudat A~VBELN

A~kunnr

ANETWR AKNUMV C~MATNR

Bgbstk CPOSNR

CWERKS DPARVW

EBSTKD EBSTDK

INTO CORRESPONDING FIELDS OF TABLE IT_BASIC

FROM VBUK as B

INNER JOIN VBAK as A

on Avbeln = Bvbeln INNER JOIN VBAP AS C

ON AVBELN = CVBELN INNER JOIN VBPA AS D

ON AVBELN = DVBELN AND D~POSNR = '000000'

AND D~PARVW = 'WE'

INNER JOIN VBKD AS E

ON AVBELN = EVBELN

WHERE gbstk <> 'C' AND

A~VTWEG = VTWEG AND

AUDAT IN AUDAT AND

A~VBELN IN VBELN AND

A~KUNNR IN KUNNR AND

C~MATNR IN MATNR.

endform. " OPEN_ORDERS

&----


*& Form ALL_ORDERS

&----


  • RETRIEVING VALUES FROM DATABASE TABLES INTO

  • INTERNAL TABLE FOR ALL ORDERS

----


  • --> p1 text

  • <-- p2 text

----


form DATA_RETRIEVAL_ALL_ORDERS .

CLEAR IT_BASIC.

SELECT DISTINCT Avkorg Avtweg Aspart Aaudat A~VBELN

A~kunnr

ANETWR AKNUMV CMATNR BgbsTK C~POSNR

CWERKS DPARVW

EBSTKD EBSTDK

INTO CORRESPONDING FIELDS OF TABLE IT_BASIC

FROM VBUK as B inner join VBAK as A

on Avbeln = Bvbeln INNER JOIN VBAP AS C

ON AVBELN = CVBELN INNER JOIN VBPA AS D

ON AVBELN = DVBELN AND D~POSNR = '000000'

AND D~PARVW = 'WE'

INNER JOIN VBKD AS E

ON AVBELN = EVBELN

WHERE VTWEG = VTWEG AND

AUDAT IN AUDAT AND

A~VBELN IN VBELN AND

A~KUNNR IN KUNNR AND

C~MATNR IN MATNR.

endform. " ALL_ORDERS

&----


*& Form DISPLAY_ALV_ITAB1

&----


  • DISPLAYing BASIC LIST USING GRID DISPLAY

----


  • --> p1 text

  • <-- p2 text

----


form DISPLAY_ALV_ITAB1 .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

I_CALLBACK_PF_STATUS_SET = 'GUI'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = I_TITLE_BASIC

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS = V_EVENTS

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = IT_BASIC[]

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

endform. " DISPLAY_ALV_ITAB1

FORM GUI USING RT_EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'GUI' EXCLUDING RT_EXTAB.

ENDFORM. " GUI

*form POPULATE_EVENT_BASIC .

    • READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

    • IF SY-SUBRC = 0.

    • WA_EVENT-FORM = 'TOP_OF_PAGE'.

    • MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE

    • NAME = WA_EVENT-FORM.

    • ENDIF.

*

**READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

    • IF SY-SUBRC = 0.

    • WA_EVENT-FORM = 'USER_COMMAND'.

    • MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE

    • NAME = WA_EVENT-FORM.

    • ENDIF.

*endform. " POPULATE_EVENT_BASIC

&----


*& Form event_call

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form event_call_basic .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = v_events

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

.

*IF sy-subrc <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*ENDIF.

endform. " event_call_basic

  • START OF SECONDARY LIST

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD

TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

clear r_ucomm.

READ TABLE IT_BASIC INDEX RS_SELFIELD-TABINDEX.

PERFORM EVENT_CALL_second.

PERFORM POPULATE_EVENT_second.

IF SY-SUBRC = 0.

refresh IT_FOURTH.

CLEAR IT_FINAL2.

REFRESH IT_FINAL2.

PERFORM DATA_RETRIEVAL_second.

  • SY-TABIX = 1.

  • f_index = 1.

LOOP AT IT_FOURTH.

  • read table IT_FOURTH into IT_FINAL2

  • INDEX F_INDEX.

move-corresponding it_fourth to it_final2.

IF SY-SUBRC = 0.

append IT_FINAL2.

  • SY-TABIX = SY-TABIX + 1.

  • F_INDEX = SY-TABIX.

ENDIF.

CLEAR IT_FOURTH.

CLEAR IT_FINAL2.

ENDLOOP.

ENDIF.

CLEAR FIELDCAT.

PERFORM FIELDCAT_SECOND.

PERFORM DISPLAY_ALV_SECOND.

ENDCASE.

ENDFORM.

form EVENT_CALL_second.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = v_events

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

.

*IF sy-subrc <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*ENDIF.

ENDFORM.

form DATA_RETRIEVAL_second .

SELECT KNUMV KPOSN KSCHL KBETR KWERT

INTO TABLE IT_SECOND FROM KONV

WHERE KNUMV = IT_BASIC-KNUMV.

IF SY-SUBRC = 0.

SELECT KSCHL VTEXT FROM T685T INTO

TABLE IT_THIRD FOR ALL ENTRIES IN

IT_SECOND WHERE KSCHL = IT_SECOND-KSCHL AND SPRAS = SY-LANGU

AND KVEWE = 'A' AND KAPPL = 'V'.

READ TABLE IT_SECOND WITH KEY KNUMV = IT_BASIC-KNUMV.

IF SY-SUBRC = 0.

LOOP AT IT_SECOND.

READ TABLE IT_THIRD WITH KEY KSCHL = IT_SECOND-KSCHL.

IF SY-SUBRC = 0.

MOVE-CORRESPONDING IT_SECOND TO IT_FOURTH.

MOVE-CORRESPONDING IT_THIRD TO IT_FOURTH.

APPEND IT_FOURTH.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

endform. " DATA_RETRIEVAL_second

&----


*& Form populate_event

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form populate_event_SECOND .

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC = 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE

NAME = WA_EVENT-FORM.

ENDIF.

endform. " populate_event_second

&----


*& Form DISPLAY_ALV_SECOND

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form DISPLAY_ALV_SECOND .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMM'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

I_GRID_TITLE = i_title_SECOND

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • I_HTML_HEIGHT_TOP = 0

  • I_HTML_HEIGHT_END = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • IR_SALV_FULLSCREEN_ADAPTER =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = IT_FINAL2[]

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CASE SY-UCOMM.

WHEN '1'.

MESSAGE 'PROGRAM ERROR' TYPE 'E'.

EXIT.

WHEN '2'.

MESSAGE 'OTHERS' TYPE 'E'.

EXIT.

ENDCASE.

endform. " DISPLAY_ALV_SECOND

&----


*& Form FIELDCAT_SECOND

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form FIELDCAT_SECOND .

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'IT_FINAL2'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

ct_fieldcat = FIELDCAT

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

endform. " FIELDCAT_SECOND

FORM STATUS USING RT_EXTAB1 TYPE SLIS_T_EXTAB.

SET PF-STATUS 'STATUS' EXCLUDING RT_EXTAB1.

ENDFORM. " STATUS

FORM USER_COMM USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&PRIN'.

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = 'Z_NAG_ALV'

  • VARIANT = ' '

  • DIRECT_CALL = ' '

IMPORTING

FM_NAME = FNIT_FINAL

  • EXCEPTIONS

  • NO_FORM = 1

  • NO_FUNCTION_MODULE = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

REFRESH IT_FINAL3.

loop at it_final2.

move-corresponding it_final2 to it_final3.

append it_final3.

endloop.

CALL FUNCTION FNIT_FINAL

  • EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

  • CONTROL_PARAMETERS =

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

  • OUTPUT_OPTIONS =

  • USER_SETTINGS = 'X'

  • IMPORTING

  • DOCUMENT_OUTPUT_INFO =

  • JOB_OUTPUT_INFO =

  • JOB_OUTPUT_OPTIONS =

TABLES

it_final3 = IT_FINAL3[]

  • EXCEPTIONS

  • FORMATTING_ERROR = 1

  • INTERNAL_ERROR = 2

  • SEND_ERROR = 3

  • USER_CANCELED = 4

  • OTHERS = 5

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDCASE.

ENDFORM.

prasanth_kasturi
Active Contributor
0 Kudos

INTERACTIVE REPORTS

firstly study about the basics like what is interactive reporting and its uses and advantages over the other reports,

various events used, system variables helpful in doing the reports,

statements like hide getcursor etc

the below is just a reference. if any quieries revert back. if have any quires we will help you . All The Best

As the name suggests, the user can Interact with the report. We can have a drill down into the report data. For example, Column one of the report displays the material numbers, and the user feels that he needs some more specific data about the vendor for that material, he can HIDE that data under those material numbers.

And when the user clicks the material number, another report (actually sub report/secondary list) which displays the vendor details will be displayed.

We can have a basic list (number starts from 0) and 20 secondary lists (1 to 21).

Events associated with Interactive Reports are:

AT LINE-SELECTION

AT USER-COMMAND

AT PF<key>

TOP-OF-PAGE DURING LINE-SELECTION.

HIDE statement holds the data to be displayed in the secondary list.

sy-lisel : contains data of the selected line.

sy-lsind : contains the level of report (from 0 to 21)

Interactive Report Events:

AT LINE-SELECTION : This Event triggers when we double click a line on the list, when the event is triggered a new sublist is going to be generated. Under this event what ever the statements that are been return will be displayed on newly generated sublist.

AT PFn: For predefined function keys...

AT USER-COMMAND : It provides user functions keys.

TOP-OF-PAGE DURING LINE-SELECTION :top of page event for secondary list.

reward if helpful

prasanth

Former Member
0 Kudos

Hi,

have a look at demo programs

DEMO_LIST_INTERACTIVE_1

DEMO_LIST_INTERACTIVE_2

DEMO_LIST_INTERACTIVE_3

DEMO_LIST_INTERACTIVE_4

DEMO_LIST_HIDE

If you get further doubts at that point get back to the forum. You can also do some reading at this link

http://help.sap.com/saphelp_46c/helpdata/en/d3/2e974d35c511d1829f0000e829fbfe/frameset.htm

Follow the path

BC - ABAP Programming

Introduction to ABAP

The ABAP Programming Language

ABAP User Dialogs

Screens

Selection Screens

Lists

Creating Lists

Interactive Lists

Regards

Kiran Sure

Former Member
0 Kudos

Hi All,

Thanks for all ur suggestions and helpful answers.