Академический Документы
Профессиональный Документы
Культура Документы
************************************************************************
*F-LINO
*RAFAEL MUNHOZ
*05/10/2005
*EXERCICIO DE SAPSCRIPT
************************************************************************
TABLES:spfli,sflight,scarr,itcpo.
*DECLRACAO DAS VARIAVEIS
DATA:v_hora LIKE sy-uzeit,
v_data LIKE sy-datum,
v_prog LIKE sy-repid,
v_usur LIKE sy-uname,
v_resp(15) TYPE c,
v_carn LIKE scarr-carrname,"ARMAZENA O NOME E UM CHAR
v_cont TYPE i,
v_tot TYPE i.
*DECLARACAO DA TABELA INTERNA UTILIZANDO 3 TABELAS
DATA:BEGIN OF t_dados OCCURS 0,
carrid
LIKE spfli-carrid,
connid
LIKE spfli-connid,
cityfrom LIKE spfli-cityfrom,
cityto
LIKE spfli-cityto,
deptime LIKE spfli-deptime,
arrtime LIKE spfli-arrtime,
fldate
LIKE sflight-fldate,
price
LIKE sflight-price,"PRECO
carrname LIKE scarr-carrname,"NOME DA LINHA AEREA
END OF t_dados.
INITIALIZATION.
*----------------------------------------------------------------------*
*DECLARAO DA TELA PRINCIPAL
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_carrid FOR spfli-carrid,
s_connid FOR spfli-connid.
PARAMETERS:
p_exibi TYPE c AS CHECKBOX,
p_resp LIKE v_resp.
SELECTION-SCREEN END OF BLOCK a1.
*----------------------------------------------------------------------*
*INICIO DO PROGRAMA
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM: cabecalho,
seleciona_dados.
IF p_exibi = 'X'.
PERFORM impressao_dados.
ENDIF.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&
Form seleciona_dados
*&---------------------------------------------------------------------*
*
Select da tabela interna...
*----------------------------------------------------------------------*
FORM seleciona_dados.
SELECT DISTINCT a~carrid a~connid a~cityfrom
a~cityto a~deptime a~arrtime b~fldate b~price c~carrname
FROM spfli AS a
INNER JOIN sflight AS b
ON a~carrid = b~carrid
AND a~connid = b~connid
INNER JOIN scarr AS c
ON c~carrid = a~carrid
INTO TABLE t_dados
WHERE a~carrid IN s_carrid
AND a~connid IN s_connid.
ENDFORM.
" seleciona_dados
*&---------------------------------------------------------------------*
*&
Form cabecalho
*&---------------------------------------------------------------------*
*
CABECALHO
*----------------------------------------------------------------------*
FORM cabecalho.
v_hora
v_data
v_usur
v_prog
=
=
=
=
sy-uzeit."HORA
sy-datum."DATA
sy-uname."NOME
sy-repid."NOME
ENDFORM.
DO
DO
DO
DO
SISTEMA
SISTEMA
USUARIO
PROGRAMA
" cabecalho
*&---------------------------------------------------------------------*
*&
Form impressao_dados
*&---------------------------------------------------------------------*
*
CHAMA O SAPSCRIPT DA TRANSAO SE71
*----------------------------------------------------------------------*
FORM impressao_dados.
v_cont = 0.
v_tot = 0.
PERFORM open_form."ABRE O SAPSCRIPT
LOOP AT t_dados."PERCORRE A TABELA
v_carn = t_dados-carrname."GUARDA O NOME DA COMP.AEREA
AT NEW carrid."USANDO QUEBRA
PERFORM write_form. "TITULO"
ENDAT."FECHA QUEBRA
v_cont = v_cont + 1.
v_tot = v_tot + t_dados-price."TOTAL DE PRECO POR VOOS
" open_form
*&---------------------------------------------------------------------*
*&
Form write_form
*&---------------------------------------------------------------------*
*
FORM DO TITULO DO SAPSCRIPT
*----------------------------------------------------------------------*
FORM write_form.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element
window
= 'MAIN'
EXCEPTIONS
element
= 1
function
= 2
type
= 3
unopened
= 4
unstarted
= 5
window
= 6
bad_pageformat_for_print = 7
spool_error
= 8
OTHERS
= 9.
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.
" write_form
*&---------------------------------------------------------------------*
*&
Form close_form
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM close_form.
CALL FUNCTION 'CLOSE_FORM'
EXCEPTIONS
unopened
= 1
bad_pageformat_for_print = 2
send_error
= 3
spool_error
= 4
OTHERS
= 5.
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.
" close_form
*&---------------------------------------------------------------------*
*&
Form write_form2
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
FORM write_form2.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element
window
EXCEPTIONS
element
function
type
= 'VOO'
= 'MAIN'
= 1
= 2
= 3
unopened
unstarted
window
bad_pageformat_for_print
spool_error
OTHERS
IF sy-subrc <> 0.
ENDIF.
=
=
=
=
=
=
4
5
6
7
8
9.
ENDFORM.
" write_form2
*&---------------------------------------------------------------------*
*&
Form write_form3
*&---------------------------------------------------------------------*
*
CHAMANDO O RODAPE
*----------------------------------------------------------------------*
FORM write_form3.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element
window
EXCEPTIONS
element
function
type
unopened
unstarted
window
bad_pageformat_for_print
spool_error
OTHERS
IF sy-subrc <> 0.
ENDIF.
ENDFORM.
= 'RODA'
= 'RODAP'
=
=
=
=
=
=
=
=
=
1
2
3
4
5
6
7
8
9.
" write_form3