Professional Documents
Culture Documents
y_geral,
TYPE vbrp-vbeln,
TYPE vbrp-posnr,
TYPE vbrp-vbelv,
m
erdat TYPE vbrk-erdat,
netwr TYPE vbrk-netwr,
oeda do documento
kunrg TYPE vbrk-kunrg,
mwsbk TYPE vbrk-mwsbk,
to
xblnr TYPE vbrk-xblnr,
name1 TYPE kna1-name1,
stras TYPE kna1-stras,
ort01 TYPE kna1-ort01,
pstlz TYPE kna1-pstlz,
refkey TYPE j_1bnflin-refkey,
END OF y_geral,
BEGIN OF y_motivo,
vbeln TYPE vbak-vbeln,
augru TYPE vbak-augru,
END OF y_motivo,
BEGIN OF y_docdat,
docnum TYPE j_1bnflin-docnum,
refkey TYPE j_1bnflin-refkey,
docdat TYPE j_1bnfdoc-docdat,
N documento de referncia
Nome 1
Rua e n
Local
Cdigo postal
" N documento
" Referncia ao documento de origem
" Data do documento
END OF y_docdat.
*=======================================================================
* Tabela Interna
*=======================================================================
DATA:
t_geral
t_motivo
t_docdat
t_dados
TYPE
TYPE
TYPE
TYPE
TABLE
TABLE
TABLE
TABLE
OF
OF
OF
OF
y_geral,
y_motivo,
y_docdat,
zest_dados.
*=======================================================================
* Work Area
*=======================================================================
DATA:
w_geral
w_motivo
w_dados
w_docdat
TYPE
TYPE
TYPE
TYPE
y_geral,
y_motivo,
zest_dados,
y_docdat.
*=======================================================================
* Constantes
*=======================================================================
CONSTANTS:
c_flag
*=======================================================================
* Tela de Seleo
* text-001 = Parmetros de Seleo
*=======================================================================
SELECTION-SCREEN BEGIN OF BLOCK bloc1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_doc FOR vbrp-vbeln.
"Documento de faturamento
*=======================================================================
* Subrotinas
*=======================================================================
*&---------------------------------------------------------------------*
*&
Form zf_seleciona_dados
*&---------------------------------------------------------------------*
* Selecionar os dados
*----------------------------------------------------------------------*
FORM zf_seleciona_dados.
SELECT
vbrp~vbeln
vbrp~posnr
vbrp~vbelv
vbrk~erdat
vbrk~netwr
vbrk~kunrg
vbrk~mwsbk
vbrk~xblnr
kna1~name1
kna1~stras
kna1~ort01
kna1~pstlz
vbrp~vbeln IN s_doc.
" zf_seleciona_dados
*&---------------------------------------------------------------------*
*&
Form zf_montar_tabela
*&---------------------------------------------------------------------*
* Montar uma tabela para juntar os dados
*----------------------------------------------------------------------*
FORM zf_montar_tabela.
DATA: l_credito TYPE vbrk-netwr.
CHECK t_geral IS NOT INITIAL.
SORT t_geral BY vbelv.
CHECK t_motivo IS NOT INITIAL.
SORT t_motivo BY vbeln.
LOOP AT t_geral INTO w_geral.
* Movendo os dados da tabela interna geral
MOVE: w_geral-vbeln TO w_dados-vbeln,
w_geral-erdat TO w_dados-erdat,
w_geral-kunrg TO w_dados-kunrg,
w_geral-xblnr TO w_dados-xblnr,
w_geral-stras TO w_dados-stras,
w_geral-ort01 TO w_dados-ort01,
w_geral-pstlz TO w_dados-pstlz.
l_credito = w_geral-netwr + w_geral-mwsbk.
WRITE l_credito TO w_dados-valor CURRENCY 'BRL'.
SHIFT w_dados-valor LEFT DELETING LEADING space.
* Movendos os dados da tabela interna motivo
IF w_geral-vbelv IS NOT INITIAL.
READ TABLE t_motivo INTO w_motivo
WITH KEY vbeln = w_geral-vbelv.
IF sy-subrc IS INITIAL.
MOVE: w_motivo-augru TO w_dados-augru.
ENDIF.
ENDIF.
* Movendo os dados da tabela interna docnum
IF w_geral-refkey IS NOT INITIAL.
READ TABLE t_docdat INTO w_docdat
WITH KEY refkey = w_geral-refkey.
IF sy-subrc IS INITIAL.
MOVE: w_docdat-docdat TO w_dados-docdat.
ENDIF.
ENDIF.
APPEND w_dados TO t_dados.
CLEAR: l_credito, w_dados.
ENDLOOP.
ENDFORM.
" zf_montar_tabela
*&---------------------------------------------------------------------*
*&
Form zf_imprimir_formulario
*&---------------------------------------------------------------------*
* Chama formulrio Smartform para impresso
* e001: Erro ao gerar formulrio para impresso
*----------------------------------------------------------------------*
FORM zf_imprimir_formulario.
DATA: l_name TYPE rs38l_fnam.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname
= 'ZVAN_SMARTAVISO'
IMPORTING
fm_name
= l_name
EXCEPTIONS
no_form
= 1
no_function_module = 2
OTHERS
= 3.
IF sy-subrc <> 0.
MESSAGE e001(zvan).
"Erro ao gerar formulrio para impresso.
ENDIF.
CALL FUNCTION l_name
TABLES
t_dados
= t_dados
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error
= 3
user_canceled
= 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.
" zf_imprimir_formulario