OOALV HotSpot

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 3

*&---------------------------------------------------------------------*

*& Report ZMR_DIALOG_OOALV


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZMR_CUSTOM_OOALV_HOTSPOT.
CLASS lcl_event_receiver DEFINITION DEFERRED.
types : begin of ty_vbak,
vbeln type vbeln_va,
erdat type erdat,
netwr type netwr_ak,
end of ty_vbak.
data : lt_vbak type table of ty_vbak,
wa_vbak type ty_vbak.

data : lr_custom type ref to cl_gui_custom_container,


lr_alv type ref to cl_gui_alv_grid,
lr_event TYPE REF TO lcl_event_receiver.

data : lt_fldcat type LVC_T_FCAT,


wa_fldcat type LVC_S_FCAT.

*
CLASS lcl_event_receiver DEFINITION.
PUBLIC SECTION.
methods hotspot_click for event HOTSPOT_CLICK of CL_GUI_ALV_GRID importing
es_row_no.
endclass.
CLASS lcl_event_receiver implementation.
method hotspot_click.
read table lt_vbak into wa_vbak index ES_ROW_NO-ROW_ID.
if sy-subrc = 0.
set parameter id 'AUN' field wa_vbak-vbeln.
call transaction 'VA03' AND SKIP FIRST SCREEN.
endif.
endmethod.

ENDCLASS. "lcl_event_receiver IMPLEMENTATION

parameters p_kunnr type kunnr.

start-of-selection.
perform data_fetch.
call screen 100.

form DATA_FETCH .
select vbeln erdat netwr from vbak into table lt_vbak where kunnr = p_kunnr.
endform. " DATA_FETCH

module STATUS_0100 output.


* SET PF-STATUS 'STATUS'.
* SET TITLEBAR 'TITLE'.
CREATE OBJECT lr_custom
EXPORTING
container_name = 'CON'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5
others = 6
.
CREATE OBJECT LR_alv
EXPORTING
i_parent = LR_CUSTOM
EXCEPTIONS
error_cntl_create = 1
error_cntl_init = 2
error_cntl_link = 3
error_dp_create = 4
others = 5.

wa_fldcat-COL_POS = 1.
wa_fldcat-FIELDNAME = 'VBELN'.
wa_fldcat-TABNAME = 'LT_VBAK'.
wa_fldcat-SCRTEXT_S = 'Sales Ord'.
wa_fldcat-SCRTEXT_M = 'Sales Order No'.
wa_fldcat-SCRTEXT_L = 'Sales Order Number'.
WA_FLDCAT-hotspot = 'X'.
APPEND WA_FLDCAT TO LT_FLDCAT.
CLEAR WA_FLDCAT.

wa_fldcat-COL_POS = 2.
wa_fldcat-FIELDNAME = 'ERDAT'.
wa_fldcat-TABNAME = 'LT_VBAK'.
wa_fldcat-REF_FIELD = 'ERDAT'.
wa_fldcat-REF_TABLE = 'VBAK'.
APPEND WA_FLDCAT TO LT_FLDCAT.
CLEAR WA_FLDCAT.

wa_fldcat-COL_POS = 3.
wa_fldcat-FIELDNAME = 'NETWR'.
wa_fldcat-TABNAME = 'LT_VBAK'.
wa_fldcat-REF_FIELD = 'NETWR'.
wa_fldcat-REF_TABLE = 'VBAK'.
WA_FLDCAT-do_sum = 'Y'."ABAP_TRUE.
APPEND WA_FLDCAT TO LT_FLDCAT.
CLEAR WA_FLDCAT.

CALL METHOD LR_alv->set_table_for_first_display


CHANGING
it_outtab = LT_VBAK
it_fieldcatalog = LT_FLDCAT
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
others = 4
.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

* Object For Event Handler


CREATE OBJECT LR_event.
SET HANDLER LR_EVENT->HOTSPOT_CLICK FOR LR_ALV.
endmodule. " STATUS_0100 OUTPUT

You might also like