Hotspot, Edit, Save İçeren ALV Örneği

Ana Program

& Report ZMK_ALV_FILMLER
*&---------------------------------------------------------------------

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

REPORT ZMK_ALV_FILMLER.

INCLUDE ZMK_ALV_FILMLER_TOP.
INCLUDE ZMK_ALV_FILMLER_f01.

START-OF-SELECTION.

PERFORM select_data.

PERFORM create_fieldcat USING 'ZMK_T_OYUNCULAR' CHANGING p_fieldcat_1.

PERFORM display_alv TABLES p_alv CHANGING p_fieldcat_1.

TOP Kod Bloğu


& Include ZMK_ALV_FILMLER_TOP
*&---------------------------------------------------------------------

TABLES: ZMK_T_OYUNCULAR,
ZMK_T_FILMLER,
ZMK_T_TURLER.

TYPE-POOLS: slis.

data: p_alv type TABLE OF zmk_t_oyuncular WITH HEADER LINE,
p_alv_2 TYPE TABLE OF zmk_t_filmler WITH HEADER LINE,
p_alv_3 TYPE TABLE OF zmk_t_turler WITH HEADER LINE.

data: p_fieldcat_1 type slis_t_fieldcat_alv,
p_fieldcat_2 type slis_t_fieldcat_alv,
p_fieldcat_3 type slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
gs_layout TYPE slis_layout_alv.

F01 Kod Bloğu

&---------------------------------------------------------------------
& Include ZMK_ALV_FILMLER_F01
*&---------------------------------------------------------------------

FORM select_data.

SELECT * FROM zmk_t_oyuncular INTO CORRESPONDING FIELDS OF TABLE p_alv.

ENDFORM.

FORM create_fieldcat USING p_structure CHANGING p_fieldcat_1 TYPE slis_t_fieldcat_alv.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_structure_name = p_structure
CHANGING
ct_fieldcat = p_fieldcat_1
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.

IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

LOOP AT p_fieldcat_1 INTO wa_fieldcat.
CASE wa_fieldcat-fieldname.
WHEN 'FILM_ID'.
wa_fieldcat-hotspot = 'X'.

  WHEN 'TUR_ID'.
    wa_fieldcat-hotspot = 'X'.

 WHEN 'OYUNCU_AD'.
   wa_fieldcat-edit = 'X'.

   WHEN 'IMDB_PUAN'.
     wa_fieldcat-edit = 'X'.

     WHEN 'TUR_AD'.
       wa_fieldcat-edit = 'X'.

  WHEN OTHERS.
ENDCASE.

MODIFY p_fieldcat_1 FROM wa_fieldcat.

ENDLOOP.

ENDFORM.

FORM display_alv TABLES p_alv CHANGING p_fieldcat_1 TYPE slis_t_fieldcat_alv.

gs_layout-colwidth_optimize = 'X'.
gs_layout-zebra = 'X'.
* gs_layout-edit = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'F_USER_COMMAND '
is_layout = gs_layout
it_fieldcat = p_fieldcat_1
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_filmid TYPE zmk_de_film_id,
lv_turid TYPE zmk_de_tur_id.

data: ok_code TYPE sy-ucomm.
ok_Code = sy-ucomm.

case ok_code.
WHEN 'BACK'.
LEAVE PROGRAM.
WHEN 'CANCEL'.
LEAVE PROGRAM.
WHEN 'EXIT'.
LEAVE PROGRAM.

   WHEN OTHERS.
      ENDCASE.
  • DATA: F_SUBRC LIKE SY-SUBRC,
  • s_alv like p_alv.

*
*READ TABLE p_alv INDEX is_selfield-tabindex INTO s_alv.

data: lr_ref1 type ref to cl_gui_alv_grid.

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

IMPORTING

E_GRID = lr_ref1.

call METHOD lr_ref1->check_changed_data( ).

CASE r_ucomm.

WHEN '&IC1'.

    CASE is_selfield-fieldname.
    WHEN 'FILM_ID'.



      SELECT * FROM zmk_t_filmler WHERE film_id EQ @is_selfield-value INTO CORRESPONDING FIELDS of TABLE @p_alv_2.

      PERFORM create_fieldcat USING 'ZMK_T_FILMLER' CHANGING p_fieldcat_2.
      PERFORM display_alv TABLES p_alv_2 CHANGING p_fieldcat_2.


    WHEN 'TUR_ID'.

      SELECT * FROM zmk_t_turler WHERE tur_id EQ @is_selfield-value  INTO CORRESPONDING FIELDS OF TABLE @p_alv_3.

      PERFORM create_fieldcat USING 'ZMK_T_TURLER' CHANGING p_fieldcat_3.
      PERFORM display_alv TABLES p_alv_3 CHANGING p_fieldcat_3.
    WHEN OTHERS.

  ENDCASE.

WHEN 'KAYDET'.

  MODIFY zmk_t_oyuncular FROM TABLE p_alv .

  MODIFY zmk_t_filmler FROM TABLE p_alv_2.

  MODIFY zmk_t_turler FROM TABLE p_alv_3.


WHEN OTHERS.

ENDCASE.

ENDFORM.

FORM PF_STATUS_SET USING RT_EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'STATUS_KAYDET'.

ENDFORM.

Mehdi Kapsal

Bilgisayar Mühendisi

Sence de böyle mi?

%d blogcu bunu beğendi: