Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Relatórios
Data/Hora da Publicação: 17/12/2007 00:00:00
Data/Hora Última Alteração: 10/03/2010 17:37:58
Descrição da Nota: RELATÓRIO DE PAGAMENTOS COM RECURSOS NO EXTERIOR
Sintoma
RELATÓRIO DE PAGAMENTOS COM RECURSOS NO EXTERIOR
Solução
RELATÓRIO DE PAGAMENTOS COM RECURSOS NO EXTERIOR
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05475 Data: 17/12/2007 Hora: 10:41:02
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05475
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00027
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
RELATÓRIO DE PAGAMENTOS COM RECURSOS NO EXTERIOR
----------------------------------------------------------------------------------------------------
Palavras Chave:
RELATÓRIO DE PAGAMENTOS COM RECURSOS NO EXTERIOR
----------------------------------------------------------------------------------------------------
Objetos da nota:
MESS /PWS/ZYCBM306
REPS /PWS/ZYCBR360
SHI3 /PWS/ZYCB
SHI6 /PWS/ZYCB
TABU TMENU01
TABU TMENU01R
TABU TMENU01T
TRAN /PWS/ZYCBR360
----------------------------------------------------------------------------------------------------
Modificações efetuadas em MESS /PWS/ZYCBM306
Criar mensagem na classe de mensagens /PWS/ZYCBM:
306 Não existe(m) registro(s) a ser(em) exibido(s)
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR360
* ----------------------------------------------------------------------
* PROCWORK Software
* Produto : Pw.CE - /PWS/ZYCBR360
* Módulo : CB ¿ Câmbio Exportação
* Descrição: Relatório de pagamentos com recursos no exteriro
* Help Desk: (0XX11) 5504-0270
* ----------------------------------------------------------------------
* ESTE PROGRAMA NÃO DEVE SER ALTERADO SEM PRÉVIA CONSULTA
* ----------------------------------------------------------------------
* Chamado Data Descrição
* ----------------------------------------------------------------------
* 421834 20/11/2007 Codificação Inicial
* ----------------------------------------------------------------------
REPORT /pws/zycbr360 MESSAGE-ID /pws/zycbm.
TYPE-POOLS: slis,
kkblo.
* Tabelas Transparentes
TABLES: /pws/zycbt134, "GL - Saída de Pagamento - Boletos
/pws/zycbt031, "GL - Boleto
bsad, "Tabela para exercício
/pws/zycbt124. "GL - Pagamentos e Recebimentos (Remessas)
*----------------------------------------------------------------------*
* SELECTION-OPTIONS *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
SELECT-OPTIONS: s_emp FOR /pws/zycbt134-bukrs," OBLIGATORY, "Emp.
s_div FOR /pws/zycbt031-gsberf, "Div.
s_loc FOR /pws/zycbt124-j_1bbranch, "Local
s_moe FOR /pws/zycbt134-waers, "Moeda
s_dat FOR /pws/zycbt134-dtlanc," OBLIGATORY, "Dta
s_cod FOR /pws/zycbt134-bco_ccme, "Cod.B
s_dis FOR /pws/zycbt134-disponibilidade, "Disp.
s_exe FOR bsad-gjahr. "Ano
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK b2.
*----------------------------------------------------------------------*
* Declarações de Tabelas Internas *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Tabelas Internas para ALV GRID *
*----------------------------------------------------------------------*
* Somente para ALV Grid
DATA: itab_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,
itab_sort TYPE slis_sortinfo_alv OCCURS 0 WITH HEADER LINE.
*----------------------------------------------------------------------*
* Tabelas Internas para Seleção de Dados *
*----------------------------------------------------------------------*
* Tabela: GL - Saída de Pagamento - Boletos
DATA: BEGIN OF itab_134 OCCURS 0,
nrseq LIKE /pws/zycbt134-nrseq, "Nr.Seq.
dtboleto LIKE /pws/zycbt134-dtboleto, "Data Boleto
tpproc LIKE /pws/zycbt134-tpproc, "Tp. Imposto
bukrs LIKE /pws/zycbt134-bukrs, "Empresa
waers LIKE /pws/zycbt134-waers, "Moeda
vlme LIKE /pws/zycbt134-vlme, "Valor
* lifnr LIKE /pws/zycbt134-lifnr, "Fornecedor
dtlanc LIKE /pws/zycbt134-dtlanc, "Data Pagto.
belnr_c LIKE /pws/zycbt134-belnr_c, "D.contábil
vl_pagto LIKE /pws/zycbt134-vl_pagto, "Valor pg ME
bco_ccme LIKE /pws/zycbt134-bco_ccme, "Banco ME
conta_contab LIKE /pws/zycbt134-conta_contab, "Cta contáb.
waers_ccme LIKE /pws/zycbt134-waers_ccme, "Moeda ME
disponibilidade LIKE /pws/zycbt134-disponibilidade, "Dispon.
END OF itab_134.
* Tabela: GL - Boleto
DATA: BEGIN OF itab_031 OCCURS 0,
nrseq LIKE /pws/zycbt031-nrseq, "Nr.Seq.
nrparc LIKE /pws/zycbt031-nrparc, "Nr.parcela.
dtboleto LIKE /pws/zycbt031-dtboleto, "Data
gsberf LIKE /pws/zycbt031-gsberf, "Divisão
mdcorresp LIKE /pws/zycbt031-mdcorresp, "GL-Mód.Correspond
nrcorresp LIKE /pws/zycbt031-nrcorresp, "GL-Nº Finan/Agrup
nrcorresp20 LIKE /pws/zycbt017-nrinvoic, "Nr.Seq.
tpdesp LIKE /pws/zycbt031-tpdesp, "GL - Tipo de Despesa
END OF itab_031.
DATA: BEGIN OF itab_031aux OCCURS 0,
nrseq LIKE /pws/zycbt031-nrseq, "Nr.Seq.
nrparc LIKE /pws/zycbt031-nrparc, "Nr.parcela.
dtboleto LIKE /pws/zycbt031-dtboleto, "Data
gsberf LIKE /pws/zycbt031-gsberf, "Divisão
mdcorresp LIKE /pws/zycbt031-mdcorresp, "GL-Mód.Correspond
nrcorresp LIKE /pws/zycbt031-nrcorresp, "GL-Nº Finan/Agrup
nrcorresp20 LIKE /pws/zycbt017-nrinvoic, "Nr.Seq.
tpdesp LIKE /pws/zycbt031-tpdesp, "GL - Tipo de Despesa
END OF itab_031aux.
.
* Tabela: Fornecedores
DATA: BEGIN OF itab_lfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr, "Fornecedor
name1 LIKE lfa1-name1, "Nome
END OF itab_lfa1.
* Tabela: GL - Pagamentos e Recebimentos (Remessas)
DATA : BEGIN OF itab_124 OCCURS 0,
nrseq LIKE /pws/zycbt124-nrseq, "Nr.Seq.
werks LIKE /pws/zycbt124-werks, "Centro
j_1bbranch LIKE /pws/zycbt124-j_1bbranch, "Loc.neg.
END OF itab_124.
* Tabela: CM - Período (Principal, Juros e Comissão)
DATA : BEGIN OF itab_118 OCCURS 0,
nrseq LIKE /pws/zycbt118-nrseq, "Nr.Seq.
werks LIKE /pws/zycbt118-werks_or, "Centro
j_1bbranch LIKE /pws/zycbt118-j_1bbranch, "Loc.neg.
END OF itab_118.
* Tabela: CM - Financiamento
DATA : BEGIN OF itab_112 OCCURS 0,
nrseq LIKE /pws/zycbt112-nrseq, "Nr.Seq.
werks LIKE /pws/zycbt112-werks_or, "Centro
j_1bbranch LIKE /pws/zycbt112-j_1bbranch, "Loc.neg.
END OF itab_112.
* Tabela: CA - Empréstimos
DATA : BEGIN OF itab_128 OCCURS 0,
nrseq LIKE /pws/zycbt128-nrseq, "Nr.Seq.
werks_or LIKE /pws/zycbt128-werks, "Centro
j_1bbranch LIKE /pws/zycbt128-j_1bbranch, "Loc.neg.
END OF itab_128.
* Tabela: CB - Carta de Crédito - Despesa
DATA : BEGIN OF itab_156 OCCURS 0,
nrseq LIKE /pws/zycbt156-nrseq, "Nr.Seq.
tpdesp LIKE /pws/zycbt156-tpdesp, "Tipo Despesa
werks LIKE /pws/zycbt156-werks, "Centro
j_1bbranch LIKE /pws/zycbt156-j_1bbranch, "Loc.neg.
END OF itab_156.
* Tabela: CB - Cadastro de Faturas.
DATA : BEGIN OF itab_017 OCCURS 0,
nrinvoic LIKE /pws/zycbt017-nrinvoic, "Nr.Seq.
nrparcf LIKE /pws/zycbt017-nrparcf, "Nr.parcela.
werks LIKE /pws/zycbt017-werks, "Centro
j_1bbranch LIKE /pws/zycbt017-j_1bbranch, "Loc.neg.
END OF itab_017.
* Tabela: CB - Cobrança de Juros.
DATA : BEGIN OF itab_086 OCCURS 0,
nrseq LIKE /pws/zycbt086-nrseq, "Nr.Seq.
werks LIKE /pws/zycbt086-werks, "Centro
j_1bbranch LIKE /pws/zycbt086-j_1bbranch, "Loc.neg.
END OF itab_086.
* Tabela: CE - Parâmetros Gerais.
DATA : BEGIN OF itab_037 OCCURS 0,
bukrs LIKE /pws/zycet037-bukrs, "GL-Empresa
comis_provisao LIKE /pws/zycet037-comis_provisao, "C.Pr. Faturam
END OF itab_037.
* Tabela:CE - Contabilização de Comissão de Agente.
DATA : BEGIN OF itab_013 OCCURS 0,
nrseq LIKE /pws/zycet013-nrseq, "Nr.Seq.
*? werks LIKE /pws/zycet013-werks, "Centro
j_1bbranch LIKE /pws/zycet013-j_1bbranch, "Loc.neg.
END OF itab_013.
* Tabela:GL - Dados da Comissão de Agente.
DATA : BEGIN OF itab_010 OCCURS 0,
nrseq LIKE /pws/zycet010-nrseq, "Nr.Seq.
*? werks LIKE /pws/zycet010-werks, "Centro
j_1bbranch LIKE /pws/zycet010-j_1bbranch, "Loc.neg.
END OF itab_010.
* Tabela: CB - Período de Taxas de Juros
DATA : BEGIN OF itab_002 OCCURS 0,
*? nrseq LIKE /pws/zycbt002-nrseq, "Nr.Seq.
nrseqc LIKE /pws/zycbt002-nrseqc, "Nr.Seq.
tpparc LIKE /pws/zycbt002-tpparc, "Tip Parc. Captação
nrparc LIKE /pws/zycbt002-nrparc, "N Parcela
werks_or LIKE /pws/zycbt002-werks_or, "Centro
* ?? j_1bbranch LIKE /pws/zycbt002-j_1bbranch, "Loc.neg.
END OF itab_002.
* Tabela:GL - Dados da Comissão de Agente.
DATA : BEGIN OF itab_033 OCCURS 0,
nrseq LIKE /pws/zycet033-nrseq, "Nr.Seq.
nrseq20 LIKE /pws/zycbt017-nrinvoic, "Nr.Seq.
nrpres LIKE /pws/zycet033-nrpres, "Nr.Seq.
END OF itab_033.
* Tabela: CM - Pagamento Antecipado..
DATA : BEGIN OF itab_117 OCCURS 0,
nrseq LIKE /pws/zycbt117-nrseq, "Nr.Seq.
werks LIKE /pws/zycbt117-werks, "Centro
j_1bbranch LIKE /pws/zycbt117-j_1bbranch, "Loc.neg.
END OF itab_117.
* Tabela: CM - Pagamento de Fatura a Vista
DATA : BEGIN OF itab_119 OCCURS 0,
nrseq LIKE /pws/zycbt119-nrseq, "Nr.Seq.
werks LIKE /pws/zycbt119-werks, "Centro
j_1bbranch LIKE /pws/zycbt119-j_1bbranch, "Loc.neg.
END OF itab_119.
* Tabela: CM - Assunção - Cabeçalho
DATA : BEGIN OF itab_001 OCCURS 0,
nrseq LIKE /pws/zycmt001-nrseq, "Nr.Seq.
werks LIKE /pws/zycmt001-werks, "Centro
j_1bbranch LIKE /pws/zycmt001-j_1bbranch, "Loc.neg.
END OF itab_001.
*----------------------------------------------------------------------*
* Estruturas *
*----------------------------------------------------------------------*
DATA: gs_layout TYPE slis_layout_alv, "L. saída
gs_top TYPE slis_t_listheader. "Cabeçalho
*----------------------------------------------------------------------*
* Tabelas Internas para Saída do RELATÓRIO *
*----------------------------------------------------------------------*
* Tabela de Saída
DATA: BEGIN OF itab_saida OCCURS 0,
bukrs LIKE /pws/zycbt134-bukrs, "Empresa
nrseq LIKE /pws/zycbt134-nrseq, "N.Seq.
waers LIKE /pws/zycbt134-waers, "Moeda
valor LIKE /pws/zycbt134-vlme, "Valor ME
moeda_me LIKE /pws/zycbt134-waers_ccme, "Moeda ME
valor_me LIKE /pws/zycbt134-vl_pagto, "Vlr C/C ME
gsberf LIKE /pws/zycbt031-gsberf, "Divisão
werks LIKE /pws/zycbt124-werks, "Centro
branch LIKE /pws/zycbt124-j_1bbranch, "Loc.Neg
dtlanc LIKE /pws/zycbt134-dtlanc, "Data Pag.
codigo LIKE /pws/zycbt134-bco_ccme, "Cód.Banco
name1 LIKE lfa1-name1, "Desc.Banco
conta_contab LIKE /pws/zycbt134-conta_contab, "C.Contábil
belnr LIKE /pws/zycbt134-belnr_c, "D.Contábil
dispo LIKE /pws/zycbt134-disponibilidade, "Disponib.
END OF itab_saida.
*----------------------------------------------------------------------*
* DECLARAÇÃO DE VARIÁVEIS *
*----------------------------------------------------------------------*
DATA: v_exit(1) TYPE c, "Layout relatório
v_repid TYPE sy-repid. "Programa
*----------------------------------------------------------------------*
* AT SELECTION SCREEN *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
v_repid = sy-repid.
* Validação da variante de layout de exibição
PERFORM help_variante
USING v_repid
sy-uname
CHANGING v_exit
p_vari.
*----------------------------------------------------------------------*
* INÍCIO DO PROCESSAMENTO *
*----------------------------------------------------------------------*
START-OF-SELECTION.
* Seleção de Dados
PERFORM seleciona_dados.
* Monta tabela de Saída
PERFORM monta_saida.
IF NOT itab_saida[] IS INITIAL.
* Monta layout
PERFORM layout.
ELSE.
MESSAGE i306. "Não existe(m) registro(s) a ser(em) exibido(s)
ENDIF.
*----------------------------------------------------------------------*
* END-OF-SELECTION. *
*----------------------------------------------------------------------*
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form help_variante
*&---------------------------------------------------------------------*
* Variante de Layout
*&---------------------------------------------------------------------*
FORM help_variante USING vc_repid LIKE sy-repid
vc_uname LIKE sy-uname
CHANGING vc_exit TYPE char01
p_vari LIKE disvariant-variant.
DATA: s_variant LIKE disvariant.
* popup F4 help to select a layout
s_variant-report = vc_repid.
s_variant-username = vc_uname.
CALL FUNCTION 'LVC_VARIANT_F4'
EXPORTING
is_variant = s_variant
i_save = 'A'
IMPORTING
e_exit = vc_exit
es_variant = s_variant
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1
sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF vc_exit NE 'X'.
EXPORT s_variant TO MEMORY ID 'VARI'.
p_vari = s_variant-variant.
ENDIF.
ENDIF.
ENDFORM. " help_variante
*&---------------------------------------------------------------------*
*& Form seleciona_dados
*&---------------------------------------------------------------------*
* Seleção dos dados para o Relatório
*----------------------------------------------------------------------*
FORM seleciona_dados.
* Seleciona tabela de Saída de Pagamento - Boletos
SELECT nrseq
dtboleto
tpproc
bukrs
waers
vlme
* lifnr
dtlanc
belnr_c
vl_pagto
bco_ccme
conta_contab
waers_ccme
disponibilidade
FROM /pws/zycbt134
INTO TABLE itab_134
WHERE bukrs IN s_emp AND
dtlanc IN s_dat.
* Deleta os registros que não estão de acordo com as seleções
PERFORM deleta_registros_selecao.
IF NOT itab_134[] IS INITIAL.
* Busca divisão
SELECT nrseq
nrparc
dtboleto
gsberf
mdcorresp
nrcorresp
nrcorresp
tpdesp
FROM /pws/zycbt031
INTO TABLE itab_031
FOR ALL ENTRIES IN itab_134
WHERE nrseq EQ itab_134-nrseq AND
gsberf IN s_div.
* Busca descrição do Banco através do nome do fornecedor
SELECT lifnr
name1
FROM lfa1
INTO TABLE itab_lfa1
FOR ALL ENTRIES IN itab_134
WHERE lifnr EQ itab_134-bco_ccme.
* WHERE lifnr EQ itab_134-lifnr.
* Busca centro/Local de negócio em diversas tabelas conforme MDCORRESP
IF NOT itab_031[] IS INITIAL.
PERFORM busca_centro_local.
ENDIF.
ENDIF.
ENDFORM. " seleciona_dados
*&---------------------------------------------------------------------*
*& Form monta_saida
*&---------------------------------------------------------------------*
* Monta tabela de Saída
*----------------------------------------------------------------------*
FORM monta_saida.
* Ordena as tabelas
SORT: itab_031 BY nrseq,
itab_lfa1 BY lifnr,
itab_124 BY nrseq.
LOOP AT itab_134.
CLEAR: itab_031,
itab_lfa1,
itab_124.
READ TABLE itab_031 WITH KEY nrseq = itab_134-nrseq BINARY SEARCH.
IF sy-subrc = 0.
* Divisão
itab_saida-gsberf = itab_031-gsberf.
*...Busca centro/Local de negócio em diversas tabelas conforme MDCORRESP
PERFORM ler_centrolocal_saida.
*...
ENDIF.
** READ TABLE itab_124 WITH KEY nrseq = itab_134-nrseq BINARY SEARCH.
** IF sy-subrc = 0 .
*** Centro
** itab_saida-werks = itab_124-werks.
*** Local de Negócios
** itab_saida-branch = itab_124-j_1bbranch.
* ENDIF.
* READ TABLE itab_lfa1 WITH KEY lifnr = itab_134-lifnr BINARY SEARCH.
READ TABLE itab_lfa1 WITH KEY
lifnr = itab_134-bco_ccme BINARY SEARCH.
IF sy-subrc = 0.
* Descrição do Banco
itab_saida-name1 = itab_lfa1-name1.
ENDIF.
* Empresa
itab_saida-bukrs = itab_134-bukrs.
* Seqüêncial do Boleto
itab_saida-nrseq = itab_134-nrseq.
* Moeda do Boleto
itab_saida-waers = itab_134-waers.
* Valor ME Boleto
itab_saida-valor = itab_134-vlme.
* Moeda ME
itab_saida-moeda_me = itab_134-waers_ccme.
* Valor ME
itab_saida-valor_me = itab_134-vl_pagto.
* Data de Pagamento
itab_saida-dtlanc = itab_134-dtlanc.
* Código Banco
itab_saida-codigo = itab_134-bco_ccme.
* Conta Contábil
itab_saida-conta_contab = itab_134-conta_contab .
* Documento Contábil
itab_saida-belnr = itab_134-belnr_c.
* Disponibilidade
itab_saida-dispo = itab_134-disponibilidade.
APPEND itab_saida.
CLEAR itab_saida.
ENDLOOP.
* Deletar registros fora da Seleção
PERFORM deleta_sel_saida.
* Ordenar a tabela de saída por data de pagamento
SORT itab_saida BY dtlanc.
ENDFORM. " monta_saida
*&---------------------------------------------------------------------*
*& Form layout
*&---------------------------------------------------------------------*
* Monta layout ALV
*----------------------------------------------------------------------*
FORM layout.
DATA: s_variant LIKE disvariant,
vl_repid TYPE sy-repid.
vl_repid = sy-repid.
* Efetua quebra
PERFORM quebra.
* Layout de impressão do ALV
PERFORM define_layout.
* Montagem dos campos
PERFORM monta_campos.
* Variante de layout
IF NOT p_vari IS INITIAL.
IMPORT s_variant FROM MEMORY ID 'VARI'.
ELSE.
CLEAR: s_variant.
ENDIF.
* Função para ALV
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = vl_repid
i_callback_top_of_page = 'ZF_TOP_OF_PAGE'
i_callback_pf_status_set = 'F_STATUS'
is_layout = gs_layout
it_fieldcat = itab_fieldcat[]
it_sort = itab_sort[]
i_default = 'X'
i_save = 'A'
is_variant = s_variant
TABLES
t_outtab = itab_saida
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " layout
*&---------------------------------------------------------------------*
*& Form ZF_TOP_OF_PAGE
*&---------------------------------------------------------------------*
* Cabeçalho do ALV de ORDEM
*----------------------------------------------------------------------*
FORM zf_top_of_page. "#EC CALLED
DATA: lc_data_header(33) TYPE c,
lc_data_low1(10) TYPE c,
lc_data_high1(10) TYPE c,
lc_empresa(30) TYPE c,
ls_line TYPE slis_listheader.
READ TABLE s_dat INDEX 1.
WRITE s_dat-low USING EDIT MASK '__.__.____' TO lc_data_low1.
WRITE s_dat-high USING EDIT MASK '__.__.____' TO lc_data_high1.
* Cabeçalho: EMPRESA
READ TABLE s_emp INDEX 1.
IF s_emp-low NE ' ' AND s_emp-high NE ' '.
CONCATENATE text-004 s_emp-low text-005 s_emp-high
INTO lc_empresa SEPARATED BY space.
CLEAR: ls_line, gs_top.
ls_line-typ = 'A'.
ls_line-info = lc_empresa.
APPEND ls_line TO gs_top.
ELSE.
CONCATENATE text-004 s_emp-low INTO lc_empresa
SEPARATED BY space.
CLEAR: ls_line, gs_top.
ls_line-typ = 'A'.
ls_line-info = lc_empresa.
APPEND ls_line TO gs_top.
ENDIF.
* CABEÇALHO: PERÍODO
IF NOT s_dat[] IS INITIAL.
IF s_dat-low NE ' ' AND s_dat-high NE ' '.
CONCATENATE text-003 lc_data_low1 text-005 lc_data_high1
INTO lc_data_header SEPARATED BY space.
ls_line-typ = 'A'.
ls_line-info = lc_data_header.
APPEND ls_line TO gs_top.
ELSE.
CONCATENATE text-003 lc_data_low1 INTO lc_data_header
SEPARATED BY space.
ls_line-typ = 'A'.
ls_line-info = lc_data_header.
APPEND ls_line TO gs_top.
ENDIF.
ENDIF.
IF s_dat[] IS INITIAL.
CONCATENATE text-003 'TODOS'
INTO lc_data_header SEPARATED BY space.
ls_line-typ = 'A'.
ls_line-info = lc_data_header.
APPEND ls_line TO gs_top.
ENDIF.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gs_top.
ENDFORM. " ZF_TOP_OF_PAGE
*&---------------------------------------------------------------------*
*& Form f_status
*&---------------------------------------------------------------------*
FORM f_status USING extab TYPE slis_t_extab. "#EC CALLED
SET PF-STATUS 'ZSTANDARD'.
ENDFORM. "f_status
*&---------------------------------------------------------------------*
*& Form define_layout
*&---------------------------------------------------------------------*
* Layout do ALV
*----------------------------------------------------------------------*
FORM define_layout.
gs_layout-group_change_edit = 'X'.
gs_layout-colwidth_optimize = 'X'.
gs_layout-box_tabname = 'ITAB_SAIDA'.
gs_layout-zebra = 'X'. "Listrado (Linha clara->escura)
ENDFORM. " define_layout
*&---------------------------------------------------------------------*
*& Form monta_campos
*&---------------------------------------------------------------------*
* Monta campos fieldcat
*----------------------------------------------------------------------*
FORM monta_campos.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'BUKRS'
'Empresa' 'C' '07' ' ' 'R' ' ' 'X'.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'NRSEQ'
'Seqüêncial Boleto' 'C' '20' ' ' 'R' ' ' 'X'.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'WAERS'
'Moeda Boleto' 'C' '13' ' ' 'R' ' ' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'VALOR'
'Valor ME Boleto' 'P' '16' ' ' 'R' 'X' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'MOEDA_ME'
'Moeda C/C ME' 'C' '13' ' ' 'R' ' ' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'VALOR_ME'
'Valor Pagto C/C ME' 'P' '19' ' ' 'R' 'X' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'GSBERF'
'Divisão' 'C' '13' ' ' 'R' ' ' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'WERKS'
'Centro' 'C' '5' ' ' 'R' ' ' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'BRANCH'
'Local de Negócio' 'C' '17' ' ' 'R' ' ' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'DTLANC'
'Data Pagamento' 'D' '13' ' ' 'R' ' ' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'CODIGO'
'Cód.Banco C/C ME' 'C' '19' ' ' 'R' ' ' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'NAME1'
'Desc.Banco C/C ME' 'C' '18' ' ' 'L' ' ' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'CONTA_CONTAB'
'Conta Contábil' 'C' '20' ' ' 'R' ' ' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'BELNR'
'Documento Contábil' 'C' '20' ' ' 'R' ' ' ' '.
PERFORM: inclui_campo USING 'ITAB_SAIDA' 'DISPO'
'Disponibilidade 30%/70%' 'C' '24' ' ' 'R' ' ' ' '.
ENDFORM. " monta_campos
*&---------------------------------------------------------------------*
*& Form inclui_campo
*&---------------------------------------------------------------------*
* FIELDCAT
*----------------------------------------------------------------------*
FORM inclui_campo USING value(p_tabela) value(p_campo) value(p_titcol)
value(p_tipo) value(p_tam) value(p_check)
value(p_just) value(p_soma) value(p_chave).
CLEAR itab_fieldcat.
itab_fieldcat-fieldname = p_campo. " Nome do campo
itab_fieldcat-tabname = p_tabela. " Nome da tabela
itab_fieldcat-reptext_ddic = p_titcol. " Titulo da coluna
itab_fieldcat-inttype = p_tipo. " Tipo de dado do campo
itab_fieldcat-outputlen = p_tam. " Tamanho do campo
itab_fieldcat-checkbox = p_check. " Checkbox
itab_fieldcat-just = p_just. " Alinhamento
itab_fieldcat-do_sum = p_soma. " Somatório
itab_fieldcat-key = p_chave. " Chave
APPEND itab_fieldcat.
ENDFORM. " inclui_campo
*&---------------------------------------------------------------------*
*& Form quebra
*&---------------------------------------------------------------------*
* Efetua a quebra por MOEDA ME
*----------------------------------------------------------------------*
FORM quebra.
REFRESH itab_sort.
* Quebra por moeda ME
CLEAR itab_sort.
itab_sort-spos = 1.
itab_sort-fieldname = 'MOEDA_ME'. "Nome do campo
itab_sort-tabname = 'ITAB_SAIDA'. "Nome da tabela
itab_sort-subtot = 'X'. "Subtotal
APPEND itab_sort.
ENDFORM. " quebra
*&---------------------------------------------------------------------*
*& Form deleta_registros_selecao
*&---------------------------------------------------------------------*
* Deleta os registros que não estão nas seleções
*----------------------------------------------------------------------*
FORM deleta_registros_selecao.
* Deleta os registros que não forem de acordo com o ano digitado
IF NOT s_exe[] IS INITIAL.
DELETE itab_134 WHERE NOT dtlanc(4) IN s_exe.
ENDIF.
* Deleta os registros que não forem de acordo com a moeda digitada
IF NOT s_moe[] IS INITIAL.
DELETE itab_134 WHERE NOT waers_ccme IN s_moe.
ENDIF.
* Deleta os registros que não forem de acordo com o cód.banco digitado
LOOP AT s_cod.
SHIFT s_cod-LOW LEFT DELETING LEADING '0'.
MODIFY s_cod.
ENDLOOP.
IF NOT s_cod[] IS INITIAL.
DELETE itab_134 WHERE NOT bco_ccme IN s_cod.
ENDIF.
* Deleta os registros que não forem de acordo com a disponibil.digitada
IF NOT s_dis[] IS INITIAL.
DELETE itab_134 WHERE NOT disponibilidade IN s_dis.
ENDIF.
DELETE itab_134 WHERE bco_ccme IS initial.
ENDFORM. " deleta_registros_selecao
*&---------------------------------------------------------------------*
*& Form busca_centro_local
*&---------------------------------------------------------------------*
* Obter Centro/Local de negócio conforme MDCORRESP(Mód.Correspondente)
*----------------------------------------------------------------------*
FORM busca_centro_local.
SORT itab_031 BY mdcorresp nrcorresp.
*itab_118 : GL - Despesas de Importação.
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'CD' AND mdcorresp <> 'ID'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrseq
werks
j_1bbranch
FROM /pws/zycbt118
INTO TABLE itab_118
FOR ALL ENTRIES IN itab_031aux
WHERE j_1bbranch IN s_loc AND
nrseq = itab_031aux-nrcorresp.
ENDIF.
*itab_112 : CM - Financiamento
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'IF'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrseq
werks
j_1bbranch
FROM /pws/zycbt112
INTO TABLE itab_112
FOR ALL ENTRIES IN itab_031aux
WHERE j_1bbranch IN s_loc AND
nrseq = itab_031aux-nrcorresp.
ENDIF.
*itab_128 : CA - Empréstimos
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'CE'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrseq
* tpparc
* nrparc
werks
j_1bbranch
FROM /pws/zycbt128
INTO TABLE itab_128
FOR ALL ENTRIES IN itab_031aux
WHERE j_1bbranch IN s_loc AND
nrseq = itab_031aux-nrcorresp.
ENDIF.
*itab_124 : GL - Pagamentos e Recebimentos (Remessas)
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'CP'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrseq
werks
j_1bbranch
FROM /pws/zycbt124
INTO TABLE itab_124
FOR ALL ENTRIES IN itab_031aux
WHERE j_1bbranch IN s_loc AND
nrseq = itab_031aux-nrcorresp.
ENDIF.
*itab_156 : CB - Carta de Crédito - Despesa
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'EC'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrseq
tpdesp
werks
j_1bbranch
FROM /pws/zycbt156
INTO TABLE itab_156
FOR ALL ENTRIES IN itab_031aux
WHERE j_1bbranch IN s_loc AND
nrseq = itab_031aux-nrcorresp+0(8) AND
tpdesp = itab_031aux-tpdesp.
ENDIF.
** itab_031aux[] = itab_031[].
** DELETE itab_031aux WHERE mdcorresp <> 'ED'.
**
** IF NOT itab_031aux[] IS INITIAL.
** SELECT nrseq
** tpdesp
** werks
** j_1bbranch
** FROM /pws/zycbt156
** APPENDING TABLE itab_156
** FOR ALL ENTRIES IN itab_031aux
** WHERE j_1bbranch IN s_loc AND
** nrseq = itab_031aux-nrcorresp+0(8).
** ENDIF.
*itab_086 : CB - Cobrança de Juros
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'EL'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrinvoic
nrparcf
werks
j_1bbranch
FROM /pws/zycbt017
INTO TABLE itab_017
FOR ALL ENTRIES IN itab_031aux
WHERE j_1bbranch IN s_loc AND
nrinvoic = itab_031aux-nrcorresp20 AND
nrparcf = itab_031aux-nrparc+1(2).
ENDIF.
*itab_086 : CB - Cobrança de Juros
** itab_031aux[] = itab_031[].
** DELETE itab_031aux WHERE mdcorresp <> 'EJ'.
**
** IF NOT itab_031aux[] IS INITIAL.
** SELECT nrseq
** werks
** j_1bbranch
** FROM /pws/zycbt086
** INTO TABLE itab_086
** FOR ALL ENTRIES IN itab_031aux
** WHERE j_1bbranch IN s_loc AND
** nrseq = itab_031aux-nrcorresp+0(8).
** ENDIF.
*itab_002 : CB - Período de Taxas de Juros
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'EO'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrseqc
werks
j_1bbranch
FROM /pws/zycbt001
INTO TABLE itab_001
FOR ALL ENTRIES IN itab_031aux
WHERE j_1bbranch IN s_loc AND
nrseqc = itab_031aux-nrcorresp+0(8).
ENDIF.
*itab_033 : CE - Cabeçalho do Acerto de Contas
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'EP'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrseq
nrseq
nrpres
FROM /pws/zycet033
INTO TABLE itab_033
FOR ALL ENTRIES IN itab_031aux
WHERE nrpres = itab_031aux-nrcorresp AND
pgtocamb = 'X'.
SELECT nrinvoic
nrparcf
werks
j_1bbranch
FROM /pws/zycbt017
APPENDING TABLE itab_017
FOR ALL ENTRIES IN itab_033
WHERE j_1bbranch IN s_loc AND
nrinvoic = itab_033-nrseq20.
ENDIF.
*itab_117 : CM - Pagamento Antecipado.
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'IA'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrseq
werks
j_1bbranch
FROM /pws/zycbt117
INTO TABLE itab_117
FOR ALL ENTRIES IN itab_031aux
WHERE j_1bbranch IN s_loc AND
nrseq = itab_031aux-nrcorresp.
ENDIF.
*itab_119 : CM - Pagamento de Fatura a Vista
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'IP'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrseq
werks
j_1bbranch
FROM /pws/zycbt119
INTO TABLE itab_119
FOR ALL ENTRIES IN itab_031aux
WHERE j_1bbranch IN s_loc AND
nrseq = itab_031aux-nrcorresp.
ENDIF.
*itab_119 : CM - Pagamento de Fatura a Vista
itab_031aux[] = itab_031[].
DELETE itab_031aux WHERE mdcorresp <> 'IU'.
IF NOT itab_031aux[] IS INITIAL.
SELECT nrseq
werks
j_1bbranch
FROM /pws/zycmt001
APPENDING TABLE itab_001
FOR ALL ENTRIES IN itab_031aux
WHERE j_1bbranch IN s_loc AND
nrseq = itab_031aux-nrcorresp.
ENDIF.
ENDFORM. " busca_centro_local
*&---------------------------------------------------------------------*
*& Form ler_centrolocal_saida
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM ler_centrolocal_saida.
* Ordena as tabelas
SORT: itab_001 BY nrseq,
itab_119 BY nrseq,
itab_117 BY nrseq,
itab_017 BY nrinvoic nrparcf,
itab_033 BY nrpres,
itab_086 BY nrseq,
itab_156 BY nrseq tpdesp,
itab_124 BY nrseq,
itab_128 BY nrseq,
itab_118 BY nrseq,
itab_112 BY nrseq.
CASE itab_031-mdcorresp.
WHEN 'CD' OR 'ID'.
READ TABLE itab_118 WITH KEY
nrseq = itab_031-nrcorresp BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_118-werks.
itab_saida-branch = itab_118-j_1bbranch.
ENDIF.
WHEN 'IF'.
READ TABLE itab_112 WITH KEY
nrseq = itab_031-nrcorresp BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_112-werks.
itab_saida-branch = itab_112-j_1bbranch.
ENDIF.
WHEN 'CE'.
READ TABLE itab_128 WITH KEY
nrseq = itab_031-nrcorresp BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_128-werks_or.
itab_saida-branch = itab_128-j_1bbranch.
ENDIF.
WHEN 'CP'.
READ TABLE itab_124 WITH KEY
nrseq = itab_031-nrcorresp BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_124-werks.
itab_saida-branch = itab_124-j_1bbranch.
ENDIF.
WHEN 'EC'.
READ TABLE itab_156 WITH KEY
nrseq = itab_031-nrcorresp+0(8)
tpdesp = itab_031-tpdesp BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_156-werks.
itab_saida-branch = itab_156-j_1bbranch.
ENDIF.
WHEN 'ED'.
READ TABLE itab_156 WITH KEY
nrseq = itab_031-nrcorresp+0(8) BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_156-werks.
itab_saida-branch = itab_156-j_1bbranch.
ENDIF.
WHEN 'EL'.
READ TABLE itab_017 WITH KEY
nrinvoic = itab_031-nrcorresp20
nrparcf = itab_031-nrparc+1(2) BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_017-werks.
itab_saida-branch = itab_017-j_1bbranch.
ENDIF.
WHEN 'EJ'.
READ TABLE itab_086 WITH KEY
nrseq = itab_031-nrcorresp+0(8) BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_086-werks.
itab_saida-branch = itab_086-j_1bbranch.
ENDIF.
WHEN 'EO'.
READ TABLE itab_001 WITH KEY
nrseq = itab_031-nrcorresp+0(8) BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_001-werks.
itab_saida-branch = itab_001-j_1bbranch.
ENDIF.
WHEN 'EP'.
READ TABLE itab_033 WITH KEY
nrpres = itab_031-nrcorresp BINARY SEARCH.
IF sy-subrc = 0.
READ TABLE itab_017 WITH KEY
nrinvoic = itab_033-nrseq20 BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_017-werks.
itab_saida-branch = itab_017-j_1bbranch.
ENDIF.
ENDIF.
WHEN 'IA'.
READ TABLE itab_117 WITH KEY
nrseq = itab_031-nrcorresp BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_117-werks.
itab_saida-branch = itab_117-j_1bbranch.
ENDIF.
WHEN 'IP'.
READ TABLE itab_119 WITH KEY
nrseq = itab_031-nrcorresp BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_119-werks.
itab_saida-branch = itab_119-j_1bbranch.
ENDIF.
WHEN 'IU'.
READ TABLE itab_001 WITH KEY
nrseq = itab_031-nrcorresp BINARY SEARCH.
IF sy-subrc = 0.
itab_saida-werks = itab_001-werks.
itab_saida-branch = itab_001-j_1bbranch.
ENDIF.
ENDCASE.
ENDFORM. " ler_centrolocal_saida
*&---------------------------------------------------------------------*
*& Form deleta_sel_saida
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form deleta_sel_saida.
* Deleta os registros que não forem de acordo criterios seleção
IF NOT s_loc[] IS INITIAL.
DELETE itab_saida WHERE NOT branch IN s_loc.
ENDIF.
IF NOT s_div[] IS INITIAL.
DELETE itab_saida WHERE NOT gsberf IN s_div.
ENDIF.
endform. " deleta_sel_saida
----------------------------------------------------------------------------------------------------
Modificações efetuadas em SHI3 /PWS/ZYCB
Modificações efetuadas em SHI6 /PWS/ZYCB
Modificações efetuadas em TABU TMENU01
Modificações efetuadas em TABU TMENU01R
Modificações efetuadas em TABU TMENU01T
Criar no menu /PWS/ZYCB a chamada dos relatórios:
Transação SE43
Exportação->Relatórios
Entrada menu: Pagamentos com recursos no Exterior
Código de transação: /PWS/ZYCBR360
Entrada menu: Controle de Valores Recebidos no Exterior
Código de transação: /PWS/ZYCBR361
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TRAN /PWS/ZYCBR360
CÓDIGO DE TRANSAÇÃO: /PWS/ZYCBR360
ATRIBUTOS DA TRANSAÇÃO
TEXTO BREVE: Pagamento com Recursos no Exterior
Classe de Desenvolvimento: /PWS/ZYCB
OBJETO DE EXECUÇÃO
( ) - PROGRAMA E TELA (TRANSAÇÃO DE DIÁLOGO)
(X) - PROGRAMA E TELA DE SELEÇÃO (TRANSAÇÃO DE REPORT)
TEXTO DA TRANSAÇÃO: Pagamento com Recursos no Exterior
PROGRAMA: /PWS/ZYCBR360
TELA(SELEÇÃO): 1000
INÍCIO COM VARIANTE: _____________________________________________
OBJETO DE AUTORIZAÇÃO: ___________________________________________
( ) - ATUALIZAÇÃO DA VARIANTE DA TRANSAÇÃO STANDARD PERMITIDA
CLASSIFICAÇÃO
CLASSIFICAÇÃO DE TRANSAÇÃO:
(X) - TRANSAÇÃO PROFESSIONAL USER
( ) - TRANSAÇÃO EASY WEB SERVIÇO: ___________________________
CAPACIDADE GUI:
( ) SAP GUI PARA HTML
( ) SAP GUI PARA JAVA
( ) SAP GUI PARA WINDOWS
----------------------------------------------------------------------------------------------------
Símbolos de Texto
001 Critérios de Seleção
002 Opções da Lista de Resultados
003 PERÍODO:
004 EMPRESA:
005 à
----------------------------------------------------------------------------------------------------
Textos de Seleção
P_VARI Layout
S_COD Código do Banco C/C ME
S_DAT Data de Pagamento
S_DIS Disponibilidade
S_DIV Divisão
S_EMP Empresa
S_EXE Exercício
S_LOC Local de Negócios
S_MOE Moeda C/C ME
----------------------------------------------------------------------------------------------------
Status-gui
Efetuar cópia do status-gui STANDARD_FULLSCREEN do grupo de funções SLVC_FULLSCREEN, criando no
programa /PWS/ZYCBR361 com o nome de ZSTANDARD.
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
05469 - 00001 - DESENVOLVIMENTO ADICIONAL - SAÍDA DE PAGAMENTO UTILIZANDO CONTA CORRENTE
05470 - 00002 - RELATÓRIO VALORES RECEBIDOS EM C/C NO EXTERIOR
05471 - 00003 - DEREX - AJUSTES PARA NOVA ORDEM DE PAGAMENTO
05478 - 00004 - DA - ASSOCIAÇÃO DE ORDENS DE PAGAMENTO
05479 - 00005 - CAPTAÇÂO - ORDEM DE PAGAMENTO
05482 - 00006 - VALORES MANTIDOS NO EXTERIOR - DA COMPLETO