Interactive Alv Events
Interactive Alv Events
Interactive Alv Events
*& Report ZMR_ALV_MANUAL
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMR_ALV_INTERACTIVE.
types : begin of ty_ekpo,
ebeln type ebeln,
ebelp type ebelp,
matnr type matnr,
menge type bstmg,
netwr type BWERT,
end of ty_ekpo,
begin of ty_ekko,
ebeln type ebeln,
bukrs type bukrs,
lifnr type lifnr,
end of ty_ekko.
data : lt_ekpo type standard table of TY_ekpo.
data : lt_ekko type standard table of ty_ekko.
data : lt_fldcat type slis_t_fieldcat_alv,
wa_fldcat type slis_fieldcat_alv.
parameters p_lifnr type lifnr.
start-of-selection.
select ebeln bukrs lifnr from ekko into table lt_ekko where lifnr = p_lifnr.
if sy-subrc = 0.
wa_fldcat-fieldname = 'EBELN'.
WA_FLDCAT-tabname = 'LT_EKKO'.
WA_FLDCAT-SELTEXT_L = 'PO Number'.
WA_FLDCAT-SELTEXT_m = 'PO Number'.
WA_FLDCAT-SELTEXT_s = 'PO NO'.
WA_FLDCAT-HOTSPOT = 'X'.
append wa_fldcat to lt_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'BUKRS'.
WA_FLDCAT-tabname = 'LT_EKKO'.
WA_FLDCAT-SELTEXT_L = 'Company Code'.
WA_FLDCAT-SELTEXT_m = 'Company Code'.
WA_FLDCAT-SELTEXT_s = 'Company Code'.
append wa_fldcat to lt_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'LIFNR'.
WA_FLDCAT-tabname = 'LT_EKKO'.
WA_FLDCAT-SELTEXT_L = 'Vendor'.
WA_FLDCAT-SELTEXT_m = 'Vendor'.
WA_FLDCAT-SELTEXT_s = 'Vendor'.
append wa_fldcat to lt_fldcat.
clear wa_fldcat.
data : lt_events type slis_t_event,
wa_events type slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
ET_EVENTS = lt_events
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
*
wa_events-form = 'DOUBLE_CLICK'.
MODIFY LT_EVENTS FROM WA_EVENTS TRANSPORTING FORM WHERE NAME = 'USER_COMMAND'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
* I_CALLBACK_USER_COMMAND = 'DOUBLE_CLICK'
IT_FIELDCAT = LT_FLDCAT
IT_EVENTS = LT_EVENTS
TABLES
t_outtab = LT_EKKO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
endif.
form double_click USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
break-point.
IF R_UCOMM = '&IC1'.
select ebeln
ebelp
matnr
menge
netwr from ekpo into table lt_ekpo where ebeln = RS_SELFIELD-VALUE.
if sy-subrc = 0.
* Manual field cat.
REFRESH LT_FLDCAT.
wa_fldcat-fieldname = 'EBELN'.
WA_FLDCAT-tabname = 'LT_EKPO'.
WA_FLDCAT-SELTEXT_L = 'PO Number'.
WA_FLDCAT-SELTEXT_m = 'PO Number'.
WA_FLDCAT-SELTEXT_s = 'PO NO'.
append wa_fldcat to lt_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'EBELP'.
WA_FLDCAT-tabname = 'LT_EKPO'.
WA_FLDCAT-SELTEXT_L = 'PO Item Number'.
WA_FLDCAT-SELTEXT_m = 'PO Item No'.
WA_FLDCAT-SELTEXT_s = 'PO Item'.
append wa_fldcat to lt_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'MATNR'.
WA_FLDCAT-tabname = 'LT_EKPO'.
WA_FLDCAT-ref_fieldname = 'MATNR'.
WA_FLDCAT-ref_tabname = 'MARA'.
wa_fldcat-edit = 'X'.
append wa_fldcat to lt_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'MENGE'.
WA_FLDCAT-tabname = 'LT_EKPO'.
WA_FLDCAT-ref_fieldname = 'MENGE'.
WA_FLDCAT-ref_tabname = 'EKPO'.
WA_FLDCAT-DO_SUM = 'X'.
append wa_fldcat to lt_fldcat.
clear wa_fldcat.
wa_fldcat-fieldname = 'NETWR'.
WA_FLDCAT-tabname = 'LT_EKPO'.
WA_FLDCAT-ref_fieldname = 'NETWR'.
WA_FLDCAT-ref_tabname = 'EKPO'.
WA_FLDCAT-DO_SUM = 'X'.
append wa_fldcat to lt_fldcat.
clear wa_fldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
IT_FIELDCAT = LT_FLDCAT
TABLES
t_outtab = LT_EKPO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
endif.
ENDIF.
endform.
output for purchase header: and by click on po number u vl get item details.