Professional Documents
Culture Documents
Ztest Paulo
Ztest Paulo
REPORT zzw2r006_alv_test.
*----------------------------------------------------------------------*
* D A T A *
*----------------------------------------------------------------------*
*>>>Begin of YRA
TABLES lips.
TABLES likp.
TABLES vbfa.
TABLES ltap.
*TABLES zzw2r006_tempo.
BEGIN OF g_ty_s_outtab.
INCLUDE TYPE g_ty_s_sflight.
TYPES: "table type char10,
count TYPE i,
box TYPE char1,
lights TYPE char1,
handle_style TYPE lvc_t_styl,
handle_dragdrop TYPE lvc_t_drdr,
tabcolor TYPE lvc_t_scol,
END OF g_ty_s_outtab,
g_ty_t_outtab TYPE TABLE OF g_ty_s_outtab.
*---------------------------------------------------------------------*
* CLASS lcl_events_d0100 DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_events_d0100 DEFINITION.
PUBLIC SECTION.
DATA:
m_grid TYPE i.
METHODS:
data_changed FOR EVENT data_changed
OF cl_gui_alv_grid
IMPORTING er_data_changed
e_onf4
e_onf4_before
e_onf4_after,
data_changed_finished
FOR EVENT data_changed_finished
OF cl_gui_alv_grid,
*---------------------------------------------------------------------*
* CLASS lcl_events_d0100 IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_events_d0100 IMPLEMENTATION.
*---------------------------------------------------------------------*
* METHOD data_cahnged *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
METHOD data_changed.
PERFORM d0100_event_data_changed USING er_data_changed
e_onf4
e_onf4_before
e_onf4_after
m_grid.
ENDMETHOD. "data_changed
*---------------------------------------------------------------------*
* METHOD data_changed_finished *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
METHOD data_changed_finished.
PERFORM d0100_event_data_changed_finis.
ENDMETHOD. "data_changed_finished
*---------------------------------------------------------------------*
* METHOD ondrag *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
METHOD ondrag.
PERFORM d0100_event_ondrag USING e_row
e_column
e_dragdropobj.
ENDMETHOD. "ondrag
*---------------------------------------------------------------------*
* METHOD ondrop *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
METHOD ondrop.
PERFORM d0100_event_ondrop USING e_row
e_column
e_dragdropobj.
ENDMETHOD. "ondrop
*---------------------------------------------------------------------*
* METHOD ondropcomplete *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
METHOD ondropcomplete.
PERFORM d0100_event_ondropcomplete USING e_row
e_column
e_dragdropobj.
ENDMETHOD. "ondropcomplete
*---------------------------------------------------------------------*
* METHOD ondropgetflavor *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
METHOD ondropgetflavor.
PERFORM d0100_event_ondropgetflavor USING e_row
e_column
es_row_no
e_dragdropobj
e_flavors.
ENDMETHOD. "ondropgetflavor
ENDCLASS. "lcl_events_d0100 IMPLEMENTATION
*---------------------------------------------------------------------*
* CLASS lcl_dragdrop_obj_d0100 DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS lcl_dragdrop_obj_d0100 DEFINITION.
PUBLIC SECTION.
DATA: line TYPE g_ty_s_outtab,
index TYPE i.
ENDCLASS. "lcl_dragdrop_obj_d0100 DEFINITION
*----------------------------------------------------------------------*
* SELECTION-SCREEN *
*----------------------------------------------------------------------*
*>>>Begin of YRA
SELECTION-SCREEN : BEGIN OF BLOCK b1. "WITH FRAME TITLE text-001.
SELECTION-SCREEN SKIP 1.
PARAMETERS p_vbeln TYPE likp-vbeln OBLIGATORY DEFAULT '2000027642'.
SELECTION-SCREEN : END OF BLOCK b1.
*>>>End of YRA
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN ON VALUE-REQUEST *
*----------------------------------------------------------------------*
*>>>Begin of YRA
AT SELECTION-SCREEN ON p_vbeln.
START-OF-SELECTION.
* PERFORM f100_select_data.
* PERFORM f200_data_treatment.
gs_test-bypassing_buffer = space.
gs_test-buffer_active = space.
*----------------------------------------------------------------------*
* END-OF-SELECTION *
*----------------------------------------------------------------------*
END-OF-SELECTION.
CALL SCREEN 100.
*&---------------------------------------------------------------------*
*& Module d0100_set_status OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE d0100_set_status OUTPUT.
PERFORM d0100_set_status.
ENDMODULE. " d0100_set_status OUTPUT
*&---------------------------------------------------------------------*
*& Module d0100_prepare_container OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE d0100_prepare_container OUTPUT.
PERFORM d0100_prepare_container.
ENDMODULE. " d0100_prepare_container OUTPUT
*&---------------------------------------------------------------------*
*& Module d0100_exit INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE d0100_exit INPUT.
PERFORM d0100_exit.
ENDMODULE. " d0100_exit INPUT
*&---------------------------------------------------------------------*
*& Module d0100_fcode INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE d0100_fcode INPUT.
PERFORM d0100_fcode.
ENDMODULE. " d0100_fcode INPUT
*&---------------------------------------------------------------------*
*& Form d0100_set_status
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_set_status .
*&---------------------------------------------------------------------*
*& Form d0100_prepare_container
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_prepare_container .
IF gr_container_d0100_source IS INITIAL.
IF cl_gui_alv_grid=>offline( ) IS INITIAL.
CREATE OBJECT gr_container_d0100_source
EXPORTING
container_name = 'D0100_CONTAINER_SOURCE'.
ENDIF.
PERFORM d0100_get_outtab.
IF gr_container_d0100_target IS INITIAL.
CREATE OBJECT gr_container_d0100_target
EXPORTING
container_name = 'D0100_CONTAINER_TARGET'.
*&---------------------------------------------------------------------*
*& Form d0100_exit
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_exit .
l_okcode = g_okcode.
CLEAR g_okcode.
CASE l_okcode.
WHEN con_exit OR con_back OR con_canc.
CALL METHOD gr_grid_d0100_source->free.
CALL METHOD gr_container_d0100_source->free.
CALL METHOD gr_grid_d0100_target->free.
CALL METHOD gr_container_d0100_target->free.
CLEAR gr_container_d0100_source.
CLEAR gr_grid_d0100_source.
CLEAR gr_container_d0100_target.
CLEAR gr_grid_d0100_target.
CLEAR gr_events_d0100.
SET SCREEN 0.
LEAVE SCREEN.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form d0100_fcode
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_fcode .
l_okcode = g_okcode.
CLEAR g_okcode.
CASE l_okcode.
WHEN con_exit OR con_back OR con_canc.
g_okcode = l_okcode.
PERFORM d0100_exit.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form d0100_set_grid_vari
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_set_grid_vari CHANGING cs_vari TYPE disvariant.
cs_vari-report = sy-repid.
cs_vari-handle = space.
cs_vari-log_group = space.
cs_vari-username = space.
cs_vari-variant = space.
cs_vari-text = space.
cs_vari-dependvars = space.
*&---------------------------------------------------------------------*
*& Form d0100_set_grid_layo
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_set_grid_layo CHANGING cs_layo TYPE lvc_s_layo.
cs_layo-cwidth_opt = con_true.
cs_layo-zebra = space.
cs_layo-smalltitle = space.
cs_layo-graphics = space.
cs_layo-frontend = space.
cs_layo-template = space.
cs_layo-sel_mode = 'D'.
cs_layo-box_fname = space.
cs_layo-sgl_clk_hd = space.
cs_layo-no_rowins = space.
cs_layo-no_rowmove = space.
*&---------------------------------------------------------------------*
*& Form d0100_set_grid_fcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_set_grid_fcat CHANGING ct_fcat TYPE lvc_t_fcat.
CLEAR ls_fcat.
ls_fcat-tabname = '1'.
ls_fcat-fieldname = 'TABLE'.
ls_fcat-inttype = 'C'.
ls_fcat-datatype = 'CHAR'.
ls_fcat-intlen = 10.
ls_fcat-scrtext_s = ls_fcat-fieldname.
ls_fcat-scrtext_m = ls_fcat-fieldname.
ls_fcat-scrtext_l = ls_fcat-fieldname.
APPEND ls_fcat TO ct_fcat.
*&---------------------------------------------------------------------*
*& Form d0100_set_grid_events
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_set_grid_events USING i_grid TYPE i.
CASE i_grid.
WHEN con_source.
gr_events_d0100->m_grid = con_source.
WHEN con_target.
gr_events_d0100->m_grid = con_target.
*&---------------------------------------------------------------------*
*& Form d0100_set_grid_edit
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_set_grid_edit USING i_grid TYPE i
CHANGING cs_layo TYPE lvc_s_layo
ct_fcat TYPE lvc_t_fcat.
CASE gs_test-edit_type.
WHEN con_edit_grid.
*... Grid Editerbar
* In Layout wird Feld EDIT auf 'X' gesetzt
cs_layo-edit = con_true.
WHEN con_edit_column.
*... Spalteneditierbar
* In Feldkatalog wird Feld EDIT auf 'X' gesetzt f�r Spalte CARRID
LOOP AT gs_test-edit_fields INTO ls_field.
READ TABLE ct_fcat ASSIGNING <ls_fcat>
WITH KEY fieldname = ls_field.
IF sy-subrc EQ 0.
<ls_fcat>-edit = con_true.
ENDIF.
ENDLOOP.
WHEN con_edit_cell.
*... Zellen-Editierbar
* In Layout wird Feld SYTLEFNAME auf 'HANDLE_STYLE' gesetzt
cs_layo-stylefname = 'HANDLE_STYLE'.
WHEN con_source.
LOOP AT gt_outtab_source INTO ls_outtab.
l_index = sy-tabix.
l_erg = l_index MOD 2.
IF l_erg EQ 0.
LOOP AT gs_test-edit_fields INTO ls_field.
ls_edit-fieldname = ls_field.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
ls_edit-style2 = space.
ls_edit-style3 = space.
ls_edit-style4 = space.
ls_edit-maxlen = 8.
INSERT ls_edit INTO TABLE lt_edit.
ENDLOOP.
WHEN con_target.
LOOP AT gt_outtab_target INTO ls_outtab.
l_index = sy-tabix.
l_erg = l_index MOD 2.
IF l_erg EQ 0.
LOOP AT gs_test-edit_fields INTO ls_field.
ls_edit-fieldname = ls_field.
ls_edit-style = cl_gui_alv_grid=>mc_style_enabled.
ls_edit-style2 = space.
ls_edit-style3 = space.
ls_edit-style4 = space.
ls_edit-maxlen = 8.
INSERT ls_edit INTO TABLE lt_edit.
ENDLOOP.
WHEN OTHERS.
EXIT.
ENDCASE.
CASE gs_test-edit_event.
WHEN con_edit_event_enter.
*... hiermit erfolgt eine Pr�fung nach Eingabe wenn ENTER gedr�ckt wird
CASE i_grid.
WHEN con_source.
CALL METHOD gr_grid_d0100_source->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
WHEN con_target.
CALL METHOD gr_grid_d0100_target->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
ENDCASE.
WHEN con_edit_event_modify.
*... hiermit erfolgt eine Pr�fung nach jeder �nderung
CASE i_grid.
WHEN con_source.
CALL METHOD gr_grid_d0100_source->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
WHEN con_target.
CALL METHOD gr_grid_d0100_target->register_edit_event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
ENDCASE.
ENDCASE.
CASE gs_test-edit_mode.
WHEN con_edit_mode_change.
*... hier wird alles was editierbar sein kann auch editierbar gemacht
CASE i_grid.
WHEN con_source.
CALL METHOD gr_grid_d0100_source->set_ready_for_input
EXPORTING
i_ready_for_input = 1.
WHEN con_target.
CALL METHOD gr_grid_d0100_target->set_ready_for_input
EXPORTING
i_ready_for_input = 1.
ENDCASE.
WHEN con_edit_mode_display.
*... hier wird alles was editierbar sein kann nicht editierbar gemacht
CASE i_grid.
WHEN con_source.
CALL METHOD gr_grid_d0100_source->set_ready_for_input
EXPORTING
i_ready_for_input = 0.
WHEN con_target.
CALL METHOD gr_grid_d0100_target->set_ready_for_input
EXPORTING
i_ready_for_input = 0.
ENDCASE.
ENDCASE.
* cs_layo-no_rowins = gs_test-no_row_ins.
* cs_layo-no_rowmove = gs_test-no_row_move.
*&---------------------------------------------------------------------*
*& Form f200_data_treatment
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f200_data_treatment.
" clear all fields of structure de sortie that come from vbfa or ltap
CLEAR wa_final.
CLEAR wa_vbfa_bis.
ENDLOOP.
ENDLOOP.
ENDFORM. "f100_data_treatment
*&---------------------------------------------------------------------*
*& Form f300_display_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
*Form f300_display_data.
*
*ENDFORM.
"Begin of F100_GET_VLPLA
*&---------------------------------------------------------------------*
*& Form f100_get_vlpla_upd
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PW_LTAP text
*----------------------------------------------------------------------*
*FORM f100_get_vlpla_upd CHANGING pw_ltap TYPE zzw2r006_ltap.
* DATA lw_zzw16 LIKE LINE OF t_zzw16.
* DATA l_zrow TYPE zzw16-zrow.
* DATA l_zlev TYPE zzw16-zlev.
*
* pw_ltap-vlpla_upd = pw_ltap-vlpla.
* IF pw_ltap-vlpla IS INITIAL.
* RETURN.
* ENDIF.
* FIND REGEX '^(...)-..-(..)\s*$' IN pw_ltap-vlpla SUBMATCHES l_zrow l_zlev.
* IF sy-subrc NE 0. " not like XXX-XX-XX
* RETURN.
* ENDIF.
* READ TABLE t_zzw16 INTO lw_zzw16
* WITH TABLE KEY lgnum = pw_ltap-lgnum
* lgtyp = pw_ltap-vltyp
* zrow = l_zrow
* zlev = l_zlev
* TRANSPORTING znew.
* IF sy-subrc NE 0.
* SELECT SINGLE znew INTO lw_zzw16-znew
* FROM zzw16
* WHERE lgnum EQ pw_ltap-lgnum
* AND lgtyp EQ pw_ltap-vltyp
* AND zrow EQ l_zrow
* AND zlev EQ l_zlev.
* IF sy-subrc NE 0.
* CLEAR lw_zzw16-znew.
* ENDIF.
* lw_zzw16-lgnum = pw_ltap-lgnum.
* lw_zzw16-lgtyp = pw_ltap-vltyp.
* lw_zzw16-zrow = l_zrow.
* lw_zzw16-zlev = l_zlev.
* INSERT lw_zzw16 INTO TABLE t_zzw16.
* ENDIF.
* IF lw_zzw16-znew IS INITIAL.
* RETURN.
* ENDIF.
* pw_ltap-znew = lw_zzw16-znew.
* pw_ltap-vlpla_upd(3) = lw_zzw16-znew.
*ENDFORM.
*"End of F100_GET_VLPLA
"Begin of F100_GET_SEQ
*&---------------------------------------------------------------------*
*& Form f100_get_sequence
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PW_LTAP text
*----------------------------------------------------------------------*
*FORM f100_get_sequence CHANGING pw_ltap TYPE zzw2r006_ltap.
* DATA lw_zzw17 LIKE LINE OF t_zzw17.
*
* READ TABLE t_zzw17 INTO lw_zzw17
* WITH TABLE KEY lgnum = pw_ltap-lgnum
* lgtyp = pw_ltap-vltyp
* zsbin = pw_ltap-vlpla_upd
* TRANSPORTING zseq.
* IF sy-subrc NE 0.
* SELECT SINGLE zseq INTO lw_zzw17-zseq
* FROM zzw17
* WHERE lgnum EQ pw_ltap-lgnum
* AND lgtyp EQ pw_ltap-vltyp
* AND zsbin EQ pw_ltap-vlpla_upd.
* IF sy-subrc NE 0.
* lw_zzw17-zseq = '9999999'. " if not found => at the end
* ENDIF.
* lw_zzw17-lgnum = pw_ltap-lgnum.
* lw_zzw17-lgtyp = pw_ltap-vltyp.
* lw_zzw17-zsbin = pw_ltap-vlpla_upd.
* INSERT lw_zzw17 INTO TABLE t_zzw17.
* ENDIF.
* IF lw_zzw17-zseq IS INITIAL.
* RETURN.
* ENDIF.
* pw_ltap-zseq = lw_zzw17-zseq.
*ENDFORM.
"End of F100_GET_SEQ
*>>>End of YRA
*&---------------------------------------------------------------------*
*& Form d0100_get_outtab
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_get_outtab .
DATA: ls_outtab TYPE g_ty_s_outtab.
PERFORM f100_select_data.
PERFORM f200_data_treatment.
gt_outtab_target[] = gt_outtab_source[].
*&---------------------------------------------------------------------*
*& Form d0100_event_ondrag
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_event_ondrag USING e_row TYPE lvc_s_row
e_column TYPE lvc_s_col
e_dragdropobj TYPE REF TO
cl_dragdropobject. "#EC *
IF gs_test-info_popup_once EQ con_true.
READ TABLE gs_test-events_info_popup INTO l_event
WITH KEY table_line = 'ONDRAG'.
IF sy-subrc NE 0.
INSERT 'ONDRAG'
INTO gs_test-events_info_popup INDEX 1.
MESSAGE i000(0k) WITH TEXT-t01.
ENDIF.
ELSEIF gs_test-no_info_popup EQ space.
MESSAGE i000(0k) WITH TEXT-t01.
ENDIF.
CASE e_dragdropobj->dragsourcectrl.
WHEN gr_grid_d0100_source.
READ TABLE gt_outtab_source INTO ls_outtab INDEX e_row-index.
WHEN gr_grid_d0100_target.
READ TABLE gt_outtab_target INTO ls_outtab INDEX e_row-index.
ENDCASE.
IF sy-subrc EQ 0.
l_obj->line = ls_outtab.
l_obj->index = e_row-index.
e_dragdropobj->object = l_obj.
ENDIF.
*&---------------------------------------------------------------------*
*& Form d0100_event_ondrop
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_event_ondrop USING e_row TYPE lvc_s_row
e_column TYPE lvc_s_col
e_dragdropobj TYPE REF TO
cl_dragdropobject. "#EC *
IF gs_test-info_popup_once EQ con_true.
READ TABLE gs_test-events_info_popup INTO l_event
WITH KEY table_line = 'ONDROP'.
IF sy-subrc NE 0.
INSERT 'ONDROP'
INTO gs_test-events_info_popup INDEX 1.
MESSAGE i000(0k) WITH TEXT-t02.
ENDIF.
ELSEIF gs_test-no_info_popup EQ space.
MESSAGE i000(0k) WITH TEXT-t02.
ENDIF.
IF e_row-index IS INITIAL.
e_row-index = 1.
ENDIF.
*&---------------------------------------------------------------------*
*& Form d0100_event_ondropcomplete
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_event_ondropcomplete USING e_row TYPE lvc_s_row
e_column TYPE lvc_s_col
e_dragdropobj TYPE REF TO
cl_dragdropobject. "#EC *
IF gs_test-info_popup_once EQ con_true.
READ TABLE gs_test-events_info_popup INTO l_event
WITH KEY table_line = 'ONDROPCOMPLETE'.
IF sy-subrc NE 0.
INSERT 'ONDROPCOMPLETE'
INTO gs_test-events_info_popup INDEX 1.
MESSAGE i000(0k) WITH TEXT-t03.
ENDIF.
ELSEIF gs_test-no_info_popup EQ space.
MESSAGE i000(0k) WITH TEXT-t03.
ENDIF.
ls_stable-row = con_true.
ls_stable-col = con_true.
WHEN cl_dragdrop=>copy.
lr_grid ?= e_dragdropobj->droptargetctrl.
CALL METHOD lr_grid->refresh_table_display
EXPORTING
is_stable = ls_stable.
ENDCASE.
WHEN OTHERS.
CALL METHOD e_dragdropobj->abort.
ENDCASE.
ENDFORM. " d0100_event_ondropcomplete
*&---------------------------------------------------------------------*
*& Form d0100_event_ondropgetflavor
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_event_ondropgetflavor USING e_row TYPE lvc_s_row
e_column TYPE lvc_s_col
es_row_no TYPE lvc_s_roid
e_dragdropobj TYPE REF TO
cl_dragdropobject
e_flavors TYPE cndd_flavors.
"#EC *
IF gs_test-info_popup_once EQ con_true.
READ TABLE gs_test-events_info_popup INTO l_event
WITH KEY table_line = 'ONDROPGETFLAVOR'.
IF sy-subrc NE 0.
INSERT 'ONDROPGETFLAVOR'
INTO gs_test-events_info_popup INDEX 1.
MESSAGE i000(0k) WITH TEXT-t04.
ENDIF.
ELSEIF gs_test-no_info_popup EQ space.
MESSAGE i000(0k) WITH TEXT-t04.
ENDIF.
*&---------------------------------------------------------------------*
*& Form d0100_set_drag_drop
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_set_drag_drop USING i_grid TYPE i
CHANGING cs_layo TYPE lvc_s_layo
ct_fcat TYPE lvc_t_fcat.
CASE i_grid.
WHEN con_source.
l_source = con_true.
WHEN con_target.
l_target = con_true.
ENDCASE.
l_source = con_true.
l_target = con_true.
CASE gs_test-dragdrop_effect.
WHEN con_dragdrop_effect_move.
l_effect = cl_dragdrop=>move.
WHEN con_dragdrop_effect_copy.
l_effect = cl_dragdrop=>copy.
WHEN con_dragdrop_effect_all.
l_effect = cl_dragdrop=>move + cl_dragdrop=>copy.
ENDCASE.
CASE gs_test-dragdrop_type.
WHEN con_dragdrop_row.
*... setzen f�r alle Zeilen
* Im Layout wird S_DRAGDROP mit Handle gef�llt
CALL METHOD gr_dragdrop_d0100->add
EXPORTING
flavor = 'Line' "#EC NOTEXT
dragsrc = l_source
droptarget = l_target
effect = l_effect.
WHEN con_dragdrop_column.
*... setzen f�r Spalten
* Im Feldkatalog wird DRAGDROPID mit Handle gef�llt
CALL METHOD gr_dragdrop_d0100->add
EXPORTING
flavor = 'Line' "#EC NOTEXT
dragsrc = l_source
droptarget = l_target
effect = l_effect.
ls_fcat-dragdropid = l_dragdrop_handle.
LOOP AT gs_test-dragdrop_fields INTO l_field.
ls_tabcolor-fname = l_field.
ls_tabcolor-color-col = cl_gui_resources=>list_col_negative.
ls_tabcolor-color-int = 0.
ls_tabcolor-color-inv = 0.
ls_tabcolor-nokeycol = con_true.
APPEND ls_tabcolor TO lt_tabcolor.
ls_outtab-tabcolor = lt_tabcolor.
MODIFY gt_outtab_source FROM ls_outtab
TRANSPORTING tabcolor
WHERE tabcolor IS INITIAL.
WHEN con_dragdrop_cell.
*... setzen f�r Zellen
CALL METHOD gr_dragdrop_d0100->add
EXPORTING
flavor = 'Line' "#EC NOTEXT
dragsrc = l_source
droptarget = l_target
effect = l_effect.
ls_tabcolor-fname = l_field.
ls_tabcolor-color-col = cl_gui_resources=>list_col_negative.
ls_tabcolor-color-int = 0.
ls_tabcolor-color-inv = 0.
ls_tabcolor-nokeycol = con_true.
APPEND ls_tabcolor TO lt_tabcolor.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form d0100_f4_fcode
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_f4_fcode CHANGING c_value TYPE lvc_s_fcat-fieldname.
CLEAR ls_field.
ls_field-fieldname = 'FIELDNAME'.
ls_field-intlen = 30.
ls_field-leng = 30.
ls_field-outputlen = 30.
ls_field-scrtext_s = ls_field-fieldname.
ls_field-scrtext_m = ls_field-fieldname.
ls_field-scrtext_l = ls_field-fieldname.
ls_field-reptext = ls_field-fieldname.
APPEND ls_field TO lt_fields.
*&---------------------------------------------------------------------*
*& Form d0100_event_data_changed
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_event_data_changed USING er_data_changed
TYPE REF TO cl_alv_changed_data_protocol
e_onf4
e_onf4_before
e_onf4_after
i_grid TYPE i. "#EC *
IF gs_test-info_popup_once EQ con_true.
READ TABLE gs_test-events_info_popup INTO l_event
WITH KEY table_line = 'DATA_CHANGED'.
IF sy-subrc NE 0.
INSERT 'DATA_CHANGED'
INTO gs_test-events_info_popup INDEX 1.
MESSAGE i000(0k) WITH TEXT-001
l_text3
l_text1
l_text2.
ENDIF.
ELSEIF gs_test-no_info_popup EQ space.
MESSAGE i000(0k) WITH TEXT-001
l_text3
l_text1
l_text2.
ENDIF.
*&---------------------------------------------------------------------*
*& Form d0100_event_data_changed_finis
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM d0100_event_data_changed_finis . "#EC *
IF gs_test-info_popup_once EQ con_true.
READ TABLE gs_test-events_info_popup INTO l_event
WITH KEY table_line = 'DATA_CHANGED_FINISHED'.
IF sy-subrc NE 0.
INSERT 'DATA_CHANGED_FINISHED'
INTO gs_test-events_info_popup INDEX 1.
MESSAGE i000(0k) WITH TEXT-002.
ENDIF.
ELSEIF gs_test-no_info_popup EQ space.
MESSAGE i000(0k) WITH TEXT-002.
ENDIF.