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.

Mehdi Kapsal

Bilgisayar Mühendisi

Sence de böyle mi?

%d blogcu bunu beğendi: