Académique Documents
Professionnel Documents
Culture Documents
* Open Mind IT *
* Programa : Z_TESTE_BRUNO_EX01 *
* Funo : Exibio de Relatrio de Vos com Horrios - ALV Simples *
* Analista : <Fulano de Tal> *
* Autor : Bruno Santos *
* Data : 26.05.2014 *
*======================================================================*
* Log de Modificaes: *
*======================================================================*
* Data |Descrio |Autor *
* | | *
*======================================================================*
REPORT z_teste_bruno_ex02.
*======================================================================*
* CONSTANTES
*======================================================================*
TABLES: sflight, spfli.
*======================================================================*
* VARIANTES GLOBAIS
*======================================================================*
DATA: vg_campo(50) TYPE c.
*======================================================================*
* ESTRUTURAS
*======================================================================*
TYPES:
"Estrutura de Vo
BEGIN OF y_sflight,
carrid TYPE sflight-carrid,
connid TYPE sflight-connid,
fldate TYPE sflight-fldate,
END OF y_sflight,
*======================================================================*
* TABELAS INTERNAS
*======================================================================*
DATA: t_sflight TYPE TABLE OF y_sflight,
t_spfli TYPE TABLE OF y_spfli,
t_saida TYPE TABLE OF y_saida,
t_fieldcat TYPE slis_t_fieldcat_alv,
t_sort TYPE slis_t_sortinfo_alv.
*======================================================================*
* WORK AREAS
*======================================================================*
DATA: wa_sflight TYPE y_sflight,
wa_spfli TYPE y_spfli,
wa_saida TYPE y_saida,
wa_fieldcat TYPE slis_fieldcat_alv,
wa_layout TYPE slis_layout_alv,
wa_sort TYPE slis_sortinfo_alv.
*======================================================================*
* TELA DE SELEO
*======================================================================*
* Parmetros de Seleo
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
"Denominao breve da companhia area
s_carrid FOR sflight-carrid,
"Cdigo da conexo de vo individual
s_connid FOR sflight-connid.
*======================================================================*
* INICIALIZAO
*======================================================================*
INITIALIZATION.
*======================================================================*
* INCIO DO PROCESSAMENTO
*======================================================================*
START-OF-SELECTION.
"Seleciona os dados
PERFORM seleciona_dados.
"Seleciona os Vos
SELECT carrid connid fldate
FROM sflight
INTO TABLE t_sflight
WHERE carrid IN s_carrid
AND connid IN s_connid.
IF sy-subrc = 0.
"Seleciona os Vos
SELECT carrid connid cityfrom airpfrom cityto
airpto deptime arrtime
FROM spfli
INTO TABLE t_spfli
FOR ALL ENTRIES IN t_sflight
WHERE carrid EQ t_sflight-carrid
AND connid EQ t_sflight-connid.
ENDIF.
wa_saida-connid = wa_sflight-connid.
wa_saida-fldate = wa_sflight-fldate.
wa_saida-cityfrom = wa_spfli-cityfrom.
wa_saida-airpfrom = wa_spfli-airpfrom.
wa_saida-cityto = wa_spfli-cityto.
wa_saida-airpto = wa_spfli-airpto.
wa_saida-deptime = wa_spfli-deptime.
wa_saida-arrtime = wa_spfli-arrtime.
ENDIF.
ENDLOOP.
"Exibe o ALV
PERFORM exibe_alv.
ELSE.
"Mensagem de Aviso
MESSAGE 'No foram encontradas informaes de vos.' TYPE 'I'.
ENDIF.
* 3 coluna - Dt Vo:
CLEAR wa_fieldcat.
wa_fieldcat-fieldname = 'FLDATE'. " Campo Tabela Interna
wa_fieldcat-tabname = 'T_SAIDA'. " Tabela Interna
* wa_fieldcat-ref_tabname = 'MATNR'. " Campo Tabela Standard
* wa_fieldcat-ref_fieldname = 'MARA'. " Tabela Standard
wa_fieldcat-reptext_ddic = 'Dt Vo'. "Ttulo da Coluna
* wa_fieldcat-hotspot = 'X'. " Define Hotspot
wa_fieldcat-just = 'C'. " (R)ight (L)eft (C)ent
wa_fieldcat-outputlen = 10. " Largura da Coluna
wa_sort-spos = '02'.
wa_sort-fieldname = 'CONNID' .
wa_sort-tabname = 'T_SAIDA'.
wa_sort-group = 'X'.
wa_sort-up = 'X'.
wa_sort-spos = '03'.
wa_sort-fieldname = 'FLDATE' .
wa_sort-tabname = 'T_SAIDA'.
wa_sort-group = 'X'.
wa_sort-up = 'X'.
DATA: tot_regtxt(4),
vl_data(10),
vl_hora(08).
CONCATENATE vl_data+6(2)'/'
vl_data+4(2)'/'
vl_data(4)
INTO vl_data.
CONCATENATE vl_hora(2)':'
vl_hora+2(2)':'
vl_hora+4(2)':'
INTO vl_hora.
vl_repid = sy-repid.
"Escreve cabealho
CLEAR: wa_alv_header.
REFRESH: t_alv_header.
"Escreve linha 01
wa_alv_header-typ = 'H'.
wa_alv_header-info = 'Relatrio de Vos'.
"Escreve linha 03
wa_alv_header-typ = 'S'.
wa_alv_header-key = 'Hora: '.
wa_alv_header-info = vl_hora.
"Escreve linha 05
wa_alv_header-typ = 'S'.
wa_alv_header-key = 'Usurio: '.
wa_alv_header-info = sy-uname.
ENDIF.
*======================================================================*
* FORM AT_USER_COMMAND
*======================================================================*
* Trata o que ir ser feito quando o usurio clicar nas colunas
*======================================================================*
FORM user_command USING ucomm LIKE sy-ucomm
selfield TYPE kkblo_selfield.
* Seleciona a coluna clicada
* selfield = selfield. "Selfield contem a coluna selecionada
CASE ucomm.
WHEN '&IC1'.
* L na tabela de sada
READ TABLE t_saida INTO wa_saida INDEX selfield-tabindex.
IF sy-subrc EQ 0.