2008 May 07 7:14 AM
for below program, the output will be navigated from one field to other but i won't get that,i get just first field customer only i didn;t get later fields like material etc.
REPORT ZALVREPORT .
TABLES : KNA1,VBAK,VBAP,MARA.
SELECT-OPTIONS : CUSTOMER FOR KNA1-KUNNR.
DATA : BEGIN OF ITAB OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
END OF ITAB.
DATA : BEGIN OF JTAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
NETWR LIKE VBAK-NETWR,
END OF JTAB.
DATA : BEGIN OF KTAB OCCURS 0,
POSNR LIKE VBAP-POSNR,
MATNR LIKE MARA-MATNR,
END OF KTAB.
TYPE-POOLS : SLIS.
DATA : REPID LIKE SY-REPID.
DATA : F_KNA11 TYPE SLIS_T_FIELDCAT_ALV.
DATA : F_KNA1 TYPE SLIS_FIELDCAT_ALV.
DATA : F_VBAK TYPE SLIS_FIELDCAT_ALV.
DATA : F_VBAK1 TYPE SLIS_T_FIELDCAT_ALV.
DATA : F_VBAP TYPE SLIS_FIELDCAT_ALV.
DATA : F_VBAP1 TYPE SLIS_T_FIELDCAT_ALV.
DATA : I_EVENTS TYPE SLIS_T_EVENT.
DATA : S_EVENTS TYPE SLIS_ALV_EVENT.
PERFORM GET_VAL. "CALL SUBROUTINE
REPID = SY-REPID.
SELECT KUNNR
NAME1
FROM KNA1
INTO TABLE ITAB
WHERE KUNNR IN CUSTOMER.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'REPID'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = F_KNA11
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = I_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
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB
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.
&----
*& Form GET_VAL
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_VAL .
F_KNA1-FIELDNAME = 'KUNNR'.
F_KNA1-REF_TABNAME = 'KNA1'.
F_KNA1-REF_FIELDNAME = 'KUNNR'.
APPEND F_KNA1 TO F_KNA11.
F_KNA1-FIELDNAME = 'NAME1'.
F_KNA1-REF_TABNAME = 'KNA1'.
F_KNA1-REF_FIELDNAME = 'NAME1'.
APPEND F_KNA1 TO F_KNA11.
F_VBAK-FIELDNAME = 'VBELN'.
F_VBAK-REF_TABNAME = 'VBAK'.
F_VBAK-REF_FIELDNAME = 'VBELN'.
APPEND F_VBAK TO F_VBAK1.
F_VBAK-FIELDNAME = 'NETWR'.
F_VBAK-REF_TABNAME = 'KNA1'.
F_VBAK-REF_FIELDNAME = 'NETWR'.
APPEND F_VBAK TO F_VBAK1.
F_VBAP-FIELDNAME = 'POSNR'.
F_VBAP-REF_TABNAME = 'KNA1'.
F_VBAP-REF_FIELDNAME = 'POSNR'.
APPEND F_VBAP TO F_VBAP1.
F_VBAP-FIELDNAME = 'MATNR'.
F_VBAP-REF_TABNAME = 'KNA1'.
F_VBAP-REF_FIELDNAME = 'MATNR'.
APPEND F_VBAP TO F_VBAP1.
S_EVENTS-NAME = 'USER_COMMAND'.
S_EVENTS-FORM = 'VAL'.
APPEND S_EVENTS TO I_EVENTS.
ENDFORM.
FORM VAL USING USER_COMMAND LIKE SY-UCOMM
SEL TYPE SLIS_SELFIELD.
DATA : CUS(10) TYPE N,
SAL(10) TYPE N,
MAT(10) TYPE C.
IF SEL-FIELDNAME = 'KUNNR'.
CUS = SEL-VALUE.
SELECT VBELN
NETWR
FROM VBAK
INTO TABLE JTAB
WHERE KUNNR = CUSTOMER.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'REPID '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = F_VBAK1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = I_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
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = JTAB
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.
ENDIF.
IF SEL-FIELDNAME = 'VBELN'.
SAL = SEL-VALUE.
SELECT POSNR MATNR FROM VBAP INTO TABLE KTAB WHERE VBELN = SAL.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE = 'ITEM DETAILS'
I_SELECTION = 'X'
I_ALLOW_NO_SELECTION =
I_ZEBRA = ' '
I_SCREEN_START_COLUMN = 20
I_SCREEN_START_LINE = 5
I_SCREEN_END_COLUMN = 60
I_SCREEN_END_LINE = 40
I_CHECKBOX_FIELDNAME =
I_LINEMARK_FIELDNAME =
I_SCROLL_TO_SEL_LINE = 'X'
I_TABNAME = 'VBAP'
I_STRUCTURE_NAME =
IT_FIELDCAT = F_VBAP1
IT_EXCLUDING =
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_USER_COMMAND =
IS_PRIVATE =
IMPORTING
ES_SELFIELD = SEL
E_EXIT =
TABLES
T_OUTTAB = KTAB
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.
ENDIF.
IF SEL-FIELDNAME = 'MATNR'.
MAT = SEL-VALUE.
SET PARAMETER ID 'MAT' FIELD MAT.
CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM.
for below program, the output will be navigated from one field to other but i won't get that,i get just first field customer only i didn;t get later fields like material etc.
REPORT ZALVREPORT .
TABLES : KNA1,VBAK,VBAP,MARA.
SELECT-OPTIONS : CUSTOMER FOR KNA1-KUNNR.
DATA : BEGIN OF ITAB OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
END OF ITAB.
DATA : BEGIN OF JTAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
NETWR LIKE VBAK-NETWR,
END OF JTAB.
DATA : BEGIN OF KTAB OCCURS 0,
POSNR LIKE VBAP-POSNR,
MATNR LIKE MARA-MATNR,
END OF KTAB.
TYPE-POOLS : SLIS.
DATA : REPID LIKE SY-REPID.
DATA : F_KNA11 TYPE SLIS_T_FIELDCAT_ALV.
DATA : F_KNA1 TYPE SLIS_FIELDCAT_ALV.
DATA : F_VBAK TYPE SLIS_FIELDCAT_ALV.
DATA : F_VBAK1 TYPE SLIS_T_FIELDCAT_ALV.
DATA : F_VBAP TYPE SLIS_FIELDCAT_ALV.
DATA : F_VBAP1 TYPE SLIS_T_FIELDCAT_ALV.
DATA : I_EVENTS TYPE SLIS_T_EVENT.
DATA : S_EVENTS TYPE SLIS_ALV_EVENT.
PERFORM GET_VAL. "CALL SUBROUTINE
REPID = SY-REPID.
SELECT KUNNR
NAME1
FROM KNA1
INTO TABLE ITAB
WHERE KUNNR IN CUSTOMER.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'REPID'
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = F_KNA11
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = I_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
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB
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.
&----
*& Form GET_VAL
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_VAL .
F_KNA1-FIELDNAME = 'KUNNR'.
F_KNA1-REF_TABNAME = 'KNA1'.
F_KNA1-REF_FIELDNAME = 'KUNNR'.
APPEND F_KNA1 TO F_KNA11.
F_KNA1-FIELDNAME = 'NAME1'.
F_KNA1-REF_TABNAME = 'KNA1'.
F_KNA1-REF_FIELDNAME = 'NAME1'.
APPEND F_KNA1 TO F_KNA11.
F_VBAK-FIELDNAME = 'VBELN'.
F_VBAK-REF_TABNAME = 'VBAK'.
F_VBAK-REF_FIELDNAME = 'VBELN'.
APPEND F_VBAK TO F_VBAK1.
F_VBAK-FIELDNAME = 'NETWR'.
F_VBAK-REF_TABNAME = 'KNA1'.
F_VBAK-REF_FIELDNAME = 'NETWR'.
APPEND F_VBAK TO F_VBAK1.
F_VBAP-FIELDNAME = 'POSNR'.
F_VBAP-REF_TABNAME = 'KNA1'.
F_VBAP-REF_FIELDNAME = 'POSNR'.
APPEND F_VBAP TO F_VBAP1.
F_VBAP-FIELDNAME = 'MATNR'.
F_VBAP-REF_TABNAME = 'KNA1'.
F_VBAP-REF_FIELDNAME = 'MATNR'.
APPEND F_VBAP TO F_VBAP1.
S_EVENTS-NAME = 'USER_COMMAND'.
S_EVENTS-FORM = 'VAL'.
APPEND S_EVENTS TO I_EVENTS.
ENDFORM.
FORM VAL USING USER_COMMAND LIKE SY-UCOMM
SEL TYPE SLIS_SELFIELD.
DATA : CUS(10) TYPE N,
SAL(10) TYPE N,
MAT(10) TYPE C.
IF SEL-FIELDNAME = 'KUNNR'.
CUS = SEL-VALUE.
SELECT VBELN
NETWR
FROM VBAK
INTO TABLE JTAB
WHERE KUNNR = CUSTOMER.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'REPID '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = F_VBAK1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = I_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
IR_SALV_LIST_ADAPTER =
IT_EXCEPT_QINFO =
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = JTAB
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.
ENDIF.
IF SEL-FIELDNAME = 'VBELN'.
SAL = SEL-VALUE.
SELECT POSNR MATNR FROM VBAP INTO TABLE KTAB WHERE VBELN = SAL.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE = 'ITEM DETAILS'
I_SELECTION = 'X'
I_ALLOW_NO_SELECTION =
I_ZEBRA = ' '
I_SCREEN_START_COLUMN = 20
I_SCREEN_START_LINE = 5
I_SCREEN_END_COLUMN = 60
I_SCREEN_END_LINE = 40
I_CHECKBOX_FIELDNAME =
I_LINEMARK_FIELDNAME =
I_SCROLL_TO_SEL_LINE = 'X'
I_TABNAME = 'VBAP'
I_STRUCTURE_NAME =
IT_FIELDCAT = F_VBAP1
IT_EXCLUDING =
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_USER_COMMAND =
IS_PRIVATE =
IMPORTING
ES_SELFIELD = SEL
E_EXIT =
TABLES
T_OUTTAB = KTAB
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.
ENDIF.
IF SEL-FIELDNAME = 'MATNR'.
MAT = SEL-VALUE.
SET PARAMETER ID 'MAT' FIELD MAT.
CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM.
2008 May 07 7:30 AM
HI,
repid you have kept in single quotations.that is the problem.i made some more changes to your code.now it is working fine.
TABLES : KNA1,VBAK,VBAP,MARA.
SELECT-OPTIONS : CUSTOMER FOR KNA1-KUNNR.
DATA : BEGIN OF ITAB OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
END OF ITAB.
DATA : BEGIN OF JTAB OCCURS 0,
VBELN LIKE VBAK-VBELN,
NETWR LIKE VBAK-NETWR,
END OF JTAB.
DATA : BEGIN OF KTAB OCCURS 0,
POSNR LIKE VBAP-POSNR,
MATNR LIKE MARA-MATNR,
END OF KTAB.
TYPE-POOLS : SLIS.
DATA : REPID LIKE SY-REPID,
F_KNA11 TYPE SLIS_T_FIELDCAT_ALV,
F_KNA1 TYPE SLIS_FIELDCAT_ALV,
F_VBAK TYPE SLIS_FIELDCAT_ALV,
F_VBAK1 TYPE SLIS_T_FIELDCAT_ALV,
F_VBAP TYPE SLIS_FIELDCAT_ALV,
F_VBAP1 TYPE SLIS_T_FIELDCAT_ALV,
I_EVENTS TYPE SLIS_T_EVENT,
S_EVENTS TYPE SLIS_ALV_EVENT.
PERFORM fcat_eve.
REPID = SY-REPID.
SELECT KUNNR NAME1 FROM KNA1 INTO TABLE ITAB
WHERE KUNNR IN CUSTOMER.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IT_FIELDCAT = F_KNA11
IT_EVENTS = I_EVENTS
TABLES
T_OUTTAB = ITAB.
FORM fcat_eve.
F_KNA1-col_pos = 1.
F_KNA1-FIELDNAME = 'KUNNR'.
F_KNA1-TABNAME = 'ITAB'.
F_KNA1-REF_TABNAME = 'KNA1'.
F_KNA1-REF_FIELDNAME = 'KUNNR'.
APPEND F_KNA1 TO F_KNA11.
F_KNA1-col_pos = 2.
F_KNA1-FIELDNAME = 'NAME1'.
F_KNA1-TABNAME = 'ITAB'.
F_KNA1-REF_TABNAME = 'KNA1'.
F_KNA1-REF_FIELDNAME = 'NAME1'.
APPEND F_KNA1 TO F_KNA11.
F_VBAK-col_pos = 1.
F_VBAK-FIELDNAME = 'VBELN'.
F_VBAK-TABNAME = 'JTAB'.
F_VBAK-REF_TABNAME = 'VBAK'.
F_VBAK-REF_FIELDNAME = 'VBELN'.
APPEND F_VBAK TO F_VBAK1.
F_VBAK-col_pos = 2.
F_VBAK-FIELDNAME = 'NETWR'.
F_VBAK-TABNAME = 'JTAB'.
F_VBAK-REF_TABNAME = 'VBAK'.
F_VBAK-REF_FIELDNAME = 'NETWR'.
APPEND F_VBAK TO F_VBAK1.
F_VBAP-col_pos = 1.
F_VBAP-FIELDNAME = 'POSNR'.
F_VBAP-REF_TABNAME = 'VBAP'.
F_VBAP-REF_FIELDNAME = 'POSNR'.
APPEND F_VBAP TO F_VBAP1.
F_VBAP-col_pos = 2.
F_VBAP-FIELDNAME = 'MATNR'.
F_VBAP-REF_TABNAME = 'VBAP'.
F_VBAP-REF_FIELDNAME = 'MATNR'.
APPEND F_VBAP TO F_VBAP1.
S_EVENTS-NAME = 'USER_COMMAND'.
S_EVENTS-FORM = 'VAL'.
APPEND S_EVENTS TO I_EVENTS.
ENDFORM.
FORM VAL USING USER_COMMAND LIKE SY-UCOMM
SEL TYPE SLIS_SELFIELD.
DATA : CUS(10) TYPE N,
SAL(10) TYPE N,
MAT(10) TYPE C.
IF SEL-FIELDNAME = 'KUNNR'.
CUS = SEL-VALUE.
SELECT VBELN NETWR FROM VBAK INTO TABLE JTAB
WHERE KUNNR = CUSTOMER.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPID
IT_FIELDCAT = F_VBAK1
IT_EVENTS = I_EVENTS
TABLES
T_OUTTAB = JTAB.
ENDIF.
IF SEL-FIELDNAME = 'VBELN'.
SAL = SEL-VALUE.
SELECT POSNR MATNR FROM VBAP INTO TABLE KTAB
WHERE VBELN = SAL.
CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'
EXPORTING
I_TITLE = 'ITEM DETAILS'
I_SCREEN_START_COLUMN = 20
I_SCREEN_START_LINE = 5
I_SCREEN_END_COLUMN = 60
I_SCREEN_END_LINE = 40
I_TABNAME = 'VBAP'
IT_FIELDCAT = F_VBAP1
I_CALLBACK_PROGRAM = REPID
IMPORTING
ES_SELFIELD = SEL
TABLES
T_OUTTAB = KTAB.
ENDIF.
IF SEL-FIELDNAME = 'MATNR'.
MAT = SEL-VALUE.
SET PARAMETER ID 'MAT' FIELD MAT.
CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.
ENDIF.
ENDFORM.
rgds,
bharat.