Abap Alv Hotspot Örneği
Hotspot ALV Örneği
Ana Program
&———————————————————————
& Report ZMK_ALV_MUSTERI
*&———————————————————————
&
*&———————————————————————
REPORT ZMK_ALV_MUSTERI.
INCLUDE ZMK_ALV_MUSTERI_top.
INCLUDE ZMK_ALV_MUSTERI_f01.
START-OF-SELECTION.
PERFORM get_data.
PERFORM create_fieldcat USING ‘KNA1’ CHANGING it_fieldcat1.
PERFORM display_alv TABLES gt_alv USING it_fieldcat1.
Top Kodları
&———————————————————————
& Include ZMK_ALV_MUSTERI_TOP
*&———————————————————————
TYPE-POOLS: slis.
DATA: gt_alv TYPE TABLE OF kna1 WITH HEADER LINE,
gt_alv2 TYPE TABLE OF vbak WITH HEADER LINE,
gt_alv3 TYPE TABLE OF vbap WITH HEADER LINE.
DATA: it_fieldcat1 TYPE slis_t_fieldcat_alv,
it_fieldcat2 type slis_t_fieldcat_alv,
it_fieldcat3 TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
gs_layout TYPE slis_layout_alv.
F01 Kodları
&———————————————————————
& Include ZMK_ALV_MUSTERI_F01
*&———————————————————————
FORM get_data.
SELECT * FROM kna1 INTO CORRESPONDING FIELDS OF TABLE gt_alv.
ENDFORM.
FORM create_fieldcat USING p_structure CHANGING p_fieldcat TYPE slis_t_fieldcat_alv.
CALL FUNCTION ‘REUSE_ALV_FIELDCATALOG_MERGE’
EXPORTING
i_program_name = sy-repid
i_structure_name = p_structure
* I_CLIENT_NEVER_DISPLAY = ‘X’
* I_INCLNAME = I_INCLNAME
* I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
* I_BUFFER_ACTIVE = I_BUFFER_ACTIVE
CHANGING
ct_fieldcat = p_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
LOOP AT p_fieldcat INTO wa_fieldcat.
CASE wa_fieldcat-fieldname.
WHEN ‘KUNNR’.
wa_fieldcat-hotspot = ‘X’.
WHEN ‘VBELN’.
wa_fieldcat-hotspot = ‘X’.
WHEN OTHERS.
ENDCASE.
MODIFY p_fieldcat FROM wa_fieldcat.
ENDLOOP.
ENDFORM.
FORM display_alv TABLES p_alv USING p_fieldcat TYPE slis_t_fieldcat_alv.
gs_layout-colwidth_optimize = ‘X’.
gs_layout-zebra = ‘X’.
CALL FUNCTION ‘REUSE_ALV_GRID_DISPLAY’
EXPORTING
i_callback_program = sy-repid
i_callback_user_command = ‘F_USER_COMMAND ‘
* I_STRUCTURE_NAME = I_STRUCTURE_NAME
is_layout = gs_layout
it_fieldcat = p_fieldcat
i_save = ‘A’
TABLES
t_outtab = p_alv
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM.
FORM f_user_command USING r_ucomm LIKE sy-ucomm is_selfield TYPE slis_selfield.
DATA: lv_kunnr TYPE kunag,
lv_vbeln TYPE VBELN_VA.
CASE r_ucomm.
WHEN ‘&IC1’.
CASE is_selfield-fieldname .
WHEN 'KUNNR'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = is_selfield-value
IMPORTING
output = lv_kunnr.
SELECT * FROM vbak WHERE kunnr EQ @lv_kunnr INTO CORRESPONDING FIELDS OF TABLE @gt_alv2.
PERFORM create_fieldcat USING 'VBAK' CHANGING it_fieldcat2 .
PERFORM display_alv TABLES gt_alv2 USING it_fieldcat2 .
WHEN 'VBELN'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = is_selfield-value
IMPORTING
output = lv_vbeln.
SELECT * FROM vbap WHERE vbeln EQ @lv_vbeln INTO CORRESPONDING FIELDS OF TABLE @gt_alv3.
PERFORM create_fieldcat USING 'VBAP' CHANGING it_fieldcat3 .
PERFORM display_alv TABLES gt_alv3 USING it_fieldcat3 .
WHEN OTHERS.
ENDCASE.
*DATA INPUT TYPE CLIKE.
*DATA OUTPUT TYPE CLIKE.
WHEN OTHERS.
ENDCASE.
ENDFORM.