Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- *xxxxxxxx*----------------------------------------------------------------------*
- * P R O J E T O <XXXXXXXXXXXXXXXXXXXXXXXX> *
- *----------------------------------------------------------------------*
- * Consultoria: LIT Solutions *
- * Responsável: Bruno Cezar S Quintiliano *
- * Solicitante: Gerson Livio *
- * Data desenv: 29/07/2019 *
- * Tipo de prg: ALV *
- * Objetivo...: Estudo de ALV com tabelas de Voo *
- *----------------------------------------------------------------------*
- * .::HISTÓRICO DE MODIFICAÇÃO::. *
- *----------------------------------------------------------------------*
- * ID | Data | Request | Alteração *
- *----------------------------------------------------------------------*
- * | | | *
- *----------------------------------------------------------------------*
- REPORT ztrr0008 NO STANDARD PAGE HEADING MESSAGE-ID 00.
- TYPE-POOLS: slis.
- *----------------------------------------------------------------------*
- * TABLES (Tabelas/estruturas do sistema) *
- *----------------------------------------------------------------------*
- TABLES: spfli,
- sflight,
- sbook,
- scustom.
- *----------------------------------------------------------------------*
- * Tipos de dados *
- *----------------------------------------------------------------------*
- TYPES: BEGIN OF ty_spfli,
- carrid TYPE spfli-carrid,
- connid TYPE spfli-connid,
- countryfr TYPE spfli-carrid,
- cityfrom TYPE spfli-countryfr,
- airpfrom TYPE spfli-airpfrom,
- countryto TYPE spfli-countryto,
- cityto TYPE spfli-cityto,
- airpto TYPE spfli-airpto,
- END OF ty_spfli,
- BEGIN OF ty_sflight,
- carrid TYPE sflight-carrid,
- connid TYPE sflight-connid,
- fldate TYPE sflight-fldate,
- price TYPE sflight-price,
- END OF ty_sflight,
- BEGIN OF ty_sbook,
- carrid TYPE sbook-carrid,
- connid TYPE sbook-connid,
- fldate TYPE sbook-fldate,
- bookid TYPE sbook-bookid,
- customid TYPE sbook-customid,
- custtype TYPE sbook-custtype,
- smoker TYPE sbook-smoker,
- class TYPE sbook-class,
- END OF ty_sbook,
- BEGIN OF ty_scustom,
- id TYPE scustom-id,
- name TYPE scustom-name,
- form TYPE scustom-form,
- END OF ty_scustom,
- BEGIN OF ty_saida,
- carrid TYPE sbook-carrid,
- connid TYPE sbook-connid,
- fldate TYPE sbook-fldate,
- customid TYPE sbook-customid,
- id TYPE scustom-id,
- name TYPE scustom-name,
- form TYPE scustom-form,
- END OF ty_saida.
- *----------------------------------------------------------------------*
- * Tabelas internas *
- *----------------------------------------------------------------------*
- DATA: t_spfli TYPE TABLE OF ty_spfli.
- DATA: t_sflight TYPE TABLE OF ty_sflight.
- DATA: t_sbook TYPE TABLE OF ty_sbook.
- DATA: t_scustom TYPE TABLE OF ty_scustom.
- DATA: t_saida TYPE TABLE OF ty_saida.
- DATA: t_fieldcat TYPE slis_t_fieldcat_alv.
- DATA: t_events TYPE slis_t_event.
- DATA: t_list_top_of_page TYPE slis_t_listheader.
- *----------------------------------------------------------------------*
- * Variáveis e Workareas *
- *----------------------------------------------------------------------*
- DATA: wv_repid LIKE sy-repid.
- *----------------------------------------------------------------------*
- * Inicializações *
- *----------------------------------------------------------------------*
- INITIALIZATION.
- wv_repid = sy-repid.
- *----------------------------------------------------------------------*
- * Tela de seleção *
- *----------------------------------------------------------------------*
- SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-s01.
- PARAMETERS p_carrid TYPE sflight-carrid OBLIGATORY.
- PARAMETERS p_connid TYPE sflight-connid OBLIGATORY.
- PARAMETERS p_fldate TYPE sflight-fldate.
- PARAMETERS p_custid TYPE sbook-customid.
- *SELECT-OPTIONS:.
- SELECTION-SCREEN END OF BLOCK b1.
- *----------------------------------------------------------------------*
- * Consistência em campos de tela de seleção *
- *----------------------------------------------------------------------*
- AT SELECTION-SCREEN.
- *----------------------------------------------------------------------*
- * Lógica principal *
- *----------------------------------------------------------------------*
- START-OF-SELECTION.
- PERFORM f_seleciona_dados.
- PERFORM f_organiza_dados.
- PERFORM f_fieldcat_init USING t_fieldcat[].
- PERFORM f_eventtab_build USING t_events[].
- PERFORM f_comment_build USING t_list_top_of_page[].
- *----------------------------------------------------------------------*
- * Saída *
- *----------------------------------------------------------------------*
- END-OF-SELECTION.
- PERFORM f_exibe_relatorio.
- FORM f_seleciona_dados. "faz a busca
- PERFORM f_sapgui_progress_indicator
- USING 'Selecionando dados. Aguarde...'.
- * Limpar tabela
- REFRESH t_sbook.
- SELECT carrid connid fldate bookid customid custtype smoker class
- FROM sbook
- INTO TABLE t_sbook
- WHERE carrid EQ p_carrid.
- IF sy-subrc EQ 0.
- SELECT carrid connid countryfr cityfrom airpfrom countryto cityto airpto
- FROM spfli
- INTO TABLE t_spfli
- FOR ALL ENTRIES IN t_sbook
- WHERE carrid EQ t_sbook-carrid.
- ENDIF.
- ENDFORM.
- *&---------------------------------------------------------------------*
- *& Form F_ORGANIZA_DADOS
- *&---------------------------------------------------------------------*
- FORM f_organiza_dados .
- IF t_sbook IS NOT INITIAL.
- ENDIF.
- ENDFORM.
- *&---------------------------------------------------------------------
- *& Form ALV
- *&---------------------------------------------------------------------
- FORM f_exibe_relatorio.
- * CHECK [] IS NOT INITIAL.
- CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
- EXPORTING
- * I_INTERFACE_CHECK = ' '
- * I_BYPASSING_BUFFER = ' '
- * I_BUFFER_ACTIVE = ' '
- i_callback_program = wv_repid
- * I_CALLBACK_PF_STATUS_SET = ' '
- * I_CALLBACK_USER_COMMAND = ' '
- * I_CALLBACK_TOP_OF_PAGE = ' '
- * I_CALLBACK_HTML_TOP_OF_PAGE = ' '
- * I_CALLBACK_HTML_END_OF_LIST = ' '
- * I_STRUCTURE_NAME =
- * I_BACKGROUND_ID = ' '
- * I_GRID_TITLE =
- * I_GRID_SETTINGS =
- * IS_LAYOUT =
- it_fieldcat = t_fieldcat
- * IT_EXCLUDING =
- * IT_SPECIAL_GROUPS =
- * IT_SORT =
- * IT_FILTER =
- * IS_SEL_HIDE =
- * I_DEFAULT = 'X'
- i_save = 'A'
- * IS_VARIANT =
- it_events = t_events
- * IT_EVENT_EXIT =
- * IS_PRINT =
- * IS_REPREP_ID =
- * I_SCREEN_START_COLUMN = 0
- * I_SCREEN_START_LINE = 0
- * I_SCREEN_END_COLUMN = 0
- * I_SCREEN_END_LINE = 0
- * I_HTML_HEIGHT_TOP = 0
- * I_HTML_HEIGHT_END = 0
- * IT_ALV_GRAPHICS =
- * IT_HYPERLINK =
- * IT_ADD_FIELDCAT =
- * IT_EXCEPT_QINFO =
- * IR_SALV_FULLSCREEN_ADAPTER =
- * IMPORTING
- * E_EXIT_CAUSED_BY_CALLER =
- * ES_EXIT_CAUSED_BY_USER =
- TABLES
- t_outtab = t_saida
- EXCEPTIONS
- program_error = 1
- OTHERS = 2.
- IF sy-subrc <> 0.
- MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
- ENDIF.
- ENDFORM.
- *----------------------------------------------------------------------*
- * Form indicação de progrsso *
- *----------------------------------------------------------------------*
- FORM f_sapgui_progress_indicator USING VALUE(pv_text).
- CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
- EXPORTING
- text = pv_text.
- ENDFORM.
- FORM f_eventtab_build USING pt_events TYPE slis_t_event.
- * Variáveis
- DATA: lf_event TYPE slis_alv_event.
- * Obter eventos permitidos para lista grid
- CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
- EXPORTING
- i_list_type = 0
- IMPORTING
- et_events = pt_events.
- * Verificar se evento foi encontrado
- * Verificar se evento foi encontrado
- LOOP AT pt_events INTO lf_event.
- CASE lf_event-name.
- * WHEN slis_ev_user_command.
- * MOVE 'F_USER_COMMAND' TO lf_event-form.
- WHEN slis_ev_top_of_page.
- MOVE 'F_TOP_OF_PAGE' TO lf_event-form.
- * WHEN slis_ev_top_of_list.
- * MOVE 'F_TOP_OF_LIST' TO lf_event-form.
- * WHEN slis_ev_end_of_page.
- * MOVE 'F_END_OF_PAGE' TO lf_event-form.
- * WHEN slis_ev_end_of_list.
- * MOVE 'F_END_OF_LIST' TO lf_event-form.
- ENDCASE.
- MODIFY pt_events FROM lf_event.
- ENDLOOP.
- *
- ENDFORM.
- *&---------------------------------------------------------------------
- *& Form cabeçalho
- *&---------------------------------------------------------------------
- FORM f_top_of_page. "#EC CALLED
- CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
- EXPORTING
- it_list_commentary = t_list_top_of_page.
- ENDFORM.
- *&---------------------------------------------------------------------
- *& Form cabecalho
- *&---------------------------------------------------------------------
- FORM f_comment_build USING pt_top_of_page TYPE slis_t_listheader.
- * Variáveis
- DATA: lf_line TYPE slis_listheader.
- DATA: lv_data_hd(30),
- lv_data(10),
- lv_hora(08).
- *
- * Cabeçalho
- CLEAR lf_line.
- lf_line-key = 'Título:'.
- lf_line-typ = 'S'.
- lf_line-info = sy-title.
- APPEND lf_line TO pt_top_of_page.
- * Informações
- * Montar data - hora
- CLEAR lf_line.
- lf_line-typ = 'S'.
- lf_line-key = 'Report'.
- lf_line-info = sy-repid.
- APPEND lf_line TO pt_top_of_page.
- * Formatar data - hora
- WRITE sy-datum TO lv_data.
- WRITE sy-uzeit TO lv_hora.
- CONCATENATE lv_data '-' lv_hora INTO lv_data_hd SEPARATED BY space.
- * Montar data - hora
- CLEAR lf_line.
- lf_line-typ = 'S'.
- lf_line-key = 'Data - Hora'.
- lf_line-info = lv_data_hd.
- APPEND lf_line TO pt_top_of_page.
- * Comentário
- CLEAR lf_line.
- lf_line-typ = 'A'.
- lf_line-info = 'Relatorio sobre voo x passageiro'.
- APPEND lf_line TO pt_top_of_page.
- ENDFORM.
- *&---------------------------------------------------------------------
- *& Form monta_alv
- *&---------------------------------------------------------------------
- FORM f_fieldcat_init USING pt_fieldcat TYPE slis_t_fieldcat_alv.
- * Estruturas
- DATA: lf_fieldcat TYPE slis_fieldcat_alv.
- * Limpar tabela
- CLEAR pt_fieldcat[].
- PERFORM:
- f_add_fieldcat TABLES pt_fieldcat USING 'CARRID' 'SBOOK' '5' ,
- f_add_fieldcat TABLES pt_fieldcat USING 'CONNID' 'SBOOK' '8' ,
- f_add_fieldcat TABLES pt_fieldcat USING 'FLDATE' 'SBOOK' '9' ,
- f_add_fieldcat TABLES pt_fieldcat USING 'BOOKID' 'SBOOK' '8' ,
- f_add_fieldcat TABLES pt_fieldcat USING 'CUSTOMID' 'SBOOK' '8' ,
- f_add_fieldcat TABLES pt_fieldcat USING 'CUSTTYPE' 'SBOOK' '3' ,
- f_add_fieldcat TABLES pt_fieldcat USING 'SMOKER' 'SBOOK' '5' ,
- f_add_fieldcat TABLES pt_fieldcat USING 'CLASS' 'SBOOK' '5' .
- ENDFORM.
- *&---------------------------------------------------------------------
- *& Form add_fieldcat
- *&---------------------------------------------------------------------
- FORM f_add_fieldcat TABLES pt_fieldcat TYPE slis_t_fieldcat_alv
- USING p_fieldname
- p_ref_tabname
- p_outputlen.
- DATA: lf_fieldcat TYPE slis_fieldcat_alv.
- CLEAR lf_fieldcat.
- lf_fieldcat-fieldname = p_fieldname. " Nome do Campo
- lf_fieldcat-ref_tabname = p_ref_tabname. " Tab. de Referência
- lf_fieldcat-hotspot = 'X'. " Indicador de ativo
- lf_fieldcat-outputlen = p_outputlen.
- APPEND lf_fieldcat TO pt_fieldcat. " Gravar na tab. config.
- ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement