‎2006 Dec 04 8:59 AM
hi any body can u tell me the example to handle the interactive alv grid and wt parameters i should pass it to fm
‎2006 Dec 04 9:03 AM
http://www.sap-img.com/abap/an-interactive-alv-report.htm
An Interactive ALV Report
&----
*& Report ZZ_22038_22098_002 *
*& *
&----
*& This is an Interactive ALV report, where on line slection we can see
*& the secondry list
*&
*& *
&----
REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
MESSAGE-ID ZZ_9838 .
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.
&----
*& 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 = 'COMPANY CODE'.
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 = '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 =
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 =
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.
hope that
helps
santhosh
Message was edited by:
Kaluvala Santhosh
‎2006 Dec 04 9:03 AM
http://www.sap-img.com/abap/an-interactive-alv-report.htm
An Interactive ALV Report
&----
*& Report ZZ_22038_22098_002 *
*& *
&----
*& This is an Interactive ALV report, where on line slection we can see
*& the secondry list
*&
*& *
&----
REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650
MESSAGE-ID ZZ_9838 .
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.
&----
*& 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 = 'COMPANY CODE'.
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 = '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 =
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 =
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.
hope that
helps
santhosh
Message was edited by:
Kaluvala Santhosh
‎2006 Dec 04 9:06 AM
hi Mahesh,
Check
http://www.sap-img.com/abap/example-of-a-simple-alv-grid-report.htm
http://www.sap-img.com/abap-function.htm
Regards,
Santosh
‎2006 Dec 04 9:12 AM
Hi,
Check the following example
REPORT ZKINTEST_ALV .
tables : COER.
type-pools:slis.
data : it_fieldcat type slis_t_fieldcat_alv,
it_fieldcat1 type slis_t_fieldcat_alv.
data: begin of itab2 occurs 0,
vbeln like vbak-vbeln,
posnr like vbap-posnr,
end of itab2.
select vbeln posnr up to 1000 rows
from vbap
into table itab2.
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 = 2.append x_fieldcat to it_fieldcat.
clear x_fieldcat.
perform alv_grid_display.
form alv_grid_display .
call function 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
*i_callback_pf_status_set = 'POPUP'
i_callback_user_command = 'HANDLE_USER_COMMAND'
I_GRID_TITLE = 'TOP'
*IT_EVENTS = i_eve
*I_GRID_SETTINGS =
i_callback_top_of_page = 'TOP-OF-PAGE'
it_fieldcat = it_fieldcat
TABLES
t_outtab = itab2
EXCEPTIONS
program_error = 1
others = 2.
if
sy-subrc = 0.
endif.
endform. " alv_grid_display
form handle_user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
case r_ucomm.
when 'BACK' or 'CANC' or 'EXIT'.
leave to screen 0.
when '&IC1'.
set parameter id 'AUN' field rs_selfield-value.
call transaction 'VA03' and skip first screen.
when 'BUTTON'.
loop at it_fieldcat into x_fieldcat.
if x_fieldcat-fieldname = 'POSNR'.
x_fieldcat-no_out = 'X'.
modify it_fieldcat from x_fieldcat transporting no_out.
endif.
endloop.
rs_selfield-exit = 'X'.
perform alv_grid_display.
endcase.
endform.
"HANDLE_USER_COMMAND
FORM TOP-OF-PAGE.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.
* Title
wa_header-typ = 'H'.
wa_header-info+10(15) = ' SY-REPID'.
*wa_header-info+21(10) = text-001.
append wa_header to t_header.
clear wa_header.
* Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
endform.
Hope this helps.
Regards,
Kinshuk
‎2006 Dec 04 10:05 AM
please try this,
this works for me,
REPORT ZABCD MESSAGE-ID I001.
TYPE-POOLS: SLIS.
TABLES: PLAF, AFPO, AFKO, MSEG, SER05, OBJK, MAKT, MARA,T001W,viqmel .
DATA: V_EVENTS TYPE SLIS_T_EVENT,
WA_EVENT TYPE SLIS_ALV_EVENT.
DATA: BEGIN OF MAIN1 OCCURS 3,
WERKS TYPE CRHD-WERKS,
ARBPL TYPE CRHD-ARBPL,
KTEXT TYPE TC24-KTEXT,
END OF MAIN1.
DATA: BEGIN OF T_TC24 OCCURS 3,
WERKS LIKE TC24-WERKS,
KTEXT LIKE TC24-KTEXT,
END OF T_TC24.
DATA: BEGIN OF T_CRHD OCCURS 3,
WERKS LIKE CRHD-WERKS,
ARBPL LIKE CRHD-ARBPL,
END OF T_CRHD.
DATA: BEGIN OF T_MAIN OCCURS 3,
MATNR TYPE EINA-MATNR,
MAKTX TYPE MAKT-MAKTX,
WERKS TYPE EINE-WERKS,
LIFNR TYPE EINA-LIFNR,
EKORG TYPE EINE-EKORG,
TXZ01 TYPE EINA-TXZ01,
INFNR TYPE EINA-INFNR,
MATKL TYPE EINA-MATKL,
ESOKZ TYPE EINE-ESOKZ,
EKGRP TYPE EINE-EKGRP,
EKNAM TYPE T024-EKNAM,
NAME1 TYPE LFA1-NAME1,
WGBEZ TYPE T023T-WGBEZ,
END OF T_MAIN.
DATA: BEGIN OF T_MARA OCCURS 3,
MATKL TYPE MARA-MATKL,
MATNR TYPE MARA-MATNR,
END OF T_MARA.
DATA: BEGIN OF T_T023T OCCURS 3,
MATKL TYPE V023-MATKL,
WGBEZ TYPE V023-WGBEZ,
END OF T_T023T.
DATA: BEGIN OF T_EINA OCCURS 3,
MATNR TYPE EINA-MATNR,
LIFNR TYPE EINA-LIFNR,
INFNR TYPE EINA-INFNR,
TXZ01 TYPE EINA-TXZ01,
MATKL TYPE EINA-MATKL,
END OF T_EINA.
DATA: BEGIN OF T_EINE OCCURS 3,
WERKS TYPE EINE-WERKS,
EKORG TYPE EINE-EKORG,
INFNR TYPE EINA-INFNR,
EKGRP TYPE EINE-EKGRP,
END OF T_EINE.
DATA: BEGIN OF T_T024 OCCURS 3,
EKGRP TYPE EINE-EKGRP,
EKNAM TYPE V_024-EKNAM,
END OF T_T024.
DATA: BEGIN OF T_MAKT OCCURS 0,
MATNR TYPE EINA-MATNR,
MAKTX TYPE MAKT-MAKTX,
END OF T_MAKT.
DATA: BEGIN OF T_LFA1 OCCURS 3,
LIFNR TYPE LFA1-LIFNR,
NAME1 TYPE LFA1-NAME1,
END OF T_LFA1.
DATA: W_MATNR LIKE MARA-MATNR,
W_WERKS TYPE EINE-WERKS,
W_LIFNR TYPE EINA-LIFNR,
W_EKORG TYPE EINE-EKORG,
W_INFNR TYPE EINA-INFNR,
W_MATKL TYPE EINA-MATKL,
W_ESOKZ TYPE EINE-ESOKZ,
W_EKGRP TYPE EINE-EKGRP.
WRITE: SY-DATUM TO SY-TVAR1,
SY-UZEIT TO SY-TVAR2.
DATA: V_REPID LIKE SY-REPID,
wa_main LIKE t_main.
DATA: T_LOUT TYPE SLIS_LAYOUT_ALV,
T_FCAT TYPE SLIS_T_FIELDCAT_ALV,
W_FCAT TYPE SLIS_FIELDCAT_ALV.
DATA: T_LOUT1 TYPE SLIS_LAYOUT_ALV,
T_FCAT1 TYPE SLIS_T_FIELDCAT_ALV,
W_FCAT1 TYPE SLIS_FIELDCAT_ALV.
DATA: HEADER TYPE C VALUE 'H'.
DATA: WT_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER.
INITIALIZATION.
SELECTION-SCREEN : BEGIN OF BLOCK A WITH FRAME TITLE TEXT-010.
SELECT-OPTIONS S_MATNR FOR W_MATNR.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS S_WERKS FOR W_WERKS.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS S_LIFNR FOR W_LIFNR.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS S_EKORG FOR W_EKORG.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS S_INFNR FOR W_INFNR.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS S_MATKL FOR W_MATKL.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS S_EKGRP FOR W_EKGRP.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN: END OF BLOCK A.
*performs
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.
START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM DISPLAY_ALV_REPORT.
FORM BUILD_FIELDCATLOG.
W_FCAT-FIELDNAME = 'MATNR'.
W_FCAT-REF_TABNAME = 'T_MAIN'.
W_FCAT-COL_POS = 1.
W_FCAT-REPTEXT_DDIC = 'MATERIAL NUMBER'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'MAKTX'.
W_FCAT-REF_TABNAME = 'T_MAIN'.
W_FCAT-COL_POS = 2.
W_FCAT-REPTEXT_DDIC = 'MATERIAL DESCRIPTION'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'WERKS'.
W_FCAT-REF_TABNAME = 'T_MAIN'.
W_FCAT-COL_POS = 3.
W_FCAT-REPTEXT_DDIC = 'PLANT'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'LIFNR'.
W_FCAT-REF_TABNAME = 'T_MAIN'.
W_FCAT-COL_POS = 4.
W_FCAT-REPTEXT_DDIC = 'VENDOR CODE'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'NAME1'.
W_FCAT-REF_TABNAME = 'T_MAIN'.
W_FCAT-COL_POS = 5.
W_FCAT-REPTEXT_DDIC = 'VENDOR NAME'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'EKORG'.
W_FCAT-REF_TABNAME = 'T_MAIN'.
W_FCAT-COL_POS = 6.
W_FCAT-REPTEXT_DDIC = 'PURCHASE ORG'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'TXZ01'.
W_FCAT-REF_TABNAME = 'T_MAIN'.
W_FCAT-COL_POS = 7.
W_FCAT-REPTEXT_DDIC = 'INFO REC SHORT TEXT'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'INFNR'.
W_FCAT-REF_TABNAME = 'T_MAIN'.
W_FCAT-COL_POS = 8.
W_FCAT-REPTEXT_DDIC = 'INFO REC NO'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'WGBEZ'.
W_FCAT-REF_TABNAME = 'T_MAIN'.
W_FCAT-COL_POS = 9.
W_FCAT-REPTEXT_DDIC = 'MATERIAL GROUP'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
W_FCAT-FIELDNAME = 'EKNAM'.
W_FCAT-REF_TABNAME = 'T_MAIN'.
W_FCAT-COL_POS = 10.
W_FCAT-REPTEXT_DDIC = 'PURCHASING GROUP'.
APPEND W_FCAT TO T_FCAT.
CLEAR W_FCAT.
T_LOUT-COLWIDTH_OPTIMIZE = 'X'.
ENDFORM.
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.
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.
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
CASE R_UCOMM.
WHEN '&IC1'.
CLEAR MAIN1[].
CLEAR T_FCAT1[].
READ TABLE t_main INTO WA_MAIN INDEX RS_SELFIELD-TABINDEX.
PERFORM BUILD_FIELDCATLOG_second.
PERFORM DATA_RETRIEVAL_second.
PERFORM DISPLAY_ALV_second.
ENDCASE.
ENDFORM. "user_command
FORM DATA_RETRIEVAL.
SELECT
MATNR
LIFNR
INFNR
TXZ01
FROM EINA INTO TABLE T_EINA WHERE
MATNR IN S_MATNR
AND LIFNR IN S_LIFNR
AND INFNR IN S_INFNR.
IF SY-SUBRC <> 0.
MESSAGE I001 WITH 'NO RECORDS FOUND'.
EXIT.
ENDIF.
SELECT
MATNR
MAKTX
FROM MAKT INTO CORRESPONDING FIELDS OF TABLE T_MAKT
FOR ALL ENTRIES IN T_EINA
WHERE MATNR = T_EINA-MATNR.
IF SY-SUBRC <> 0.
MESSAGE I001 WITH 'NO RECORDS FOUND'.
EXIT.
ENDIF.
SELECT
WERKS
EKORG
EKGRP
INFNR
FROM EINE INTO CORRESPONDING FIELDS OF TABLE T_EINE
FOR ALL ENTRIES IN T_EINA
WHERE
INFNR = T_EINA-INFNR
AND WERKS IN S_WERKS
AND EKORG IN S_EKORG
AND EKGRP IN S_EKGRP.
IF SY-SUBRC <> 0.
MESSAGE I001 WITH 'NO RECORDS FOUND'.
EXIT.
ENDIF.
SELECT
MATNR
MATKL
FROM MARA INTO CORRESPONDING FIELDS OF TABLE T_MARA
FOR ALL ENTRIES IN T_EINA
WHERE
MATNR = T_EINA-MATNR
AND MATKL IN S_MATKL.
IF SY-SUBRC <> 0.
MESSAGE I001 WITH 'NO RECORDS FOUND'.
EXIT.
ENDIF.
SELECT
WGBEZ
MATKL
FROM T023T INTO CORRESPONDING FIELDS OF TABLE T_T023T
FOR ALL ENTRIES IN T_MARA
WHERE
MATKL = T_MARA-MATKL.
IF SY-SUBRC <> 0.
MESSAGE I001 WITH 'NO RECORDS FOUND'.
EXIT.
ENDIF.
SELECT
EKGRP
EKNAM
FROM T024 INTO CORRESPONDING FIELDS OF TABLE T_T024
FOR ALL ENTRIES IN T_EINE
WHERE
EKGRP = T_EINE-EKGRP.
IF SY-SUBRC <> 0.
MESSAGE I001 WITH 'NO RECORDS FOUND'.
EXIT.
ENDIF.
SELECT
LIFNR
NAME1
FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE T_LFA1
FOR ALL ENTRIES IN T_EINA
WHERE
LIFNR = T_EINA-LIFNR.
LOOP AT T_EINE.
READ TABLE T_EINA WITH KEY INFNR = T_EINE-INFNR.
IF SY-SUBRC = 0.
T_MAIN-MATNR = T_EINA-MATNR.
T_MAIN-WERKS = T_EINE-WERKS.
T_MAIN-LIFNR = T_EINA-LIFNR.
T_MAIN-EKORG = T_EINE-EKORG.
T_MAIN-INFNR = T_EINA-INFNR.
T_MAIN-EKGRP = T_EINE-EKGRP.
T_MAIN-TXZ01 = T_EINA-TXZ01.
APPEND T_MAIN.
ENDIF.
ENDLOOP.
LOOP AT T_MAIN.
READ TABLE T_MARA WITH KEY MATNR = T_MAIN-MATNR.
IF SY-SUBRC = 0.
T_MAIN-MATKL = T_MARA-MATKL.
MODIFY T_MAIN.
ENDIF.
ENDLOOP.
LOOP AT T_MAIN.
READ TABLE T_T023T WITH KEY MATKL = T_MAIN-MATKL.
IF SY-SUBRC = 0.
T_MAIN-WGBEZ = T_T023T-WGBEZ.
MODIFY T_MAIN.
ENDIF.
ENDLOOP.
LOOP AT T_MAIN.
READ TABLE T_T024 WITH KEY EKGRP = T_MAIN-EKGRP.
IF SY-SUBRC = 0.
T_MAIN-EKNAM = T_T024-EKNAM.
MODIFY T_MAIN.
ENDIF.
ENDLOOP.
LOOP AT T_MAIN.
READ TABLE T_MAKT WITH KEY MATNR = T_MAIN-MATNR.
IF SY-SUBRC = 0.
T_MAIN-MAKTX = T_MAKT-MAKTX.
MODIFY T_MAIN.
ENDIF.
ENDLOOP.
LOOP AT T_MAIN.
READ TABLE T_LFA1 WITH KEY LIFNR = T_MAIN-LIFNR.
IF SY-SUBRC = 0.
T_MAIN-NAME1 = T_LFA1-NAME1.
MODIFY T_MAIN.
ENDIF.
ENDLOOP.
ENDFORM. "data_retrieval
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 = T_FCAT
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 = t_main
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
ENDIF.
ENDFORM.
FORM TOP_OF_PAGE.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = 'NUMERIC POWER SYSTEMS LTD'.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = 'MEAN TIME BETWEEN BREAKDOWN'.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = SY-TVAR1.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = SY-TVAR2.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = WT_HEADER
i_logo =
I_END_OF_LIST_GRID =
.
clear wt_header.
ENDFORM.
*second report
FORM BUILD_FIELDCATLOG_second.
W_FCAT1-FIELDNAME = 'WERKS'.
W_FCAT1-REF_TABNAME = 'MAIN'.
W_FCAT1-COL_POS = 1.
W_FCAT1-REPTEXT_DDIC = 'PLANT NAME'.
APPEND W_FCAT1 TO T_FCAT1.
CLEAR W_FCAT1.
W_FCAT1-FIELDNAME = 'ARBPL'.
W_FCAT1-REF_TABNAME = 'MAIN'.
W_FCAT1-COL_POS = 2.
W_FCAT1-REPTEXT_DDIC = 'WORK CENTER'.
APPEND W_FCAT1 TO T_FCAT1.
CLEAR W_FCAT1.
W_FCAT1-FIELDNAME = 'KTEXT'.
W_FCAT1-REF_TABNAME = 'MAIN'.
W_FCAT1-COL_POS = 3.
W_FCAT1-REPTEXT_DDIC = 'PERSON RESP'.
APPEND W_FCAT1 TO T_FCAT1.
CLEAR W_FCAT1.
ENDFORM.
FORM DATA_RETRIEVAL_second.
SELECT
WERKS
ARBPL
FROM CRHD
INTO CORRESPONDING FIELDS OF TABLE T_CRHD
WHERE WERKS = WA_MAIN-WERKS.
SELECT
WERKS
KTEXT
FROM TC24
INTO CORRESPONDING FIELDS OF TABLE T_TC24
FOR ALL ENTRIES IN T_CRHD
WHERE WERKS = T_CRHD-WERKS.
LOOP AT T_CRHD.
MAIN1-WERKS = T_CRHD-WERKS.
MAIN1-ARBPL = T_CRHD-ARBPL.
APPEND MAIN1.
ENDLOOP.
LOOP AT MAIN1.
READ TABLE T_TC24 WITH KEY WERKS = MAIN1-WERKS.
IF SY-SUBRC = 0.
MAIN1-KTEXT = T_TC24-KTEXT.
MODIFY MAIN1.
ENDIF.
ENDLOOP.
ENDFORM.
FORM DISPLAY_ALV_second.
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_PAGE1'
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
*I_GRID_TITLE = I_TITLE_second
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = T_FCAT1
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 = MAIN1
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.
FORM TOP_OF_PAGE1.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = 'NUMERIC POWER SYSTEMS LTD'.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = 'MEAN TIME BETWEEN BREAKDOWN'.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = SY-TVAR1.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = HEADER.
WA_HEADER-INFO = SY-TVAR2.
APPEND WA_HEADER TO WT_HEADER.
CLEAR WA_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = WT_HEADER
i_logo =
I_END_OF_LIST_GRID =
.
clear wt_header.
ENDFORM.
regards,
Venkatesh
‎2006 Dec 04 10:11 AM
Hi guidse,
1. In alv we cannot use AT LINE Selection
2. For alv, there is a special syntax, so that when we double-click on alv,
our FORM / routine is called and there we display another alv.
3. just copy paste to get a taste of interactive alv.
4.
REPORT abc.
TYPE-POOLS : slis.
*----
Data
DATA : ITAB LIKE T001 OCCURS 0 WITH HEADER LINE.
DATA : alvfc TYPE slis_t_fieldcat_alv.
DATA : STAB LIKE T001 OCCURS 0 WITH HEADER LINE.
*----
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_GRID_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.
*----
IMPORTANT.
READ TABLE ITAB INDEX WHATROW-TABINDEX.
*
CLEAR STAB.
SELECT * FROM T001
INTO TABLE STAB
WHERE BUKRS = ITAB-BUKRS.
CLEAR ALVFC.
*------- Field Catalogue
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'STAB'
i_inclname = sy-repid
CHANGING
ct_fieldcat = alvfc
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
*----
Display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = alvfc
i_callback_program = sy-repid "<-------Important
TABLES
t_outtab = Stab
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. "ITAB_user_command
regards,
amit m.
‎2006 Dec 04 10:16 AM
Eg
&----
*& Report ZSD_ALV_INTERACTIVE *
*& *
&----
*& *
*& *
&----
REPORT ZSD_ALV_INTERACTIVE .
TYPE-POOLS : SLIS.
TABLES : EKKO,
EKPO.
Global data
DATA : GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
G_REPID TYPE SY-REPID,
IT_EVENTS TYPE SLIS_T_EVENT.
DATA : BEGIN OF ITAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
BUKRS LIKE EKKO-EBELN,
LIFNR LIKE EKKO-LIFNR,
EKORG LIKE EKKO-EKORG,
EKGRP LIKE EKKO-EKGRP,
END OF ITAB.
DATA : BEGIN OF PTAB OCCURS 0,
EBELN LIKE EKKO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
WERKS LIKE EKPO-WERKS,
LGORT LIKE EKPO-LGORT,
MATKL LIKE EKPO-MATKL,
END OF PTAB.
********************************Selection-screen
SELECT-OPTIONS : S_EBELN FOR EKKO-EBELN.
PARAMETERS : P_BUKRS LIKE EKKO-BUKRS DEFAULT '1000'.
********************************Initialization
INITIALIZATION.
G_REPID = SY-REPID.
PERFORM FIELDCAT USING GT_FIELDCAT[].
********************************Start-of-Selection.
START-OF-SELECTION.
PERFORM SELECT_DATA.
END-OF-SELECTION.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IT_FIELDCAT = GT_FIELDCAT
TABLES
T_OUTTAB = ITAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
&----
*& Form fieldcat
&----
text
----
-->P_GT_fieldcat[] text
----
FORM FIELDCAT USING P_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
LS_FIELDCAT-FIELDNAME = 'EBELN'.
LS_FIELDCAT-REF_TABNAME = 'EKKO'.
LS_FIELDCAT-EMPHASIZE = 'C510'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'BUKRS'.
LS_FIELDCAT-REF_TABNAME = 'EKKO'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'LIFNR'.
LS_FIELDCAT-REF_TABNAME = 'EKKO'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'EKORG'.
LS_FIELDCAT-REF_TABNAME = 'EKKO'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'EKGRP'.
LS_FIELDCAT-REF_TABNAME = 'EKKO'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
ENDFORM. " fieldcat
&----
*& Form SELECT_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM SELECT_DATA .
SELECT EBELN
BUKRS
LIFNR
EKORG
EKGRP
FROM EKKO
INTO TABLE ITAB
WHERE EBELN IN S_EBELN AND BUKRS = P_BUKRS .
ENDFORM. " SELECT_DATA
Secondary List *************************************
&----
*& Form user_command
&----
text
----
FORM USER_COMMAND USING COMM TYPE SY-UCOMM ROW TYPE SLIS_SELFIELD.
READ TABLE ITAB INDEX ROW-TABINDEX.
SELECT EBELN
EBELP
MATNR
WERKS
LGORT
MATKL
FROM EKPO
INTO TABLE PTAB
FOR ALL ENTRIES IN ITAB
WHERE EBELN = ITAB-EBELN.
Field catalog for secondary list.
PERFORM FIELDCAT1 USING IT_FIELDCAT[].
*****************Display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
IT_FIELDCAT = IT_FIELDCAT
TABLES
T_OUTTAB = PTAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDCASE.
ENDFORM. "USER_COMMAND
&----
*& Form FIELDCAT1
&----
text
----
-->P_IT_FIELDCAT[] text
----
FORM FIELDCAT1 USING P_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA : LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'EBELN'.
LS_FIELDCAT-REF_TABNAME = 'EKKO'.
LS_FIELDCAT-EMPHASIZE = 'C510'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'EBELP'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MATNR'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'WERKS'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'LGORT'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
CLEAR LS_FIELDCAT.
LS_FIELDCAT-FIELDNAME = 'MATKL'.
LS_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND LS_FIELDCAT TO P_FIELDCAT.
ENDFORM. " FIELDCAT1