I am making interactive alv report using table ekko, ekpo, lfa1.
Ekko table display(Basic list)
Purchasing Document Number | Item Number of Purchasing Document | Material Number | Company Code | Plant | Vendor Account Number | Pur Organization |
on click of purchasing Docu. display(details list 1)
material discription po quantity unit net priceVendor account no.
on click vendor no.display Vendor address as(details list 2)
Name1 name2 city District
I make following program in that basic list is display but details lists are not display.
*&---------------------------------------------------------------------*
*& Report ZIALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZIALV .
TYPE-POOLS: SLIS.
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekko-ebeln,
pincr TYPE ekko-pincr,
zzmaterial TYPE ekko-zzmaterial,
zzcompany_code TYPE ekko-zzcompany_code,
eq_werks TYPE ekko-eq_werks,
lifnr TYPE ekko-lifnr,
ekorg TYPE ekko-ekorg,
END OF t_ekko.
DATA: it_ekko TYPE TABLE OF t_ekko INITIAL SIZE 0 ,
wa_ekko TYPE t_ekko.
TYPES: BEGIN OF t_ekpo,
zzmaterial TYPE ekpo-zzmaterial,
zzquantity TYPE ekpo-zzquantity,
zzuniy TYPE ekpo-zzunit,
netpr TYPE ekpo-netpr,
emlif TYPE ekpo-emlif,
lblkz TYPE ekpo-lblkz,
END OF t_ekpo.
DATA: it_ekpo TYPE TABLE OF t_ekpo INITIAL SIZE 0 ,
wa_ekpo TYPE t_ekpo.
TYPES: BEGIN OF t_lfa1,
name1 TYPE lfa1-name1,
name2 TYPE lfa1-name2,
ort01 TYPE lfa1-ort01,
ort02 TYPE lfa1-ort02,
END OF t_lfa1.
DATA: it_lfa1 TYPE TABLE OF t_lfa1 INITIAL SIZE 0 ,
wa_lfa1 TYPE t_lfa1.
DATA: v_repid LIKE sy-repid.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv.
DATA: it_listheader TYPE slis_t_listheader.
DATA: v_events TYPE slis_t_event,
wa_event TYPE slis_alv_event.
DATA: alv_layout TYPE slis_layout_alv.
DATA: i_title_ekko TYPE lvc_title VALUE 'Purchasing Document Header ',
i_title_ekpo TYPE lvc_title VALUE 'Purchasing Document Item ',
i_title_lfa1 TYPE lvc_title VALUE 'Vendor Master '.
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.
*&-------------------------------------------------------------&*
* FROM BUILD_FIELDCATLOG *
*&-------------------------------------------------------------&*
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 = 'PINCR'.
wa_fieldcat-seltext_m = 'ITEM NO.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_EKKO'.
wa_fieldcat-fieldname = 'ZZMATERIAL'.
wa_fieldcat-seltext_m = 'Material Number'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_EKKO'.
wa_fieldcat-fieldname = 'ZZCOMPANY_CODE'.
wa_fieldcat-seltext_m = 'Company Code'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_EKKO'.
wa_fieldcat-fieldname = 'EQ_WERKS'.
wa_fieldcat-seltext_m = 'Plant '.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_EKKO'.
wa_fieldcat-fieldname = 'LIFNR'.
wa_fieldcat-seltext_m = 'Vendor Account NO.'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_EKKO'.
wa_fieldcat-fieldname = 'EKORG'.
wa_fieldcat-seltext_m = 'Purchese Organization'.
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.
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 pincr zzmaterial zzcompany_code eq_werks lifnr ekorg FROM ekko INTO TABLE it_ekko.
ENDFORM. "data_retrieval
*&--------------------------------------------------------------------*
*& Form bUild_listheader
*&--------------------------------------------------------------------*
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
*&--------------------------------------------------------------------*
FORM display_alv_report.
v_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
i_callback_user_command = 'USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE'
i_grid_title = i_title_ekko
it_fieldcat = i_fieldcat[]
i_save = 'A'
it_events = v_events
TABLES
t_outtab = it_ekko.
ENDFORM. "display_alv_report
*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&--------------------------------------------------------------------*
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader.
ENDFORM. "TOP_OF_PAGE
*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
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
*&--------------------------------------------------------------------*
FORM build_fieldcatlog_ekpo.
wa_fieldcat-tabname = 'IT_EKPO'.
wa_fieldcat-fieldname = 'ZZMATERIAL'.
wa_fieldcat-seltext_m = 'Material Discription'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_EKPO'.
wa_fieldcat-fieldname = 'ZZQUANTITY'.
wa_fieldcat-seltext_m = 'PO Quantity'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_EKPO'.
wa_fieldcat-fieldname = 'ZZUNIT'.
wa_fieldcat-seltext_m = 'Unit '.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_EKPO'.
wa_fieldcat-fieldname = 'NETPR'.
wa_fieldcat-seltext_m = 'Net Price'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_EKPO'.
wa_fieldcat-fieldname = 'EMLIF'.
wa_fieldcat-seltext_m = 'Vendor'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'I_EKPO'.
wa_fieldcat-fieldname = 'LBLKZ'.
wa_fieldcat-seltext_m = 'Vendor account no'.
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.
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
*&--------------------------------------------------------------------*
FORM f_top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader.
ENDFORM. "TOP_OF_PAGE
*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
FORM data_retrieval_ekpo.
*retreiving values from the database table ekko
SELECT zzmaterial zzquantity zzunit netpr emlif lblkz FROM ekpo INTO TABLE it_ekpo.
ENDFORM. "DATA_RETRIEVAL_EKPO
*&---------------------------------------------------------------------*
*& Form BUILD_LISTHEADER_EKPO
*&---------------------------------------------------------------------*
FORM build_listheader_ekpo USING i_listheader TYPE slis_t_listheader.
DATA: hline1 TYPE slis_listheader.
hline1-typ = 'H'.
hline1-info = 'CHECKING PGM'.
ENDFORM. "BUILD_LISTHEADER_EKPO
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_EKPO
*&---------------------------------------------------------------------*
FORM display_alv_ekpo.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
i_grid_title = i_title_ekpo
it_fieldcat = i_fieldcat[]
i_save = 'A'
it_events = v_events
TABLES
t_outtab = it_ekpo
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. "DISPLAY_ALV_EKPO
*&---------------------------------------------------------------------*
*& Form User_command2
*&---------------------------------------------------------------------*
FORM user_command2 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'.
READ TABLE it_lfa1 INTO wa_lfa1 INDEX rs_selfield-tabindex .
PERFORM build_fieldcatlog_lfa1.
PERFORM event_call_lfa1.
PERFORM populate_event_lfa1.
PERFORM data_retrieval_lfa1.
PERFORM build_listheader_lfa1 USING it_listheader.
PERFORM display_alv_lfa1.
ENDCASE.
ENDFORM.
*&--------------------------------------------------------------------*
*& Form BUILD_FIELDCATLOG_EKPO
*&--------------------------------------------------------------------*
FORM build_fieldcatlog_lfa1.
wa_fieldcat-tabname = 'IT_LFA1'.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-seltext_m = 'Name1'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_LFA1'.
wa_fieldcat-fieldname = 'NAME2'.
wa_fieldcat-seltext_m = 'Name2'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_LFA1'.
wa_fieldcat-fieldname = 'ORTO1'.
wa_fieldcat-seltext_m = 'City'.
APPEND wa_fieldcat TO i_fieldcat.
CLEAR wa_fieldcat.
wa_fieldcat-tabname = 'IT_LFA1'.
wa_fieldcat-fieldname = 'ORTO2'.
wa_fieldcat-seltext_m = 'District'.
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_lfa1.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = v_events.
ENDFORM. "event_call_ekpo
*&--------------------------------------------------------------------*
*& Form POPULATE_EVENT
*&--------------------------------------------------------------------*
* Events populated for TOP OF PAGE & USER COMAND
*---------------------------------------------------------------------*
FORM populate_event_lfa1.
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
*&--------------------------------------------------------------------*
FORM ff_top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = it_listheader.
ENDFORM. "TOP_OF_PAGE
*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
FORM data_retrieval_lfa1.
*retreiving values from the database table ekko
SELECT name1 name2 ort01 ort02 FROM lfa1 INTO TABLE it_lfa1.
ENDFORM. "DATA_RETRIEVAL_EKPO
*&---------------------------------------------------------------------*
*& Form BUILD_LISTHEADER_EKPO
*&---------------------------------------------------------------------*
FORM build_listheader_lfa1 USING i_listheader TYPE slis_t_listheader.
DATA: hline1 TYPE slis_listheader.
hline1-typ = 'H'.
hline1-info = 'CHECKING PGM'.
ENDFORM. "BUILD_LISTHEADER_EKPO
*&---------------------------------------------------------------------*
*& Form DISPLAY_ALV_EKPO
*&---------------------------------------------------------------------*
FORM display_alv_lfa1.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = v_repid
i_callback_top_of_page = 'TOP_OF_PAGE'
i_grid_title = i_title_ekpo
it_fieldcat = i_fieldcat[]
i_save = 'A'
it_events = v_events
TABLES
t_outtab = it_ekpo
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. "DISPLAY_ALV_EKPO