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

LINKING BETWEEN FUNCTION MODULE AND INTERACTIVE NO. OF BASIC LIST

Former Member
0 Likes
395

Dear Mates,

Iam preparing Z report for BOM display of FG and SFG materials.

Iam displaying the Basic List using the MAST table. Here i double click on the material no.

Here iam using the function module :CS_BOM_EXPL_MAT_V2 for fetching the data from STPOX structure ,here i want to link material no. which has been from basic list and the above said function module.

Can anybody provide the solution for the above said linking in ALV interactive report.

Please treat it very urgent as this report is to be presented on high priority.

Thanks in advance

Subbu

1 REPLY 1
Read only

Former Member
0 Likes
317

Hi

use the Function module REUSE_ALV_POPUP_TO_SELECT.

check the below example:

REPORT ZSR_ALV_INTERACTIVE.

TABLES : LFA1,EKKO,EKPO.

SELECT-OPTIONS : VENDOR FOR LFA1-LIFNR.

DATA : BEGIN OF ITAB OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

END OF ITAB.

DATA : BEGIN OF JTAB OCCURS 0,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

END OF JTAB.

DATA : BEGIN OF KTAB OCCURS 0,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

END OF KTAB.

TYPE-POOLS : SLIS.

DATA : REPID LIKE SY-REPID.

DATA :LFA1_B TYPE SLIS_T_FIELDCAT_ALV,

LFA1_W TYPE SLIS_FIELDCAT_ALV,

EKKO_B TYPE SLIS_T_FIELDCAT_ALV,

EKKO_W TYPE SLIS_FIELDCAT_ALV,

EKPO_B TYPE SLIS_T_FIELDCAT_ALV,

EKPO_W TYPE SLIS_FIELDCAT_ALV,

EVENTS_B TYPE SLIS_T_EVENT,

EVENTS_W TYPE SLIS_ALV_EVENT.

PERFORM GET_VAL.

REPID = SY-REPID.

SELECT LIFNR NAME1 FROM LFA1 INTO TABLE ITAB WHERE LIFNR IN VENDOR.

*perform val USING USER_COMMAND sel.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

IT_FIELDCAT = LFA1_B

IT_EVENTS = EVENTS_B

TABLES

T_OUTTAB = ITAB.

&----


*& Form GET_VAL

&----


  • text this is to put column headings

----


FORM GET_VAL.

LFA1_W-FIELDNAME = 'LIFNR'.

LFA1_W-REF_TABNAME = 'LFA1'.

LFA1_W-REF_FIELDNAME = 'LIFNR'.

APPEND LFA1_W TO LFA1_B.

LFA1_W-FIELDNAME = 'NAME1'.

LFA1_W-REF_TABNAME = 'LFA1'.

LFA1_W-REF_FIELDNAME = 'NAME1'.

APPEND LFA1_W TO LFA1_B.

EKKO_W-FIELDNAME = 'EBELN'.

EKKO_W-REF_TABNAME = 'EKKO'.

EKKO_W-REF_FIELDNAME = 'EBELN'.

APPEND EKKO_W TO EKKO_B.

EKKO_W-FIELDNAME = 'AEDAT'.

EKKO_W-REF_TABNAME = 'EKKO'.

EKKO_W-REF_FIELDNAME = 'AEDAT'.

APPEND EKKO_W TO EKKO_B.

EKPO_W-FIELDNAME = 'EBELP'.

EKPO_W-REF_TABNAME = 'EKPO'.

EKPO_W-REF_FIELDNAME = 'EBELP'.

APPEND EKPO_W TO EKPO_B.

EKPO_W-FIELDNAME = 'MATNR'.

EKPO_W-REF_TABNAME = 'EKPO'.

EKPO_W-REF_FIELDNAME = 'MATNR'.

APPEND EKPO_W TO EKPO_B.

EVENTS_W-NAME = 'USER_COMMAND'.

EVENTS_W-FORM = 'VAL'.

APPEND EVENTS_W TO EVENTS_B.

ENDFORM. "GET_VAL

&----


*& Form VAL

&----


  • text

----


  • -->USER_COMMANtext

  • -->SEL text for retrieving data

----


FORM VAL USING USER_COMMAND LIKE SY-UCOMM SEL TYPE SLIS_SELFIELD.

DATA : VEN(10) TYPE N,

PO(10) TYPE N.

DATA : MAT(10) TYPE C.

IF SEL-FIELDNAME = 'LIFNR'.

VEN = SEL-VALUE.

SELECT EBELN AEDAT FROM EKKO INTO TABLE JTAB WHERE LIFNR = VEN.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

  • I_STRUCTURE_NAME = EKKO_B

IT_FIELDCAT = EKKO_B

IT_EVENTS = EVENTS_B

TABLES

T_OUTTAB = JTAB.

ENDIF.

IF SEL-FIELDNAME = 'EBELN'.

PO = SEL-VALUE.

SELECT EBELP MATNR FROM EKPO INTO TABLE KTAB WHERE EBELN = PO.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

I_TITLE = 'ITEM DETAILS'

I_TABNAME = 'EKPO'

IT_FIELDCAT = EKPO_B

I_CALLBACK_PROGRAM = REPID

IMPORTING

ES_SELFIELD = SEL

TABLES

T_OUTTAB = KTAB.

ENDIF.

  • logic to select a record

IF SEL-FIELDNAME = 'MATNR'.

MAT = SEL-VALUE.

SET PARAMETER ID 'MAT' FIELD MAT.

CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.

ENDIF.

ENDFORM. "VAL

check my example:

REPORT ZSR_ALV_INTERACTIVE.

TABLES : LFA1,EKKO,EKPO.

SELECT-OPTIONS : VENDOR FOR LFA1-LIFNR.

DATA : BEGIN OF ITAB OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

END OF ITAB.

DATA : BEGIN OF JTAB OCCURS 0,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

END OF JTAB.

DATA : BEGIN OF KTAB OCCURS 0,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

END OF KTAB.

TYPE-POOLS : SLIS.

DATA : REPID LIKE SY-REPID.

DATA :LFA1_B TYPE SLIS_T_FIELDCAT_ALV,

LFA1_W TYPE SLIS_FIELDCAT_ALV,

EKKO_B TYPE SLIS_T_FIELDCAT_ALV,

EKKO_W TYPE SLIS_FIELDCAT_ALV,

EKPO_B TYPE SLIS_T_FIELDCAT_ALV,

EKPO_W TYPE SLIS_FIELDCAT_ALV,

EVENTS_B TYPE SLIS_T_EVENT,

EVENTS_W TYPE SLIS_ALV_EVENT.

PERFORM GET_VAL.

REPID = SY-REPID.

SELECT LIFNR NAME1 FROM LFA1 INTO TABLE ITAB WHERE LIFNR IN VENDOR.

*perform val USING USER_COMMAND sel.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

IT_FIELDCAT = LFA1_B

IT_EVENTS = EVENTS_B

TABLES

T_OUTTAB = ITAB.

&----


*& Form GET_VAL

&----


  • text this is to put column headings

----


FORM GET_VAL.

LFA1_W-FIELDNAME = 'LIFNR'.

LFA1_W-REF_TABNAME = 'LFA1'.

LFA1_W-REF_FIELDNAME = 'LIFNR'.

APPEND LFA1_W TO LFA1_B.

LFA1_W-FIELDNAME = 'NAME1'.

LFA1_W-REF_TABNAME = 'LFA1'.

LFA1_W-REF_FIELDNAME = 'NAME1'.

APPEND LFA1_W TO LFA1_B.

EKKO_W-FIELDNAME = 'EBELN'.

EKKO_W-REF_TABNAME = 'EKKO'.

EKKO_W-REF_FIELDNAME = 'EBELN'.

APPEND EKKO_W TO EKKO_B.

EKKO_W-FIELDNAME = 'AEDAT'.

EKKO_W-REF_TABNAME = 'EKKO'.

EKKO_W-REF_FIELDNAME = 'AEDAT'.

APPEND EKKO_W TO EKKO_B.

EKPO_W-FIELDNAME = 'EBELP'.

EKPO_W-REF_TABNAME = 'EKPO'.

EKPO_W-REF_FIELDNAME = 'EBELP'.

APPEND EKPO_W TO EKPO_B.

EKPO_W-FIELDNAME = 'MATNR'.

EKPO_W-REF_TABNAME = 'EKPO'.

EKPO_W-REF_FIELDNAME = 'MATNR'.

APPEND EKPO_W TO EKPO_B.

EVENTS_W-NAME = 'USER_COMMAND'.

EVENTS_W-FORM = 'VAL'.

APPEND EVENTS_W TO EVENTS_B.

ENDFORM. "GET_VAL

&----


*& Form VAL

&----


  • text

----


  • -->USER_COMMANtext

  • -->SEL text for retrieving data

----


FORM VAL USING USER_COMMAND LIKE SY-UCOMM SEL TYPE SLIS_SELFIELD.

DATA : VEN(10) TYPE N,

PO(10) TYPE N.

DATA : MAT(10) TYPE C.

IF SEL-FIELDNAME = 'LIFNR'.

VEN = SEL-VALUE.

SELECT EBELN AEDAT FROM EKKO INTO TABLE JTAB WHERE LIFNR = VEN.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

  • I_STRUCTURE_NAME = EKKO_B

IT_FIELDCAT = EKKO_B

IT_EVENTS = EVENTS_B

TABLES

T_OUTTAB = JTAB.

ENDIF.

IF SEL-FIELDNAME = 'EBELN'.

PO = SEL-VALUE.

SELECT EBELP MATNR FROM EKPO INTO TABLE KTAB WHERE EBELN = PO.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

I_TITLE = 'ITEM DETAILS'

I_TABNAME = 'EKPO'

IT_FIELDCAT = EKPO_B

I_CALLBACK_PROGRAM = REPID

IMPORTING

ES_SELFIELD = SEL

TABLES

T_OUTTAB = KTAB.

ENDIF.

  • logic to select a record

IF SEL-FIELDNAME = 'MATNR'.

MAT = SEL-VALUE.

SET PARAMETER ID 'MAT' FIELD MAT.

CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.

ENDIF.

ENDFORM. "VAL