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: 

interactive ALV ,

Former Member
0 Kudos

Hi All,

Thank you for your reply.

I have one more query regarding this.I hope Everyone will help me in this also.

In the interactive ALV,I have in first screen,One internal table with fields text and count.

In the next screen,I have internal table with fields,vbeln,kunnr and name1.

I want the number of records according to the count in the first internal table.

If in the first list,the value of text is 'xxx' and count is 20,I want the 20 records in second list.

Hope you all understood my problem.

Please tell me the possible solution soon because I am in hurry.

Please try to help me........

Regards,

Akanksha

3 REPLIES 3

Former Member
0 Kudos

Hi akanksha,

1. There are some parameters

in the FM which are passed,

and a new FORM has to be written.

2. Just copy paste this code in new program.

3. It will display list of company.

On double-clicking on the alv,

it will again display the clicked company code.

Important code has been marked.

4.

REPORT abc.

TYPE-POOLS : slis.

*----


Data

DATA : BEGIN OF itab OCCURS 0.

INCLUDE STRUCTURE t001.

DATA : END OF itab.

DATA : alvfc TYPE slis_t_fieldcat_alv.

*----


Select Data

SELECT * FROM t001 INTO TABLE itab.

*------- Field Catalogue

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

i_program_name = sy-repid

i_internal_tabname = 'ITAB'

i_inclname = sy-repid

CHANGING

ct_fieldcat = alvfc

EXCEPTIONS

inconsistent_interface = 1

program_error = 2

OTHERS = 3.

*----


Display

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

it_fieldcat = alvfc

i_callback_program = sy-repid "<-------Important

i_callback_user_command = 'ITAB_USER_COMMAND' "<------ Important

TABLES

t_outtab = itab

EXCEPTIONS

program_error = 1

OTHERS = 2.

*----


  • CALL BACK FORM

*----


FORM itab_user_command USING whatcomm TYPE sy-ucomm whatrow TYPE

slis_selfield.

READ TABLE itab INDEX whatrow-tabindex.

WRITE itab-bukrs.

ENDFORM. "ITAB_user_command

regards,

amit m.

Former Member
0 Kudos

HI

GOOD

YOU CHECK WITH THE SY-SUBRC VALUE AND ACCORDINGLY GIVE A CONDITION AND GET THE VALUE FROM THE DATABASE TABLE.

THANKS

MRUTYUN

Former Member
0 Kudos

Hai Gothrough the following Link

Refer this link:

http://www.sap-img.com/abap/an-interactive-alv-report.htm

Go through the following Code

REPORT ZTEST_INTERACTIVE .

TYPE-POOLS:SLIS.

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV.

DATA: BEGIN OF ITAB OCCURS 0,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0,

VBELN LIKE LIKP-VBELN,

POSNR LIKE LIPS-POSNR,

VGBEL LIKE LIPS-VGBEL,

VGPOS LIKE LIPS-VGPOS,

END OF ITAB1.

DATA: IT_LIPS LIKE ITAB1 OCCURS 0 WITH HEADER LINE.

SELECT VBELN

POSNR

UP TO 100 ROWS

FROM VBAP

INTO TABLE ITAB.

IF SY-SUBRC = 0.

SORT ITAB BY VBELN .

SELECT VBELN

POSNR

VGBEL

VGPOS

INTO TABLE ITAB1

FROM LIPS

FOR ALL ENTRIES IN ITAB

WHERE VGBEL = ITAB-VBELN

AND VGPOS = ITAB-POSNR.

ENDIF.

DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

X_FIELDCAT-FIELDNAME = 'VBELN'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 1.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'POSNR'.

X_FIELDCAT-TABNAME = 'ITAB'.

X_FIELDCAT-COL_POS = 1.

APPEND X_FIELDCAT TO IT_FIELDCAT.

CLEAR X_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'PFSTATUS'

I_CALLBACK_USER_COMMAND = 'HANDLE_USER_COMMAND'

IT_FIELDCAT = IT_FIELDCAT

TABLES

T_OUTTAB = ITAB

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC = 0.

ENDIF.

&----


*& Form POPUP

&----


  • text

----


  • -->P_EXTAB text

----


FORM POPUP USING P_EXTAB TYPE SLIS_T_EXTAB.

"here double click on PFSTATUS and create the status, "activate, before that set PICK for choose(F2).

*- Pf status

SET PF-STATUS 'PFSTATUS'.

ENDFORM. " POPUP

&----


*& Form HANDLE_USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->RS_SELFIELD text

----


FORM HANDLE_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

IF RS_SELFIELD-FIELDNAME = 'VBELN'.

READ TABLE ITAB INDEX RS_SELFIELD-TABINDEX.

LOOP AT ITAB1 WHERE VGBEL = ITAB-VBELN

AND VGPOS = ITAB-POSNR.

MOVE-CORRESPONDING ITAB1 TO IT_LIPS.

APPEND IT_LIPS.

ENDLOOP.

PERFORM INTERACTIVE_REPORT.

ENDIF.

ENDCASE.

ENDFORM. "HANDLE_USER_COMMAND

&----


*& Form interactive_report

&----


  • text

----


FORM INTERACTIVE_REPORT .

X_FIELDCAT-FIELDNAME = 'VBELN'.

X_FIELDCAT-SELTEXT_L = 'VBELN'.

X_FIELDCAT-TABNAME = 'IT_LIPS'.

X_FIELDCAT-COL_POS = 1.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'POSNR'.

X_FIELDCAT-SELTEXT_L = 'ITEM'.

X_FIELDCAT-TABNAME = 'IT_LIPS'.

X_FIELDCAT-COL_POS = 2.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'VGBEL'.

X_FIELDCAT-SELTEXT_M = 'SO #'.

X_FIELDCAT-TABNAME = 'IT_LIPS'.

X_FIELDCAT-COL_POS = 3.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

X_FIELDCAT-FIELDNAME = 'VGPOS'.

X_FIELDCAT-SELTEXT_M = 'SO ITEM'.

X_FIELDCAT-TABNAME = 'IT_LIPS'.

X_FIELDCAT-COL_POS = 4.

APPEND X_FIELDCAT TO IT_FIELDCAT1.

CLEAR X_FIELDCAT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IT_FIELDCAT = IT_FIELDCAT1

TABLES

T_OUTTAB = IT_LIPS

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

IF SY-SUBRC = 0.

ENDIF.

ENDFORM. " interactive_report

Thanks & regards

Sreenivasulu P