Professional Documents
Culture Documents
*&---------------------------------------------------------------------*
*& Tabela Interna
*&---------------------------------------------------------------------*
DATA: it_liq_contas_pagar TYPE TABLE OF zfist_liq_contas_pagar.
*&---------------------------------------------------------------------*
*& Estrutura
*&---------------------------------------------------------------------*
DATA: st_liq_contas_pagar TYPE zfist_liq_contas_pagar.
*&---------------------------------------------------------------------*
*& Variável
*&---------------------------------------------------------------------*
DATA: v_okcode TYPE sy-ucomm.
*&---------------------------------------------------------------------*
*& ALV
*&---------------------------------------------------------------------*
* Objeto
DATA: o_grid TYPE REF TO cl_gui_alv_grid,
* Tabela de definições da ALV
it_fieldcat TYPE lvc_t_fcat,
* Estrutura de definições da ALV
st_fieldcat LIKE LINE OF it_fieldcat.
* Classes
CLASS lcl_eventos_alv DEFINITION DEFERRED.
*&---------------------------------------------------------------------*
*& CLASS lcl_eventos_alv DEFINITION
*&---------------------------------------------------------------------*
CLASS lcl_eventos_alv DEFINITION FINAL.
PUBLIC SECTION.
METHODS:
handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id e_column_id.
*----------------------------------------------------------------------*
* CLASS lcl_eventos_alv IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_eventos_alv IMPLEMENTATION.
METHOD handle_hotspot_click.
PERFORM f_hotspot_click USING e_row_id e_column_id.
ENDMETHOD. "handle_hotspot_click
*&---------------------------------------------------------------------*
*& Processo
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM seleciona_constante.
PERFORM selecionar_dados.
PERFORM monta_saida.
END-OF-SELECTION.
IF NOT it_liq_contas_pagar[] IS INITIAL.
CALL SCREEN '9000'.
ELSE.
MESSAGE 'Nenhum dado selecionado!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
*&---------------------------------------------------------------------*
*& Module STATUS_9000 OUTPUT
*&---------------------------------------------------------------------*
MODULE STATUS_9000 OUTPUT.
PERFORM exibe_alv.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_9000 INPUT
*&---------------------------------------------------------------------*
MODULE USER_COMMAND_9000 INPUT.
CASE v_okcode.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'EXIT'.
LEAVE TO SCREEN 0.
WHEN 'CANC'.
LEAVE TO SCREEN 0.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form F_HOTSPOT_CLICK
*&---------------------------------------------------------------------*
FORM f_hotspot_click USING p_row_id TYPE lvc_s_row
p_column_id TYPE lvc_s_col.
IF sy-subrc = 0.
SET PARAMETER ID 'LIF' FIELD wa_dados-lifnr.
CALL TRANSACTION 'MK03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
* Documento contábil
IF p_column_id = 'BELNR'.
IF sy-subrc = 0.
SET PARAMETER ID 'BLN' FIELD wa_dados-belnr.
SET PARAMETER ID 'BUK' FIELD wa_dados-bukrs.
SET PARAMETER ID 'GJR' FIELD wa_dados-gjahr.
CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& Form EXIBE_ALV
*&---------------------------------------------------------------------*
FORM EXIBE_ALV .
* Monta fieldcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'ZFIST_LIQ_CONTAS_PAGAR'
CHANGING
ct_fieldcat = it_fieldcat.
* Registra eventos
CREATE OBJECT o_eventos_alv.
IF o_eventos_alv IS BOUND.
SET HANDLER o_eventos_alv->handle_hotspot_click FOR o_grid.
ENDIF.