Вы находитесь на странице: 1из 5

REPORT z06curso_for_all_15.

*----------------------------------------------------------------------*
*TABELA TRANSPARENTE
*----------------------------------------------------------------------*
TABLES:spfli,sflight.
*----------------------------------------------------------------------*
*DECLARAA DE VARIAVEIS E CONSTANTES
*----------------------------------------------------------------------*
CONSTANTS: c_carrid(1)
TYPE c VALUE '1',
c_connid(1)
TYPE c VALUE '8',
c_countryfr(2) TYPE c VALUE '15',
c_cityfrom(2) TYPE c VALUE '25',
c_airpfrom(2) TYPE c VALUE '46',
c_countryto(2) TYPE c VALUE '55',
c_cityto(2)
TYPE c VALUE '61',
c_airpto(2)
TYPE c VALUE '82',
c_fltime(2)
TYPE c VALUE '89',
c_deptime(3) TYPE c VALUE '100',
c_arrtime(3) TYPE c VALUE '109',
c_distance(3) TYPE c VALUE '118',
c_distid(3)
TYPE c VALUE '130',
c_fltype(3)
TYPE c VALUE '134',
c_period(3)
TYPE c VALUE '138',
*----------------------------------------------------------------------*
*SFLIGHT
*----------------------------------------------------------------------*
c_fldate(1)
TYPE c VALUE '8',
c_price(2)
TYPE c VALUE '19',
c_currency(2) TYPE c VALUE '34',
c_planetype(2) TYPE c VALUE '41',
c_seatsmax(2) TYPE c VALUE '52',
c_seatsocc(2) TYPE c VALUE '63',
c_paymentsum(2) TYPE c VALUE '74'.
DATA: v_tvoos TYPE i,
v_cont(12) TYPE c.
*----------------------------------------------------------------------*
*DECLARAO DA TABELA INTERNA DO SISTEMA
*----------------------------------------------------------------------*
DATA: BEGIN OF t_dados OCCURS 0,
carrid
connid
countryfr
cityfrom
airpfrom
countryto
cityto
airpto
fltime
deptime
arrtime
distance
distid
fltype
period
fldate
price

LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE
LIKE

spfli-carrid,
spfli-connid,
spfli-countryfr,
spfli-cityfrom,
spfli-airpfrom,
spfli-countryto,
spfli-cityto,
spfli-airpto,
spfli-fltime,
spfli-deptime,
spfli-arrtime,
spfli-distance,
spfli-distid,
spfli-fltype,
spfli-period,
sflight-fldate,
sflight-price,

currency
planetype
seatsmax
seatsocc
paymentsum

LIKE
LIKE
LIKE
LIKE
LIKE

sflight-currency,
sflight-planetype,
sflight-seatsmax,
sflight-seatsocc,
sflight-paymentsum,

END OF t_dados.
*----------------------------------------------------------------------*
*TELA INICIAL E DE SELEO DO SISTEMA
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_carrid FOR spfli-carrid,
s_connid FOR spfli-connid,
s_fldate FOR sflight-fldate.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETER: p_excel TYPE c AS CHECKBOX,
p_path LIKE rlgrap-filename DEFAULT 'c:\CURSOABAP\VOO.XLS'.
SELECTION-SCREEN END OF BLOCK b2.

*----------------------------------------------------------------------*
*INICIO DA PARAMETRIZAO "COLOCO O CABECALHO OU APRESENTAA
*----------------------------------------------------------------------*
TOP-OF-PAGE.
PERFORM cabecalho.
END-OF-PAGE.
*----------------------------------------------------------------------*
*INICIO DO PROGRAMA "COLOCO OS PERFORMS"
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM: seleciona_dados,
imprimi_dados.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&
Form CABECALHO
*&---------------------------------------------------------------------*
*
CABECALHO DO SISTEMA
*----------------------------------------------------------------------*
FORM cabecalho.
FORMAT COLOR COL_KEY INTENSIFIED.
WRITE: 'NOME = FLINO - Solues em TI',
/'DATA = ', sy-datum,
/'HORA = ', sy-uzeit,
/'USUARIO = ', sy-uname,
/'PROGRAMA = ', sy-repid.
ULINE.
ENDFORM.

" CABECALHO

*&---------------------------------------------------------------------*
*&
Form SELECIONA_DADOS
*&---------------------------------------------------------------------*
*
SELECIONA DADOS DA TABELA INTERNA
*----------------------------------------------------------------------*
FORM seleciona_dados.
SELECT a~carrid a~connid a~countryfr a~cityfrom a~airpfrom
a~countryto a~cityto a~airpto a~fltime a~deptime a~arrtime a~distance
a~distid a~fltype a~period b~fldate b~price
b~currency b~planetype b~seatsmax b~seatsocc b~paymentsum
FROM spfli AS a
INNER JOIN sflight AS b
ON a~carrid = b~carrid
AND a~connid = b~connid
INTO TABLE t_dados
WHERE a~carrid IN s_carrid
AND a~connid IN s_connid
AND b~fldate IN s_fldate.
ENDFORM.

" SELECIONA_DADOS

*&---------------------------------------------------------------------*
*&
Form IMPRIMI_DADOS
*&---------------------------------------------------------------------*
*
IMPRIMI OS DADOS NA TELA
*----------------------------------------------------------------------*
FORM imprimi_dados.
IF p_excel = 'X'."CONDIO DE DOWNLOAD EXCEL
PERFORM arquivo_excel.
ENDIF.
IF t_dados[] IS INITIAL.
MESSAGE i368(00) WITH 'NENHUMA CONEXO FOI ENCONTRADA'.
ELSE.
LOOP AT t_dados."PERCORRE A TABELA
CLEAR v_tvoos."LIMPA A HEADER LINE
SKIP 1."FAIXA UNICA
FORMAT COLOR COL_NEGATIVE INTENSIFIED."COLORE OS CAMPOS DA TAB
*----------------------------------------------------------------------*
*IMPRIMI CAMPOS DA SPFLI
*----------------------------------------------------------------------*
WRITE: AT c_carrid
t_dados-carrid,
AT c_connid
t_dados-connid,
AT c_countryfr t_dados-countryfr,
AT c_cityfrom t_dados-cityfrom,
AT c_airpfrom t_dados-airpfrom,
AT c_countryto t_dados-countryto,
AT c_cityto
t_dados-cityto,
AT c_airpto
t_dados-airpto,
AT c_fltime
t_dados-fltime,

AT
AT
AT
AT
AT
AT

c_deptime
c_arrtime
c_distance
c_distid
c_fltype
c_period

t_dados-deptime,
t_dados-arrtime,
t_dados-distance,
t_dados-distid,
t_dados-fltype,
t_dados-period.

FORMAT COLOR COL_BACKGROUND."FECHA A COLOR


SORT t_dados."ORGANIZA A TABELA
LOOP AT t_dados WHERE carrid = t_dados-carrid AND
connid = t_dados-connid.
v_tvoos = v_tvoos + 1."TOTAL DE VOOS
*----------------------------------------------------------------------*
*IMPRIMI CAMPOS DA SFLIGHT
*----------------------------------------------------------------------*
WRITE: AT /c_fldate
t_dados-fldate,
AT c_price
t_dados-price,
AT c_currency t_dados-currency,
AT c_planetype t_dados-planetype,
AT c_seatsmax t_dados-seatsmax,
AT c_seatsocc t_dados-seatsocc,
AT c_paymentsum t_dados-paymentsum.
v_cont = v_cont + 1."TOTAL GERAL DE VOOS E CONEXOES
ENDLOOP.
*----------------------------------------------------------------------*
*VALOR TOTAL DA COMPANHIA AEREA
*----------------------------------------------------------------------*
WRITE: AT /c_carrid 'Total de voos desta conexo:.....', v_tvoos.
ENDLOOP.
ENDIF.
SKIP2.
ULINE.
FORMAT COLOR COL_TOTAL INTENSIFIED.
WRITE:/ 'TOTAL GERAL DE VOS DE TODAS AS CONEXES:', v_cont.
FORMAT COLOR COL_BACKGROUND.
ENDFORM.
" IMPRIMI_CAMPOS_TELA
*&---------------------------------------------------------------------*
*&
Form arquivo_excel
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM arquivo_excel.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
filename
= p_path
filetype
= 'DAT'
TABLES
data_tab
= t_dados
EXCEPTIONS
file_open_error
= 1
file_write_error
= 2
invalid_filesize
= 3

invalid_type
= 4
no_batch
= 5
unknown_error
= 6
invalid_table_width
= 7
gui_refuse_filetransfer = 8
customer_error
= 9
OTHERS
= 10.
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.

" arquivo_excel

Вам также может понравиться