‎2008 Aug 08 7:27 AM
Hi all,
while i excuted this report the program gets terminated but there r no syntax errors.can i know the error in this alv report
and the correct code.
REPORT ZSR_ALV.
TYPE-POOLS : SLIS.
TABLES : KNA1,
VBAK,
VBAP.
SELECT-OPTIONS : CUST 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 VBAP-MATNR,
END OF KTAB.
DATA : REPID LIKE SY-REPID,
F_KNA1I TYPE SLIS_T_FIELDCAT_ALV , "INTERNAL TABLE BODY
F_KNA1 TYPE SLIS_FIELDCAT_ALV ,"INTERNAL TABLE HEADER
F_VBAKI TYPE SLIS_T_FIELDCAT_ALV , "INTERNAL TABLE BODY
F_VBAK TYPE SLIS_FIELDCAT_ALV ,"INTERNAL TABLE HEADER
F_VBAPI TYPE SLIS_T_FIELDCAT_ALV , "INTERNAL TABLE BODY
F_VBAP TYPE SLIS_FIELDCAT_ALV ,"INTERNAL TABLE HEADER
I_EVENTS TYPE SLIS_T_EVENT,
S_EVENTS TYPE SLIS_ALV_EVENT.
PERFORM GET_VAL.
REPID = SY-REPID.
SELECT KUNNR NAME1 FROM KNA1 INTO TABLE ITAB WHERE KUNNR IN CUST.
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_KNA1I
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.
*PERFORM VAL USING USER-COMMAND." SEL.
&----
*& Form GET_VAL
&----
text
----
--> p1 text
<-- p2 text
----
FORM GET_VAL .
F_KNA1-COL_POS = 1.
F_KNA1-FIELDNAME = 'KUNNR'.
F_KNA1-TABNAME = KNA1.
F_KNA1-FIELDNAME = 'KUNNR'.
APPEND F_KNA1 TO F_KNA1I.
CLEAR F_KNA1.
F_KNA1-COL_POS = 2.
F_KNA1-FIELDNAME = 'NAME1'.
F_KNA1-TABNAME = KNA1.
F_KNA1-FIELDNAME = 'NAME1'.
APPEND F_KNA1 TO F_KNA1I.
CLEAR F_KNA1.
F_KNA1-COL_POS = 3.
F_KNA1-FIELDNAME = 'VBELN'.
F_KNA1-TABNAME = KNA1.
F_KNA1-FIELDNAME = 'VEBLN'.
APPEND F_KNA1 TO F_KNA1I.
CLEAR F_KNA1.
F_KNA1-COL_POS = 4.
F_KNA1-FIELDNAME = 'NETWR'.
F_KNA1-TABNAME = KNA1.
F_KNA1-FIELDNAME = 'NETWR'.
APPEND F_KNA1 TO F_KNA1I.
CLEAR F_KNA1.
F_KNA1-COL_POS = 5.
F_KNA1-FIELDNAME = 'POSNR'.
F_KNA1-TABNAME = KNA1.
F_KNA1-FIELDNAME = 'POSNR'.
APPEND F_KNA1 TO F_KNA1I.
CLEAR F_KNA1.
F_KNA1-COL_POS = 6.
F_KNA1-FIELDNAME = 'MATNR'.
F_KNA1-TABNAME = KNA1.
F_KNA1-FIELDNAME ='MATNR'.
APPEND F_KNA1 TO F_KNA1I.
CLEAR F_KNA1.
S_EVENTS-NAME = 'USER_COMMAND'.
S_EVENTS-FORM = 'VAL'.
APPEND S_EVENTS TO I_EVENTS.
CLEAR S_EVENTS.
ENDFORM. " GET_VAL
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 = CUST.
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_VBAKI
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_VBAPI
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.
thanks,
raja reddy
‎2008 Aug 08 7:34 AM
Hi,
Instead Of SY-subrc 0
write Sy-subrc eq 0.
Regards,
anirban
‎2008 Aug 08 7:35 AM
Hi,
Give structure name in the reuse_alv_list _display function module, check all slis structure's are in internal tables or not and check sy-subrc command.
Thanks,
Das......
‎2008 Aug 08 7:37 AM
‎2008 Aug 08 7:42 AM
Hi raja,
1. Now the code will work fine.
Just copy paste.
2. The main corrections which i have done are:
a) in building the field catalogue, the TABNAME
should be ITAB
b) in building the field catalogue, only two
fields are kept now, since itab contains only two fields
c) the sy-msgty has been changed to 'I'
bcos it was giving error, after the alv was displayed
and when we come back.
3.
REPORT ZSR_ALV.
TYPE-POOLS : SLIS.
TABLES : KNA1,
VBAK,
VBAP.
SELECT-OPTIONS : CUST 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 VBAP-MATNR,
END OF KTAB.
DATA : REPID LIKE SY-REPID,
F_KNA1I TYPE SLIS_T_FIELDCAT_ALV , "INTERNAL TABLE BODY
F_KNA1 TYPE SLIS_FIELDCAT_ALV ,"INTERNAL TABLE HEADER
F_VBAKI TYPE SLIS_T_FIELDCAT_ALV , "INTERNAL TABLE BODY
F_VBAK TYPE SLIS_FIELDCAT_ALV ,"INTERNAL TABLE HEADER
F_VBAPI TYPE SLIS_T_FIELDCAT_ALV , "INTERNAL TABLE BODY
F_VBAP TYPE SLIS_FIELDCAT_ALV ,"INTERNAL TABLE HEADER
I_EVENTS TYPE SLIS_T_EVENT,
S_EVENTS TYPE SLIS_ALV_EVENT.
PERFORM GET_VAL.
REPID = SY-REPID.
SELECT KUNNR NAME1 FROM KNA1 INTO TABLE ITAB WHERE KUNNR IN CUST.
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_KNA1I
*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 'I' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*PERFORM VAL USING USER-COMMAND." SEL.
FORM GET_VAL .
F_KNA1-COL_POS = 1.
F_KNA1-FIELDNAME = 'KUNNR'.
F_KNA1-TABNAME = 'ITAB'.
F_KNA1-FIELDNAME = 'KUNNR'.
APPEND F_KNA1 TO F_KNA1I.
CLEAR F_KNA1.
F_KNA1-COL_POS = 2.
F_KNA1-FIELDNAME = 'NAME1'.
F_KNA1-TABNAME = KNA1.
F_KNA1-TABNAME = 'ITAB'.
F_KNA1-FIELDNAME = 'NAME1'.
APPEND F_KNA1 TO F_KNA1I.
CLEAR F_KNA1.
*F_KNA1-COL_POS = 3.
*F_KNA1-FIELDNAME = 'VBELN'.
*F_KNA1-TABNAME = KNA1.
*F_KNA1-FIELDNAME = 'VEBLN'.
*APPEND F_KNA1 TO F_KNA1I.
*CLEAR F_KNA1.
*
*F_KNA1-COL_POS = 4.
*F_KNA1-FIELDNAME = 'NETWR'.
*F_KNA1-TABNAME = KNA1.
*F_KNA1-FIELDNAME = 'NETWR'.
*APPEND F_KNA1 TO F_KNA1I.
*CLEAR F_KNA1.
*
*F_KNA1-COL_POS = 5.
*F_KNA1-FIELDNAME = 'POSNR'.
*F_KNA1-TABNAME = KNA1.
*F_KNA1-FIELDNAME = 'POSNR'.
*APPEND F_KNA1 TO F_KNA1I.
*CLEAR F_KNA1.
*
*F_KNA1-COL_POS = 6.
*F_KNA1-FIELDNAME = 'MATNR'.
*F_KNA1-TABNAME = KNA1.
*F_KNA1-FIELDNAME ='MATNR'.
*APPEND F_KNA1 TO F_KNA1I.
CLEAR F_KNA1.
S_EVENTS-NAME = 'USER_COMMAND'.
S_EVENTS-FORM = 'VAL'.
APPEND S_EVENTS TO I_EVENTS.
CLEAR S_EVENTS.
ENDFORM. " GET_VAL
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 = CUST.
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_VBAKI
*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 'I' 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_VBAPI
*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 'I' 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.
regards,
amit m.
‎2008 Aug 08 8:02 AM
hi amit,
u hav commented the some lines from row 3 to 6.
but by uncommenting it the program gets terminated can u plz check it and reply me.
thanks,
raja reddy
‎2008 Aug 08 7:45 AM
Hi,
SELECT KUNNR NAME1 FROM KNA1 INTO TABLE ITAB WHERE KUNNR IN CUST.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'REPID'
check this... this could be the error ... remove the single quotes or pass sy-repid or sy-cprog
regards
padma
‎2008 Aug 08 7:52 AM
HI ,
CHECK YOUR FIELD CATALOG...
F_KNA1-SELTEXT_M THIS IS MISISNG...
F_KNA1-SELTEXT_M = 'SOME DESCRIPTION'.
There is no netwr , matnr field in kna1 table.....
Correct these things..
‎2008 Aug 08 7:53 AM
I found that there is no error in ur program it is running successfully.
rgds
rajesh
‎2008 Aug 08 8:15 AM