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

REPORT z05sapscript02_03.

************************************************************************
*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

PERFORM write_form2. "VOO"


ENDLOOP.
*----------------------------------------------------------------------*
PERFORM write_form3."RODAPE"
PERFORM close_form.
ENDFORM.
*&---------------------------------------------------------------------*
*&
Form open_form
*&---------------------------------------------------------------------*
*
ABRE O FORMULRIO DO SAPSCRIPT
*----------------------------------------------------------------------*
FORM open_form.
MOVE: 'LOCL' TO itcpo-tddest, "define impressora impressora
' '
TO itcpo-tdimmed, "Impresso imediato
' '
TO itcpo-tddelete, "deleta spool de impresso
p_exibi TO itcpo-tdpreview,"exibe antes da impresso
' '
TO itcpo-tdgetotf. "para sair
*----------------------------------------------------------------------*
CALL FUNCTION 'OPEN_FORM'
EXPORTING
device
= 'PRINTER'
dialog
= 'X'
form
= 'Z05REL_SAPSCR_03'
language
= 'E'
options
= itcpo
EXCEPTIONS
canceled
= 1
device
= 2
form
= 3
options
= 4
unclosed
= 5
mail_options
= 6
archive_error
= 7
invalid_fax_number
= 8
more_params_needed_in_batch = 9
spool_error
= 10
OTHERS
= 11.
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.

" open_form

*&---------------------------------------------------------------------*
*&
Form write_form
*&---------------------------------------------------------------------*
*
FORM DO TITULO DO SAPSCRIPT
*----------------------------------------------------------------------*
FORM write_form.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
element

= 'TITU' "IMPRESSAO DO SAPSCRIPT

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

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