Application Development and Automation 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: 
Read only

interactive reports

Former Member
0 Likes
1,008

can i get coding for interactive reports

10 REPLIES 10
Read only

jayanthi_jayaraman
Active Contributor
0 Likes
971

Hi,

Check this link.

http://www.sap-img.com/abap.htm

Read only

former_member673464
Active Contributor
0 Likes
971

hi..

use the following link for interactive lists.

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

reagards,

veeresh

Read only

Former Member
0 Likes
971

hi,

REPORT demo_list_at_user_command NO STANDARD PAGE HEADING.

START-OF-SELECTION.

WRITE: 'Basic List',

/ 'SY-LSIND:', sy-lsind.

TOP-OF-PAGE.

WRITE 'Top-of-Page'.

ULINE.

TOP-OF-PAGE DURING LINE-SELECTION.

CASE sy-pfkey.

WHEN 'TEST'.

WRITE 'Self-defined GUI for Function Codes'.

ULINE.

ENDCASE.

AT LINE-SELECTION.

SET PF-STATUS 'TEST' EXCLUDING 'PICK'.

PERFORM out.

sy-lsind = sy-lsind - 1.

AT USER-COMMAND.

CASE sy-ucomm.

WHEN 'FC1'.

PERFORM out.

WRITE / 'Button FUN 1 was pressed'.

WHEN 'FC2'.

PERFORM out.

WRITE / 'Button FUN 2 was pressed'.

WHEN 'FC3'.

PERFORM out.

WRITE / 'Button FUN 3 was pressed'.

WHEN 'FC4'.

PERFORM out.

WRITE / 'Button FUN 4 was pressed'.

WHEN 'FC5'.

PERFORM out.

WRITE / 'Button FUN 5 was pressed'.

ENDCASE.

sy-lsind = sy-lsind - 1.

FORM out.

WRITE: 'Secondary List',

/ 'SY-LSIND:', sy-lsind,

/ 'SY-PFKEY:', sy-pfkey.

ENDFORM.

Read only

Former Member
0 Likes
971

Hi,

pls see the following code

*tables Kna1,vbap,vbak.

TYPE-POOLS: SLIS.

*type declaration for values from ekko

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO,

  • "INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

*type declaration for values from ekpo.

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO .

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • declaration for events table where user comand or set PF status will

  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

data IT_LIST_COMMENTARY type slis_t_listheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

I_LOGO = 'zmadhu'

  • I_END_OF_LIST_GRID = I_END_OF_LIST_GRID

  • I_ALV_FORM = I_ALV_FORM

.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = I_INTERNAL_TABNAME

  • I_STRUCTURE_NAME = I_STRUCTURE_NAME

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER = I_BYPASSING_BUFFER

  • I_BUFFER_ACTIVE = I_BUFFER_ACTIVE

CHANGING

CT_FIELDCAT = I_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.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


*FORM BUILD_FIELDCATLOG.

  • WA_FIELDCAT-TABNAME = 'IT_EKKO'.

  • WA_FIELDCAT-FIELDNAME = 'EBELN'.

  • WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

  • APPEND WA_FIELDCAT TO I_FIELDCAT.

  • CLEAR WA_FIELDCAT.

*

  • WA_FIELDCAT-TABNAME = 'IT_EKKO'.

  • WA_FIELDCAT-FIELDNAME = 'AEDAT'.

  • WA_FIELDCAT-SELTEXT_M = 'DATE.'.

  • APPEND WA_FIELDCAT TO I_FIELDCAT.

  • CLEAR WA_FIELDCAT.

*

  • WA_FIELDCAT-TABNAME = 'IT_EKKO'.

  • WA_FIELDCAT-FIELDNAME = 'BUKRS'.

  • WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

  • APPEND WA_FIELDCAT TO I_FIELDCAT.

  • CLEAR WA_FIELDCAT.

*

*

*

  • WA_FIELDCAT-TABNAME = 'IT_EKKO'.

  • WA_FIELDCAT-FIELDNAME = 'BUKRS'.

    • WA_FIELDCAT-SELTEXT_m = 'COMPANY CODE'.

  • APPEND WA_FIELDCAT TO I_FIELDCAT.

  • CLEAR WA_FIELDCAT.

*

*

  • WA_FIELDCAT-TABNAME = 'IT_EKKO'.

  • WA_FIELDCAT-FIELDNAME = 'LIFNR'.

    • WA_FIELDCAT-NO_OUT = 'X'.

  • WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

  • APPEND WA_FIELDCAT TO I_FIELDCAT.

  • CLEAR WA_FIELDCAT.

*

*

*ENDFORM. "BUILD_FIELDCATLOG

*

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

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

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

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

IF SY-SUBRC EQ 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 EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

**----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'this is my first alv pgm'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_title_ekko

  • I_GRID_SETTINGS =

IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKKO

  • 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_report

&----


*& Form TOP_OF_PAGE

&----


  • text

----


*FORM TOP_OF_PAGE.

  • CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

  • EXPORTING

  • IT_LIST_COMMENTARY = IT_LISTHEADER

    • i_logo =

    • I_END_OF_LIST_GRID =

  • .

*

*ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_EKPO.

PERFORM EVENT_CALL_EKPO.

PERFORM POPULATE_EVENT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_EKPO.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_EKPO

&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELP'.

WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MENGE'.

WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-SELTEXT_M = 'UOM'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'NETPR'.

WA_FIELDCAT-SELTEXT_M = 'PRICE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_EKPO

&----


*& Form event_call_ekpo

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.

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_ekpo

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.

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

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

i_logo = 'Zmadhu'

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekko

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM.

FORM DISPLAY_ALV_EKPO.

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 = ' '

I_CALLBACK_USER_COMMAND = 'F_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_EKPO

  • I_GRID_SETTINGS =

IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKPO

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.

Reward if it helpful

Thanks

Vana

Read only

Former Member
0 Likes
971

HI,

Hope you know about ALV's, I am sending you the main part where the interactive report occurs..

***Function module for grid display

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY

EXPORTING

I_CALLBACK_PROGRAM = sy-repid:

I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND' " FORM NAME

:

:

IT_FIELDCAT = GT_FIELDCAT "your field catalogue

.....................................

TABLES

T_OUTTAB = ITAB "your first screen final table which sould be displayed

...........................

This coding does the interactive part..

..

FORM F_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

When '&IC1'.

if rs_selfield-fieldname = '<your field name>'

:

Write your code here..

Again you can use reuse_grid... to get the secondary list..

:

endif.

endcase.

ENDFORM.

reward points if useful

regards,

nazeer

Read only

Former Member
0 Likes
971

REPORT ZDAN77 NO STANDARD PAGE HEADING

LINE-COUNT 37(3)

LINE-SIZE 300.

TABLES: VBAP,VBAK,KNA1,T001W.

DATA: BEGIN OF D_ITAB OCCURS 0.

DATA: VBELN1 LIKE VBAK-VBELN,

ERDAT1 LIKE VBAK-ERDAT,

ERNAM1 LIKE VBAK-ERNAM,

KUNNR1 LIKE VBAK-KUNNR,

END OF D_ITAB.

DATA: BEGIN OF D_ITAB1 OCCURS 0.

DATA: KUNNR1 LIKE KNA1-KUNNR,

NAME12 LIKE KNA1-NAME1,

END OF D_ITAB1.

DATA: BEGIN OF D_ITAB2 OCCURS 0.

DATA: VBELN1 LIKE VBAP-VBELN,

POSNR1 LIKE VBAP-POSNR,

MATNR1 LIKE VBAP-MATNR,

ZMENG1 LIKE VBAP-ZMENG,

NETWR1 LIKE VBAP-NETWR,

WERKS1 LIKE VBAP-WERKS,

END OF D_ITAB2.

DATA: BEGIN OF D_ITAB3 OCCURS 0.

DATA: MATNR1 LIKE MAKT-MATNR,

MAKTX1 LIKE MAKT-MAKTX,

END OF D_ITAB3.

DATA: BEGIN OF D_ITAB4 OCCURS 0.

DATA: WERKS1 LIKE T001L-WERKS,

LGOBE1 LIKE T001L-LGOBE,

LGORT1 LIKE T001L-LGORT,

END OF D_ITAB4.

SELECT-OPTIONS: S_VBELN FOR VBAK-VBELN,

S_KUNNR FOR KNA1-KUNNR.

START-OF-SELECTION.

SELECT VBELN

ERDAT

ERNAM

KUNNR

FROM VBAK INTO TABLE D_ITAB WHERE VBELN IN S_VBELN AND KUNNR IN

S_KUNNR.

IF NOT D_ITAB[] IS INITIAL.

SELECT KUNNR

NAME1

INTO TABLE D_ITAB1 FROM KNA1 FOR ALL ENTRIES IN

D_ITAB WHERE KUNNR = D_ITAB-KUNNR1.

ENDIF.

END-OF-SELECTION.

SORT: D_ITAB, D_ITAB1.

LOOP AT D_ITAB.

READ TABLE D_ITAB1 WITH KEY KUNNR1 = D_ITAB-KUNNR1.

WRITE: / D_ITAB-VBELN1, '|', D_ITAB-ERDAT1,'|',

D_ITAB-ERNAM1,'|',D_ITAB-KUNNR1,'|',D_ITAB1-NAME12.

*HIDE D_ITAB-VBELN1.

ENDLOOP.

*--INTERACTIVE PHASE.

*-- 1ST SECONDARY LIST.

AT LINE-SELECTION.

DATA: F(20) TYPE C,

V(10) TYPE N.

GET CURSOR FIELD F VALUE V.

IF F EQ 'D_ITAB-VBELN1'.

SELECT VBELN

POSNR

MATNR

ZMENG

NETWR

WERKS

FROM VBAP INTO TABLE D_ITAB2 WHERE VBELN EQ V.

IF NOT D_ITAB2[] IS INITIAL.

SELECT MATNR

MAKTX FROM MAKT INTO TABLE D_ITAB3 FOR ALL ENTRIES IN D_ITAB2

WHERE MATNR = D_ITAB2-MATNR1.

SELECT WERKS

LGOBE

LGORT

FROM T001L INTO TABLE D_ITAB4 FOR ALL ENTRIES IN D_ITAB2

WHERE WERKS = D_ITAB2-WERKS1.

*

*WINDOW STARTING AT 20 5

*

*ENDING AT 120 25.

LOOP AT D_ITAB2.

READ TABLE D_ITAB3 WITH KEY MATNR1 = D_ITAB2-MATNR1.

READ TABLE D_ITAB4 WITH KEY WERKS1 = D_ITAB2-WERKS1.

WRITE: / D_ITAB2-VBELN1,'|', D_ITAB2-POSNR1,'|', D_ITAB2-MATNR1, '|',

D_ITAB2-ZMENG1, '|', D_ITAB2-NETWR1, '|', D_ITAB3-MAKTX1, '|',

D_ITAB4-LGORT1, '|', D_ITAB4-LGOBE1,'|'.

ENDLOOP.

ENDIF.

ENDIF.

*TOP-OF-PAGE DURING LINE-SELECTION.

*WRITE: / '1ST SECONDARY LIST'.

*ULINE.

*---MODULE FOR 2ND SECONDARY LIST.

IF F EQ 'D_ITAB-KUNNR1'.

DATA: BEGIN OF D_ITAB5 OCCURS 0.

DATA: KUNNR LIKE KNA1-KUNNR,

LAND1 LIKE KNA1-LAND1,

NAME1 LIKE KNA1-NAME1,

STRAS LIKE KNA1-STRAS,

END OF D_ITAB5.

DATA: BEGIN OF D_ITAB6 OCCURS 0.

DATA: LAND1 LIKE T001-LAND1,

BUKRS LIKE T001-BUKRS,

BUTXT LIKE T001-BUTXT,

END OF D_ITAB6.

DATA: BEGIN OF D_ITAB7 OCCURS 0.

DATA: KUNNR LIKE VBAK-KUNNR,

VBELN LIKE VBAK-VBELN,

END OF D_ITAB7.

BREAK-POINT.

SELECT KUNNR

LAND1

NAME1

STRAS

FROM KNA1 INTO TABLE D_ITAB5 WHERE KUNNR EQ V.

IF NOT D_ITAB5[] IS INITIAL.

SELECT LAND1

BUKRS

BUTXT FROM T001 INTO TABLE D_ITAB6 FOR ALL ENTRIES IN D_ITAB5

WHERE LAND1 = D_ITAB5-LAND1.

SELECT KUNNR

VBELN FROM VBAK INTO TABLE D_ITAB7 FOR ALL ENTRIES IN D_ITAB5

WHERE KUNNR EQ D_ITAB5-KUNNR.

ENDIF.

SORT: D_ITAB5, D_ITAB6, D_ITAB7.

LOOP AT D_ITAB5.

READ TABLE D_ITAB6 WITH KEY LAND1 = D_ITAB5-LAND1.

READ TABLE D_ITAB7 WITH KEY KUNNR = D_ITAB5-KUNNR.

WRITE: / D_ITAB7-VBELN, '|', D_ITAB6-BUKRS,'|', D_ITAB6-BUTXT,'|',

D_ITAB5-KUNNR, '|', D_ITAB5-NAME1, '|', D_ITAB5-STRAS, '|',

D_ITAB5-LAND1.

ENDLOOP.

ENDIF.

TOP-OF-PAGE.

WRITE: ' ASSIGN #2 INTERACTIVE REPORTS '.

ULINE.

END-OF-PAGE.

ULINE.

WRITE: 'END OF PAGE :' , SY-PAGNO.

Thanks

P.srikanth

  • consider points

Read only

Former Member
0 Likes
971

Hi,

pls see below code for ordinary interactive report

************TABLES:EKKO,EKPO,mara.

************

*************SELECT-OPTIONS:ebeln FOR EKKO-ebeln.

************SELECT-OPTIONS:aedat FOR EKKO-aedat.

************

************

*************PARAMETERS:AEDAT LIKE EKKO-AEDAT.

************

************

************Data: begin of ITAB occurs 0,

                        • EBELN like EKKO-EBELN,

                        • END OF ITAB.

************

************

************Data: begin of ITAB1 occurs 0,

                        • EBELP like EKPO-EBELP,

                        • MATNR like EKPO-matnr,

                        • MENGE like EKPO-MENGE,

                        • END OF ITAB1.

************

                        • Data: begin of ITAB2 occurs 0,

                        • matnr like mara-matnr,

                        • Mtart like mara-mtart,

                        • Mbrsh like mara-Mbrsh,

                        • END OF ITAB2.

************data:sy_lsind type sy-lsind.

************

************START-OF-SELECTION.

                        • SELECT EBELN FROM EKKO INTO TABLE ITAB WHERE aedat IN aedat.

************

************

************

************

************END-OF-SELECTION.

************

************LOOP AT ITAB.

************WRITE:/ ITAB-EBELN.

************ENDLOOP.

************

************

************

************

*************AT LINE-SELECTION.

**************

**************CASE SY_Lsind.

**************WHEN 2.

**************sy-lsind = 0.

**************endcase.

*************

*************IF SY-LSIND = 2.

*************SY-LSIND = 0.

**************loop at itab.

*************write:/ 'basic list',itab-ebeln.

**************endloop.

*************ENDIF.

*************

**************

*************WRITE: / 'You clicked list', sy-listi,

                          • / 'You are on list', sy-lsind.

*************case sy-lsind.

*************when '1'.

*************

*************

*************SELECT EBELP matnr menge FROM EKPO INTO TABLE ITAB1 WHERE EBELN =

*************ITAB-EBELN.

*************

*************LOOP AT ITAB1.

*************WRITE:/ 'SY-LSIND =', SY-LSIND,ITAB1-EBELP,itab1-matnr,itab1-menge.

*************HIDE ITAB1-matnr.

*************ENDLOOP.

*************

*************

*************

*************.

*************

*************

*************when '2'.

*************

*************

*************SELECT matnr mtart mbrsh FROM mara INTO TABLE ITAB2 WHERE matnr =

*************iTAB1-matnr.

*************

*************LOOP AT ITAB2.

*************WRITE:/ 'SY-LSIND =', SY-LSIND, ITAB2-matnr,itab2-mtart,itab2-mbrsh.

**************HIDE ITAB1-matnr.

**************endcase

*************ENDLOOP.

*************endcase.

************

************IF sy-lsind < 20.

                        • SKIP.

                        • WRITE: 'More ...' COLOR = 4 HOTSPOT.

                        • ENDIF.

************

************

************

                        • SET PF-STATUS 'MALI'.

************

************

                        • AT USER-COMMAND.

                        • CASE SY-UCOMM.

************

                        • when 'MALI22'.

                        • SELECT EBELP matnr menge FROM EKPO INTO TABLE ITAB1 WHERE EBELN =

************ITAB-EBELN.

************

************LOOP AT ITAB1.

************WRITE:/ 'SY-LSIND =', SY-LSIND,ITAB1-EBELP,itab1-matnr,itab1-menge.

*************HIDE ITAB1-matnr.

************ENDLOOP.

************

************WHEN 'MALI'.

************

************SELECT matnr mtart mbrsh FROM mara INTO TABLE ITAB2 WHERE matnr =

************iTAB1-matnr.

************

*************when 'BACK'.

*************EXIT.

**************

************

************SET PF-STATUS 'MAL' excluding 'MAL'.

************

************LOOP AT ITAB2.

************WRITE:/ 'SY-LSIND =', SY-LSIND, ITAB2-matnr,itab2-mtart,itab2-mbrsh.

*************HIDE ITAB1-matnr.

*************endcase

************ENDLOOP.

*************endcase.

************

************

************

************ENDCASE.

************

************

************IF sy-lsind < 20.

                        • SKIP.

                        • WRITE: 'More ...' COLOR = 4 HOTSPOT.

                        • ENDIF.

************

give a reawrd if it useful

Thnaks

vana

Read only

Former Member
0 Likes
971

Hi,

check this code.

REPORT ZINTERACTIVE_FINAL.

INCLUDE <COLOR>.

TABLES:SFLIGHT,SPFLI,SBOOK.

TYPES: BEGIN OF STRUCTURE,

CITYFROM LIKE SPFLI-CITYFROM,

CITYTO LIKE SPFLI-CITYTO,

CARRID LIKE SPFLI-CARRID ,

CONNID LIKE SPFLI-CONNID,

FLDATE LIKE SFLIGHT-FLDATE,

SEATSMAX LIKE SFLIGHT-SEATSMAX,

SEATSOCC LIKE SFLIGHT-SEATSOCC,

END OF STRUCTURE.

DATA : ITAB TYPE STRUCTURE OCCURS 0.

DATA: WA TYPE STRUCTURE.

DATA:LINE LIKE SY-LILLI.

SELECT SPFLICITYFROM SPFLICITYTO SPFLICARRID SPFLICONNID

SFLIGHTFLDATE SFLIGHTSEATSMAX SFLIGHT~SEATSOCC INTO (WA-CITYFROM,

WA-CITYTO,WA-CARRID,WA-CONNID,WA-FLDATE,WA-SEATSMAX,WA-SEATSOCC) FROM

SPFLI INNER JOIN SFLIGHT ON SPFLIMANDT = SFLIGHTMANDT AND SPFLI~CARRID

= SFLIGHTCARRID AND SPFLICONNID = SFLIGHT~CONNID.

*GET SPFLI.

*SELECT * FROM SPFLI.

  • MOVE-CORRESPONDING SPFLI TO WA.

*ENDSELECT.

*GET SFLIGHT.

*SELECT * FROM SFLIGHT.

  • MOVE-CORRESPONDING SFLIGHT TO WA.

*ENDSELECT.

APPEND WA TO ITAB.

ENDSELECT.

SET PF-STATUS 'GRUND'.

SET TITLEBAR 'GRU' .

SORT ITAB BY CITYFROM CITYTO CARRID CONNID SEATSOCC.

*LOOP AT ITAB INTO WA.

*WRITE:/ WA-CARRID,WA-CONNID,WA-CITYFROM,WA-CITYTO.

*ENDLOOP.

LOOP AT ITAB INTO WA.

AT FIRST.

WRITE:/ 'START OUTPUT INTERNAL TABLE'.

ULINE.

ENDAT.

AT NEW CITYFROM.

WRITE:/ WA-CITYFROM COLOR COL_KEY.

ENDAT.

AT NEW SEATSOCC.

WRITE:/10 WA-CARRID,WA-CONNID,WA-FLDATE COLOR COL_NORMAL,

WA-SEATSOCC COLOR COL_NORMAL,WA-SEATSMAX COLOR COL_NORMAL.

HIDE : WA-CONNID, WA-CARRID, WA-FLDATE.

ENDAT.

AT END OF CONNID.

SUM.

WRITE:/ WA-SEATSOCC COLOR COL_TOTAL UNDER WA-SEATSOCC,

WA-SEATSMAX COLOR COL_TOTAL.

  • ULINE .

ENDAT.

AT END OF CARRID.

SUM.

  • ULINE.

WRITE:/ WA-SEATSOCC COLOR COL_TOTAL INTENSIFIED UNDER

WA-SEATSOCC, WA-SEATSMAX COLOR COL_TOTAL INTENSIFIED.

ULINE.

ENDAT.

ENDLOOP.

CLEAR WA.

AT LINE-SELECTION.

CASE SY-LSIND.

WHEN 1.

WRITE:/' AIRLINE ', WA-CARRID ,

/'FLIGHT CONNECTION',WA-CONNID ,

/'FLIGHT DATE',WA-FLDATE.

ULINE.

SELECT * FROM SBOOK WHERE CARRID = WA-CARRID AND CONNID = WA-CONNID

AND FLDATE = WA-FLDATE .

WRITE 😕 SBOOK-BOOKID,SBOOK-CUSTOMID,SBOOK-ORDER_DATE.

ENDSELECT.

CLEAR WA.

WHEN 2.

LINE = SY-LILLI.

IF LINE > 4.

LINE = LINE - 4.

WRITE:/ 'SELECTED LINE NUMBE:',LINE.

ENDIF.

ENDCASE.

rgds,

bharat.

Read only

former_member196299
Active Contributor
0 Likes
971

Hi Rakkasi,

There may be many kind of interactive reports. You can follow the below path to have some idea about them ,

tcode : abapdocu

--> abap documentation and examples -->BC ABAP programming -->

abap program execution --> starting programs . Here you can get some sample coding for the interactive reports .

Reward points if helpful .

Thanks

Ranjita

Read only

Former Member
0 Likes
971

hi,

this is simple code interactive ALV Reports,,,,

Hope this helps u...

<u><b>AIM</b></u>

Design a Report that would take display all the Sales Order between 2 dates. When the user double clicks on a sales order the report would then display additional details on that Sales Order.

Description:

1)Use Select Options for the range of dates (VBAK-ERDAT).

2)Display the following fields for the Report from the Sales Document Header (VBAK). Customer name can be found in table (KNA1).

<b>DISPLAY THE FIELDS</b>

<b>1) Document No.

2) Creation User Name

3) Creation Date

4)Customer Name</b>

<b>

WHEN THE USER DOUBLE CLICKS ON THE DOCUMNET NO. DISPLAY THE FOLLOWING FIELDS

1)Material No.

2)Material Description.

3)Batch Number.

4)Item type</b>

for the drill down Report from the Sales Document Item (VBAP). Material Description can be found in table (MAKT).

3)The program should handle exceptions and display proper error message where required.

<u><b>SAMPLE CODE</b></u>

REPORT zginni_sales_report NO STANDARD PAGE HEADING .

<u><b>DECLARATION</b></u>

TABLES : vbak .

TYPES : BEGIN OF st_vbak ,

vbeln TYPE vbak-vbeln ,

ernam TYPE vbak-ernam ,

erdat TYPE vbak-erdat ,

name1 TYPE kna1-name1 ,

END OF st_vbak .

TYPES : BEGIN OF st_vbap ,

matnr TYPE vbap-matnr ,

maktx TYPE makt-maktx ,

charg TYPE vbap-charg ,

posar TYPE vbap-posar ,

END OF st_vbap .

<u><b>INTERNAL TABLE & WORK AREA</b></u>

DATA : it_vbak TYPE TABLE OF st_vbak ,

wa_vbak TYPE st_vbak ,

it_vbap TYPE TABLE OF st_vbap ,

wa_vbap TYPE st_vbap .

<b>TOP-OF-PAGE .</b>

WRITE :4 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :130 sy-vline .

WRITE :/4 sy-vline ,

10 Document No.,

39 sy-vline ,

40 Creation User Name,

69 sy-vline ,

70 Creation Date,

89 sy-vline ,

90 Customer Name,

130 sy-vline.

WRITE :/130 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :4 sy-vline ,130 sy-vline .

<b>TOP-OF-PAGE DURING LINE-SELECTION .

WRITE :4 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :130 sy-vline .

WRITE :/4 sy-vline ,

10 Material No,

39 sy-vline ,

40 Material Description.,

69 sy-vline ,

70 Batch Number,

89 sy-vline ,

90 Item type,

130 sy-vline.

WRITE :/130 sy-vline .

WRITE AT 5(125) sy-uline.

WRITE :4 sy-vline ,

130 sy-vline .</b>

SELECT-OPTIONS put_date FOR vbak-erdat .

<b>AT LINE-SELECTION .

SELECT

vbap~matnr

makt~maktx

vbap~charg

vbap~posar

FROM ( vbap INNER JOIN makt ON vbapmatnr = maktmatnr )

INTO CORRESPONDING FIELDS OF TABLE IT_VBAP

WHERE vbap~vbeln = wa_vbak-vbeln AND spras = 'EN' .

IF sy-subrc EQ 0 .

LOOP AT it_vbap INTO wa_vbap .

WRITE :/4 sy-vline ,

10 wa_vbap-matnr ,

39 sy-vline ,

40 wa_vbap-maktx ,

69 sy-vline ,

70 wa_vbap-charg ,

89 sy-vline ,

90 wa_vbap-posar ,

130 sy-vline .

ENDLOOP.

WRITE :/4 sy-vline.

WRITE AT 5(125) sy-uline.

WRITE 130 sy-vline.

ELSE .

MESSAGE s000(zginni) .

ENDIF .</b>

<b>START-OF-SELECTION.</b>

PERFORM sales_document .

<b>END-OF-SELECTION.</b>

FORM sales_document .

IF put_date-low IS INITIAL AND put_date-high IS NOT INITIAL .

SELECT

vbak~vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat <= put_date-high.

IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

IF put_date-low IS NOT INITIAL AND put_date-high IS INITIAL .

SELECT vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat EQ put_date-low .

IF sy-subrc EQ 0 .

PERFORM looping_wa_vbak .

ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

IF put_date-high IS INITIAL AND put_date-low IS INITIAL .

MESSAGE s000(zginni) .

ELSE .

SELECT

vbak~vbeln

vbak~ernam

vbak~erdat

kna1~name1

FROM ( kna1 INNER JOIN vbak ON vbakkunnr = kna1kunnr ) INTO

CORRESPONDING FIELDS OF TABLE IT_VBAK

WHERE vbak~erdat BETWEEN put_date-low AND put_date-high.

IF sy-subrc EQ 0 .

<b>LOOP AT it_vbak INTO wa_vbak .

WRITE :/4 sy-vline ,

10 wa_vbak-vbeln .

HIDE wa_vbak-vbeln .

WRITE: 39 sy-vline ,

40 wa_vbak-ernam ,

69 sy-vline ,

70 wa_vbak-erdat ,

89 sy-vline ,

90 wa_vbak-name1 ,

130 sy-vline .

ENDLOOP.</b>

WRITE :/4 sy-vline.

WRITE AT 5(125) sy-uline .

WRITE 130 sy-vline. ELSE .

MESSAGE s000(zginni) .

ENDIF .

ENDIF .

ENDFORM .

using AT LINE SELECTION event and HIDE statement u can make ur report an interactive one...

hope this helps u ...

reward points if useful,

Thanks,

Ginni