Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Relatórios
Data/Hora da Publicação: 14/12/2007 00:00:00
Data/Hora Última Alteração: 10/03/2010 17:37:43
Descrição da Nota: RELATÓRIO VALORES RECEBIDOS EM C/C NO EXTERIOR
Sintoma
Relatório Valores Recebidos em C/C no Exterior
Solução
Relatório Valores Recebidos em C/C no Exterior
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05470 Data: 14/12/2007 Hora: 19:17:10
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05470
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 VALORES RECEBIDOS EM C/C NO EXTERIOR
----------------------------------------------------------------------------------------------------
Palavras Chave:
RELATÓRIO VALORES RECEBIDOS EM C/C NO EXTERIOR
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCBR361
TRAN /PWS/ZYCBR361
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR361
Classe de desenvolvimento de todos objetos: /PWS/ZYCB
* ----------------------------------------------------------------------
* PROCWORK Software
* Produto : Pw.CE - /PWS/ZYCBR146
* Módulo : CB ¿ Câmbio Exportação
* Descrição: Relatório de controle de valores recebidos no exteriro
* Help Desk: (0XX11) 5504-0270
* ----------------------------------------------------------------------
* ESTE PROGRAMA NÃO DEVE SER ALTERADO SEM PRÉVIA CONSULTA
* ----------------------------------------------------------------------
* Chamado Data Descrição
* ----------------------------------------------------------------------
* 421106 20/11/2007 Codificação Inicial
* ----------------------------------------------------------------------
REPORT /pws/zycbr361 MESSAGE-ID /pws/zycbm .
* Grupos de tipos
TYPE-POOLS: slis,
kkblo.
* Tabelas
TABLES:
/pws/zycbt226,
/pws/zycbt238,
/pws/zycbt240,
/pws/zycbt017,
bsad.
* Tabelas internas
*Armazena dados para impressão do relatório.
DATA: BEGIN OF it_saida OCCURS 0,
bukrs LIKE /pws/zycbt226-bukrs, "Empres
nrseq LIKE /pws/zycbt226-nrseq, "Nr.seq. ordem de pgto
tipo_op LIKE /pws/zycbt226-tipo_op, "Origem do Recurso
destino(25) TYPE c, "Destino do Recurso
waers LIKE /pws/zycbt226-waers, "Moeda
nremb LIKE /pws/zycbt017-nremb, "Número do Embarque
nrinvoic LIKE /pws/zycbt226-nrinvoic, "Fatura
nrparcf LIKE /pws/zycbt226-nrparcf, "Parcela
gsberf LIKE /pws/zycbt226-gsberf, "Divisão da fatura
werks LIKE /pws/zycbt226-werks, "Centro
j_1bbranch LIKE /pws/zycbt226-j_1bbranch, "Local de Negócio
kunag LIKE /pws/zycbt226-kunag, "Código do Cliente
name1 TYPE kna1-name1, "Desc do Nome do Cliente
vlr_exterior LIKE /pws/zycbt226-vlr_exterior, "Vlr Retido Ext ME
sld_exterior LIKE /pws/zycbt226-sld_exterior, "Saldo Retido no Ext
vldisp30 LIKE /pws/zycbt238-vldisp, "Valor disp 30%
vldisp70 LIKE /pws/zycbt238-vldisp, "Valor disp 70%
vlcred LIKE /pws/zycbt240-vlcred, "Valor Rendimento
dtcredext LIKE /pws/zycbt226-dtcredext, "Dt de Crédito no Ext
dtlancto LIKE /pws/zycbt226-dtlancto, "Data de Lançamento
dtincl LIKE /pws/zycbt226-dtincl, "Data de Inclusão
dtlimite LIKE /pws/zycbt226-dtlimite, "Dt Lim Utlz Ord Pgto
dtdisp LIKE /pws/zycbt238-dtdisp, "Dt da disp
dtreceb LIKE /pws/zycbt240-dtreceb, "Dt do receb do rend
bco_me LIKE /pws/zycbt226-bco_me, "Código do banco C/C ME
name1_lfa LIKE lfa1-name1, "Descr do Banco C/C ME
conta_contabil LIKE /pws/zycbt226-conta_contabil, "Conta Contb Lcto
belnr_op LIKE /pws/zycbe226-belnr_op, "Doc Contb do Lcto
conta_contabil_l LIKE /pws/zycbt238-conta_contabil, "Cta Cntb d Transf
doc_cont LIKE /pws/zycbe238-doc_cont, "Doc contb Transf 30 70
ref_op LIKE /pws/zycbt226-ref_op. "Ref Ordem de Pgto
DATA: END OF it_saida.
*CB - Valores Mantidos no Exterior.
DATA: BEGIN OF it_zycbt226 OCCURS 0,
bukrs LIKE /pws/zycbt226-bukrs, "Empres
nrseq LIKE /pws/zycbt226-nrseq, "Nr.seq. ordem de pgto
tipo_op LIKE /pws/zycbt226-tipo_op, "Origem do Recurso
waers LIKE /pws/zycbt226-waers, "Moeda
nrinvoic LIKE /pws/zycbt226-nrinvoic, "Fatura
nrparcf LIKE /pws/zycbt226-nrparcf, "Parcela
gsberf LIKE /pws/zycbt226-gsberf, "Divisão da fatura
werks LIKE /pws/zycbt226-werks, "Centro
j_1bbranch LIKE /pws/zycbt226-j_1bbranch, "Local de Negócio
kunag LIKE /pws/zycbt226-kunag, "Código do Cliente
vlr_exterior LIKE /pws/zycbt226-vlr_exterior, "Vlr Retido Ext ME
sld_exterior LIKE /pws/zycbt226-sld_exterior, "Saldo Retido no Ext
dtcredext LIKE /pws/zycbt226-dtcredext, "Dt de Crédito no Ext
dtlancto LIKE /pws/zycbt226-dtlancto, "Data de Lançamento
dtincl LIKE /pws/zycbt226-dtincl, "Data de Inclusão
dtlimite LIKE /pws/zycbt226-dtlimite, "Dt Lim Utlz Ord Pgto
bco_me LIKE /pws/zycbt226-bco_me, "Código do banco C/C ME
conta_contabil LIKE /pws/zycbt226-conta_contabil, "Conta Contb Lcto
belnr_op LIKE /pws/zycbe226-belnr_op, "Doc Contb do Lcto
ref_op LIKE /pws/zycbt226-ref_op, "Ref Ordem de Pgto
END OF it_zycbt226.
*CB - DISPONIBILIDADE DE VALORES MANTIDOS NO EXTERIOR.
DATA: BEGIN OF it_zycbt238 OCCURS 0,
nrseq LIKE /pws/zycbt238-nrseq, "Nº Seq-Vlr mant ext
destino LIKE /pws/zycbt238-destino, "Porcent destino do rec
dtdisp LIKE /pws/zycbt238-dtdisp, "Data de lançamento no docu
conta_contabil LIKE /pws/zycbt238-conta_contabil, "Ct Contb de Transf
doc_cont LIKE /pws/zycbt238-doc_cont, "Doc. contábil da Transf
vldisp LIKE /pws/zycbt238-vldisp,
END OF it_zycbt238.
*CB - DISPONIBILIDADE DE VALORES MANTIDOS NO EXTERIOR.
DATA: BEGIN OF it_zycbt240 OCCURS 0,
nrseqr LIKE /pws/zycbt240-nrseqr,
dtreceb LIKE /pws/zycbt240-dtreceb,
bukrs LIKE /pws/zycbt240-bukrs,
waers LIKE /pws/zycbt240-waers,
gsber LIKE /pws/zycbt240-gsber,
werks LIKE /pws/zycbt240-werks,
j_1bbranch LIKE /pws/zycbt240-j_1bbranch,
vlcred LIKE /pws/zycbt240-vlcred,
bco_ext LIKE /pws/zycbt240-bco_ext,
nome_bco LIKE /pws/zycbt240-nome_bco,
END OF it_zycbt240.
* Tabela: Fornecedores
DATA: BEGIN OF itab_lfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr, "Fornecedor
name1 LIKE lfa1-name1, "Nome
END OF itab_lfa1.
* Tabela: Clientes
DATA: BEGIN OF itab_kna1 OCCURS 0,
lifnr LIKE kna1-lifnr, "Fornecedor
name1 LIKE kna1-name1, "Nome
kunnr LIKE kna1-kunnr,
END OF itab_kna1.
* CB - Cadastro de Faturas
DATA: BEGIN OF it_zycbt017 OCCURS 0,
nrinvoic LIKE /pws/zycbt017-nrinvoic,
nrparcf LIKE /pws/zycbt017-nrparcf,
gsberf LIKE /pws/zycbt017-gsberf,
nremb LIKE /pws/zycbt017-nremb,
END OF it_zycbt017.
*----------------------------------------------------------------------*
* 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.
*----------------------------------------------------------------------*
* Estruturas *
*----------------------------------------------------------------------*
DATA: gs_layout TYPE slis_layout_alv, "L. saída
gs_top TYPE slis_t_listheader. "Cabeçalho
*----------------------------------------------------------------------*
* DECLARAÇÃO DE VARIÁVEIS *
*----------------------------------------------------------------------*
DATA: v_exit(1) TYPE c, "Layout relatório
v_repid TYPE sy-repid. "Programa
DATA:
s_selfield TYPE slis_selfield.
* v_ucomm LIKE sy-ucomm.
* Tela de Seleção
SELECTION-SCREEN BEGIN OF BLOCK bl_1 WITH FRAME TITLE text-001.
SELECT-OPTIONS:
*empresa
s_bukrs FOR /pws/zycbt226-bukrs OBLIGATORY NO-EXTENSION NO INTERVALS,
s_gsber FOR /pws/zycbt226-gsberf, "divisão
s_j_1bbr FOR /pws/zycbt226-j_1bbranch, "local de negócio
s_nrseq FOR /pws/zycbt226-nrseq, "nr.seq.ord pto
s_kunag FOR /pws/zycbt226-kunag, "código do cliente
s_waers FOR /pws/zycbt226-waers, "moeda
s_sld_ex FOR /pws/zycbt226-sld_exterior, "saldo retido exterior
s_orgrec FOR /pws/zycbt226-tipo_op, "origem do recurso
s_dtcrde FOR /pws/zycbt226-dtcredext, "Dt.crédito exterior
s_dtlcto FOR /pws/zycbt226-dtlancto, "Dt.lançamento
s_dtincl FOR /pws/zycbt226-dtincl, "dt.Inclusão
s_dtdisp FOR /pws/zycbt238-dtdisp, "dt.disponibilidade
s_dtrecb FOR /pws/zycbt240-dtreceb, "dt.recb rendimento
s_bco_me FOR /pws/zycbt226-bco_me, "código do banco cc/me
s_ref_op FOR /pws/zycbt226-ref_op, "ref. da ordem
s_exerc FOR bsad-gjahr NO INTERVALS NO-EXTENSION OBLIGATORY. "exerc.
SELECTION-SCREEN END OF BLOCK bl_1.
SELECTION-SCREEN BEGIN OF BLOCK vlreceb WITH FRAME TITLE text-004.
PARAMETERS: p_receb AS CHECKBOX DEFAULT 'X', "recebidos cc/me
p_disp30 AS CHECKBOX DEFAULT 'X', "dispoinbilidade 30%
p_disp70 AS CHECKBOX DEFAULT 'X', "dispoinbilidade 70%
p_rendrb AS CHECKBOX DEFAULT 'X'. "rendimentos recebidos
SELECTION-SCREEN END OF BLOCK vlreceb.
*Opções da lista de resultados.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_varian LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK b2.
*&---------------------------------------------------------------------*
*& Principal
*&---------------------------------------------------------------------*
*----------------------------------------------------------------------*
* AT SELECTION SCREEN *
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varian.
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_varian.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN.
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
IF p_receb = '' AND p_disp30 = '' AND p_disp70 = '' AND
p_rendrb = ''.
MESSAGE e015 WITH text-005.
ENDIF.
*----------------------------------------------------------------------*
* INÍCIO DO PROCESSAMENTO *
*----------------------------------------------------------------------*
START-OF-SELECTION.
v_repid = sy-repid.
PERFORM f_seleciona_dados.
PERFORM f_monta_saida.
IF NOT it_saida[] IS INITIAL.
* Monta layout
PERFORM f_layout.
ELSE.
MESSAGE i306. "Não existe(m) registro(s) a ser(em) exibido(s)
ENDIF.
*&---------------------------------------------------------------------*
*& Form f_seleciona_dados
*&---------------------------------------------------------------------*
* Busca dados para exibição do relatório.
*----------------------------------------------------------------------*
FORM f_seleciona_dados.
CLEAR:
it_zycbt226[],
it_zycbt238[],
it_zycbt240[].
PERFORM f_seleciona_zycbt226.
PERFORM f_seleciona_zycbt238.
PERFORM f_seleciona_zycbt240.
ENDFORM. " f_seleciona_dados
*&---------------------------------------------------------------------*
*& Form f_seleciona_zycbt226
*&---------------------------------------------------------------------*
* CB - Valores Mantidos no Exterior
*----------------------------------------------------------------------*
FORM f_seleciona_zycbt226.
CHECK p_receb ='X' OR p_disp30 = 'X' OR p_disp70 = 'X'.
SELECT
bukrs
nrseq
tipo_op
waers
nrinvoic
nrparcf
gsberf
werks
j_1bbranch
kunag
vlr_exterior
sld_exterior
dtcredext
dtlancto
dtincl
dtlimite
bco_me
conta_contabil
belnr_op
ref_op
FROM /pws/zycbt226
INTO TABLE it_zycbt226
WHERE
nrseq IN s_nrseq.
CHECK it_zycbt226 IS INITIAL.
DELETE it_zycbt226 WHERE NOT bukrs IN s_bukrs.
DELETE it_zycbt226 WHERE NOT gsberf IN s_gsber.
DELETE it_zycbt226 WHERE NOT j_1bbranch IN s_j_1bbr.
DELETE it_zycbt226 WHERE NOT kunag IN s_kunag.
DELETE it_zycbt226 WHERE NOT waers IN s_waers.
DELETE it_zycbt226 WHERE NOT sld_exterior IN s_sld_ex.
DELETE it_zycbt226 WHERE NOT tipo_op IN s_orgrec.
DELETE it_zycbt226 WHERE NOT dtcredext IN s_dtcrde.
DELETE it_zycbt226 WHERE NOT dtlancto IN s_dtlcto.
DELETE it_zycbt226 WHERE NOT dtincl IN s_dtincl.
DELETE it_zycbt226 WHERE NOT bco_me IN s_bco_me.
DELETE it_zycbt226 WHERE NOT ref_op IN s_ref_op.
DELETE it_zycbt226 WHERE NOT dtlancto(4) IN s_exerc.
* Busca descrição do Banco através do nome do fornecedor
SELECT lifnr
name1
FROM lfa1
INTO TABLE itab_lfa1
FOR ALL ENTRIES IN it_zycbt226
WHERE lifnr EQ it_zycbt226-bco_me.
* Busca Descrição do Nome do Cliente
SELECT lifnr
name1
kunnr
FROM kna1
INTO TABLE itab_kna1
FOR ALL ENTRIES IN it_zycbt226
WHERE kunnr EQ it_zycbt226-kunag.
* CB - Cadastro de Faturas
SELECT
nrinvoic
nrparcf
gsberf
nremb
FROM /pws/zycbt017
INTO TABLE it_zycbt017
FOR ALL ENTRIES IN it_zycbt226
WHERE
nrinvoic = it_zycbt226-nrinvoic AND
nrparcf = it_zycbt226-nrparcf AND
gsberf = it_zycbt226-gsberf.
ENDFORM. " f_seleciona_zycbt226
*&---------------------------------------------------------------------*
*& Form f_seleciona_zycbt238
*&---------------------------------------------------------------------*
* CB - DISPONIBILIDADE DE VALORES MANTIDOS NO EXTERIOR
*----------------------------------------------------------------------*
FORM f_seleciona_zycbt238.
DATA lc_index LIKE sy-tabix.
* Verifica o parâmetro Valores recebidos.
IF p_disp30 = 'X' AND p_disp70 = 'X'.
SELECT
nrseq
destino
dtdisp
conta_contabil
doc_cont
vldisp
FROM /pws/zycbt238
INTO TABLE it_zycbt238
FOR ALL ENTRIES IN it_zycbt226
WHERE
nrseq = it_zycbt226-nrseq AND
dtdisp IN s_dtdisp AND
( destino = 30 OR
destino = 70 ).
ELSEIF p_disp30 = 'X'.
SELECT
nrseq
destino
dtdisp
conta_contabil
doc_cont
vldisp
FROM /pws/zycbt238
INTO TABLE it_zycbt238
FOR ALL ENTRIES IN it_zycbt226
WHERE
nrseq = it_zycbt226-nrseq AND
dtdisp IN s_dtdisp AND
destino = 30.
ELSEIF p_disp70 = 'X'.
SELECT
nrseq
destino
dtdisp
conta_contabil
doc_cont
vldisp
FROM /pws/zycbt238
INTO TABLE it_zycbt238
FOR ALL ENTRIES IN it_zycbt226
WHERE
nrseq = it_zycbt226-nrseq AND
dtdisp IN s_dtdisp AND
destino = 70.
ENDIF.
IF ( it_zycbt238[] IS INITIAL ) AND ( p_receb IS INITIAL ).
CLEAR it_zycbt226[].
ELSE.
IF p_receb IS INITIAL.
* Exclui os registros da it_zycbt226 que não estejam na tab it_zycbt238
*caso o parâmetro de recebidos cc/me não esteja selecionado.
SORT: it_zycbt226 BY nrseq,
it_zycbt238 BY nrseq.
LOOP AT it_zycbt226.
lc_index = sy-tabix.
READ TABLE it_zycbt238 WITH KEY it_zycbt226-nrseq.
IF sy-subrc NE 0.
DELETE it_zycbt226 INDEX lc_index.
ENDIF.
ENDLOOP.
ENDIF.
CHECK s_exerc IS INITIAL.
DELETE it_zycbt238 WHERE NOT dtdisp(4) IN s_exerc.
ENDIF.
ENDFORM. " f_seleciona_zycbt238
*&---------------------------------------------------------------------*
*& Form f_seleciona_zycbt240
*&---------------------------------------------------------------------*
* CB - RENDIMENTOS RECEBIDOS
*----------------------------------------------------------------------*
FORM f_seleciona_zycbt240.
* Verifica o parâmentro de recebimentos está marcado.
IF p_rendrb = 'X'.
SELECT
nrseqr
dtreceb
bukrs
waers
gsber
werks
j_1bbranch
vlcred
bco_ext
nome_bco
FROM /pws/zycbt240
INTO TABLE it_zycbt240
WHERE
nrseqr IN s_nrseq .
CHECK it_zycbt240 IS INITIAL.
DELETE it_zycbt240 WHERE NOT bukrs IN s_bukrs.
DELETE it_zycbt240 WHERE NOT waers IN s_waers.
DELETE it_zycbt240 WHERE NOT gsber IN s_gsber.
DELETE it_zycbt240 WHERE NOT j_1bbranch IN s_j_1bbr.
DELETE it_zycbt240 WHERE NOT bco_ext IN s_bco_me.
DELETE it_zycbt240 WHERE NOT dtreceb IN s_dtrecb.
CHECK s_exerc IS INITIAL.
DELETE it_zycbt240 WHERE NOT dtreceb(4) IN s_exerc.
ENDIF.
ENDFORM. " f_seleciona_zycbt240
*&---------------------------------------------------------------------*
*& Form f_monta_saida
*&---------------------------------------------------------------------*
* Monta tabela para impressão do relatório
*----------------------------------------------------------------------*
FORM f_monta_saida.
SORT: it_zycbt226 BY nrseq,
it_zycbt238 BY nrseq,
it_zycbt240 BY nrseqr,
itab_kna1 BY kunnr,
itab_lfa1 BY lifnr,
it_zycbt017 BY nrinvoic nrparcf gsberf.
LOOP AT it_zycbt226.
IF p_receb EQ 'X'.
it_saida-destino = 'Recebidos C/C ME'.
PERFORM f_preenche_zycbt226.
ENDIF.
clear: it_saida-sld_exterior,
it_saida-vlr_exterior.
* Seleciona todos os registros referentes a CB - DISPONIBILIDADE DE
*VALORES MANTIDOS NO EXTERIOR
LOOP AT it_zycbt238 WHERE nrseq = it_zycbt226-nrseq.
IF it_zycbt238-destino = 30 .
it_saida-destino = 'Disponibilidade 30%'.
it_saida-vldisp30 = it_zycbt238-vldisp.
clear it_saida-vldisp70.
ELSEIF it_zycbt238-destino = 70 .
it_saida-destino = 'Disponibilidade 70%'.
it_saida-vldisp70 = it_zycbt238-vldisp.
clear it_saida-vldisp30.
ENDIF.
it_saida-dtdisp = it_zycbt238-dtdisp.
it_saida-conta_contabil_l = it_zycbt238-conta_contabil.
it_saida-doc_cont = it_zycbt238-doc_cont.
CLEAR: it_zycbt226-vlr_exterior,
it_zycbt226-sld_exterior.
PERFORM f_preenche_zycbt226.
ENDLOOP.
CLEAR: it_saida-vldisp70,
it_saida-vldisp30.
ENDLOOP.
CLEAR it_saida.
*valores de rendimentos sobre o saldo da conta corrente ME
*não rendimentos ligados a um crédito específico na cc
LOOP AT it_zycbt240.
it_saida-nrseq = it_zycbt240-nrseqr.
it_saida-bukrs = it_zycbt240-bukrs.
it_saida-destino = 'Rendimentos'.
it_saida-waers = it_zycbt240-waers.
it_saida-gsberf = it_zycbt240-gsber.
it_saida-werks = it_zycbt240-werks.
it_saida-j_1bbranch = it_zycbt240-j_1bbranch.
it_saida-vlcred = it_zycbt240-vlcred.
it_saida-dtreceb = it_zycbt240-dtreceb.
it_saida-bco_me = it_zycbt240-bco_ext.
it_saida-name1_lfa = it_zycbt240-nome_bco.
APPEND it_saida.
ENDLOOP.
ENDFORM. " f_monta_saida
*&---------------------------------------------------------------------*
*& Form f_layout
*&---------------------------------------------------------------------*
* Monta ALV
*----------------------------------------------------------------------*
FORM f_layout.
* Efetua quebra
PERFORM f_monta_quebra.
* Layout de impressão do ALV
PERFORM f_define_layout.
* Montagem dos campos
PERFORM f_monta_campos.
*Imprime ALV
PERFORM f_imprime_alv.
ENDFORM. " f_layout
*&---------------------------------------------------------------------*
*& Form F_monta_quebra
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_monta_quebra.
REFRESH itab_sort.
* Quebra por moeda ME
CLEAR itab_sort.
itab_sort-spos = 1.
itab_sort-fieldname = 'WAERS'. "Nome do campo
itab_sort-tabname = 'IT_SAIDA'. "Nome da tabela
itab_sort-up = 'X'.
itab_sort-subtot = 'X'.
APPEND itab_sort.
ENDFORM. " F_monta_quebra
*&---------------------------------------------------------------------*
*& Form f_define_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_define_layout.
gs_layout-group_change_edit = 'X'.
gs_layout-colwidth_optimize = 'X'.
gs_layout-box_tabname = 'IT_SAIDA'.
gs_layout-zebra = 'X'. "Listrado (Linha clara->escura)
ENDFORM. " f_define_layout
*&---------------------------------------------------------------------*
*& Form f_monta_campos
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_monta_campos.
PERFORM: inclui_campo USING 'IT_SAIDA' 'BUKRS'
'Empresa' 'C' '07' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'NRSEQ'
'Nr.Seq. Ordem de Pgto' 'C' '10' ' ' ' ' ' ' ' ' 'X' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'TIPO_OP'
'Origem do Recurso' 'C' '01' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DESTINO'
'Destino do Recurso' 'C' '25' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'WAERS'
'Moeda' 'P' '05' ' ' ' ' ' ' 'X' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'NREMB'
'Número do Embarque' 'C' '20' ' ' ' ' ' ' ' ' 'X' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'NRINVOIC'
'Fatura' 'C' '20' ' ' ' ' ' ' ' ' 'X' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'NRPARCF'
'Parcela' 'N' '02' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'GSBERF'
'Divisão da fatura' 'C' '04' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'WERKS'
'Centro' 'C' '04' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'J_1BBRANCH'
'Local de Negócio' 'C' '04' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'KUNAG'
'Código do Cliente' 'C' '10' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'NAME1'
'Descrição do Nome do Cliente' 'C'
'35' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'VLR_EXTERIOR'
'Valor Retido no Exterior' 'P' '13' ' ' ' '
'X' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'SLD_EXTERIOR'
'Saldo Retido no Exterior' 'P' '13' ' ' ' '
'X' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'VLDISP30'
'Valor Disponibilidade 30%' 'P' '13' ' ' ' '
'X' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'VLDISP70'
'Valor Disponibilidade 70%' 'P' '13' ' ' ' '
'X' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'VLCRED'
'Valor Rendimento' 'P' '13' ' ' ' ' 'X' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DTCREDEXT'
'Data de Crédito no Exterior' 'D'
'13' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DTLANCTO'
'Data de Lançamento' 'D' '08' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DTINCL'
'Data de Inclusão' 'D' '08' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DTLIMITE'
'Data Limite para Utilização da Ordem de Pagamento' 'D' '08'
' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DTDISP'
'Data da Disponibilidade' 'D'
'08' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DTRECEB'
'Data do Recebimento do Rendimento' 'D' '08' ' ' ' ' ' ' ' '
' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'BCO_ME'
'Código do Banco C/C ME' 'D' '10' ' ' ' ' ' ' ' ' ' '
'LIFNR' 'KNA1'.
PERFORM: inclui_campo USING 'IT_SAIDA' 'NAME1_LFA'
'Descrição do Banco C/C ME' 'C'
'35' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'CONTA_CONTABIL'
'Conta Contábil Lançamento' 'C'
'10' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'BELNR_OP'
'Documento Contábil do Lançamento' 'C' '10'
' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'CONTA_CONTABIL_L'
'Conta Contábil da Transferência' 'C' '10' ' ' ' ' ' ' ' '
' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DOC_CONT'
'Documento Contábil da Transferência' 'C' '10'
' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'REF_OP'
'Referência da Ordem de Pagamento' 'C' '30'
' ' ' ' ' ' ' ' ' ' ' ' ' '.
ENDFORM. " f_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)
value(p_hotspot) value(p_ref_campo)
value(p_ref_tabela).
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
itab_fieldcat-hotspot = p_hotspot. " hotspot
itab_fieldcat-REF_FIELDNAME = p_ref_campo. " Campo de referencia
itab_fieldcat-REF_TABNAME = p_ref_tabela. " Tabela de referencia.
APPEND itab_fieldcat.
ENDFORM. " inclui_campo
*&---------------------------------------------------------------------*
*& Form f_imprime_alv
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_imprime_alv.
DATA: s_variant LIKE disvariant,
vl_repid TYPE sy-repid.
vl_repid = sy-repid.
* Variante de layout
IF NOT p_varian IS INITIAL.
IMPORT p_varian FROM MEMORY ID 'VARI'.
ELSE.
CLEAR: p_varian.
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'
i_callback_user_command = 'F_USER_COMMAND'
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 = it_saida
EXCEPTIONS
program_error = 1
OTHERS = 2.
ENDFORM. " f_imprime_alv
*&---------------------------------------------------------------------*
*& 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_empresa(30) TYPE c,
ls_line TYPE slis_listheader.
* Cabeçalho: EMPRESA
READ TABLE s_bukrs INDEX 1.
CONCATENATE text-006 s_bukrs-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.
* CABEÇALHO: PERÍODO
CONCATENATE text-007 s_exerc-low INTO lc_data_header
SEPARATED BY space.
ls_line-typ = 'A'.
ls_line-info = lc_data_header.
APPEND ls_line TO gs_top.
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 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 user_command *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
FORM f_user_command USING ucomm type sy-ucomm
p_s_selfield type slis_selfield.
CASE p_s_selfield-sel_tab_field.
* Número Seqüencial da Ordem Pagamento
WHEN 'IT_SAIDA-NRSEQ'.
* para ler linha do clique.
READ TABLE it_saida INDEX p_s_selfield-tabindex.
* valor da célula do clique
SET PARAMETER ID '/PWS/ZYGLP115' FIELD p_s_selfield-value.
SET PARAMETER ID 'BUK' FIELD it_saida-bukrs.
CALL TRANSACTION '/PWS/ZYCB034_E' AND SKIP FIRST SCREEN.
* Número do Embarque
WHEN 'IT_SAIDA-NREMB'.
READ TABLE it_saida INDEX p_s_selfield-tabindex.
* valor da célula do clique
SET PARAMETER ID '/PWS/ZYCBP084' FIELD p_s_selfield-value.
SET PARAMETER ID 'BUK' FIELD it_saida-bukrs.
SET PARAMETER ID 'GSB' FIELD it_saida-gsberf.
SET PARAMETER ID '/PWS/ZYCBP375' FIELD it_saida-nrparcf.
CALL TRANSACTION '/PWS/ZYCB005_E' AND SKIP FIRST SCREEN.
* Fatura
WHEN 'IT_SAIDA-NRINVOIC'.
READ TABLE it_saida INDEX p_s_selfield-tabindex.
* valor da célula do clique
SET PARAMETER ID '/PWS/ZYCBP084' FIELD p_s_selfield-value.
SET PARAMETER ID 'BUK' FIELD it_saida-bukrs.
SET PARAMETER ID 'GSB' FIELD it_saida-gsberf.
SET PARAMETER ID '/PWS/ZYCBP375' FIELD it_saida-nrparcf.
CALL TRANSACTION '/PWS/ZYCB005_E' AND SKIP FIRST SCREEN.
ENDCASE.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form f_preenche_zycbt226
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM f_preenche_zycbt226.
it_saida-bukrs = it_zycbt226-bukrs.
it_saida-waers = it_zycbt226-waers.
it_saida-gsberf = it_zycbt226-gsberf.
it_saida-werks = it_zycbt226-werks.
it_saida-j_1bbranch = it_zycbt226-j_1bbranch.
it_saida-vlr_exterior = it_zycbt226-vlr_exterior.
it_saida-sld_exterior = it_zycbt226-sld_exterior.
it_saida-bco_me = it_zycbt226-bco_me.
it_saida-nrseq = it_zycbt226-nrseq.
it_saida-tipo_op = it_zycbt226-tipo_op.
READ TABLE it_zycbt017 WITH KEY
nrinvoic = it_zycbt226-nrinvoic
nrparcf = it_zycbt226-nrparcf
gsberf = it_zycbt226-gsberf.
IF sy-subrc = 0.
it_saida-nremb = it_zycbt017-nremb.
ENDIF.
it_saida-nrinvoic = it_zycbt226-nrinvoic.
it_saida-nrparcf = it_zycbt226-nrparcf.
it_saida-kunag = it_zycbt226-kunag. "código do cliente
READ TABLE itab_kna1 WITH KEY kunnr = it_zycbt226-kunag BINARY SEARCH.
IF sy-subrc = 0.
it_saida-name1 = itab_kna1-name1.
ENDIF.
it_saida-dtcredext = it_zycbt226-dtcredext.
it_saida-dtlancto = it_zycbt226-dtlancto.
it_saida-dtincl = it_zycbt226-dtincl.
it_saida-dtlimite = it_zycbt226-dtlimite.
READ TABLE itab_lfa1 WITH KEY lifnr = it_zycbt226-bco_me BINARY SEARCH.
IF sy-subrc = 0.
it_saida-name1_lfa = itab_lfa1-name1.
ENDIF.
it_saida-conta_contabil = it_zycbt226-conta_contabil.
it_saida-belnr_op = it_zycbt226-belnr_op.
it_saida-ref_op = it_zycbt226-ref_op.
APPEND it_saida.
ENDFORM. " f_preenche_zycbt226
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TRAN /PWS/ZYCBR361
CÓDIGO DE TRANSAÇÃO: /PWS/ZYCBR361
ATRIBUTOS DA TRANSAÇÃO
TEXTO BREVE: Controle de Valores Recebidos no Ext
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: Controle de Valores Recebidos no Ext
PROGRAMA: /PWS/ZYCBR361
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 Layout
004 Valores Recebidos
005 Marcar pelo menos uma Origem de Recurso
006 EMPRESA:
007 Exercício:
----------------------------------------------------------------------------------------------------
Textos de Seleção
P_DISP30 Disponibilidade 30%
P_DISP70 Disponibilidade 70%
P_RECEB Recebidos C/C ME
P_RENDRB Rendimentos Recebidos
P_VARIAN Layout
S_BCO_ME Código do Banco C/C ME
S_BUKRS Empresa
S_DTCRDE Data de Crédito no Exterior
S_DTDISP Data da Disponibilidade
S_DTINCL Data de Inclusão
S_DTLCTO Data de Lançamento
S_DTRECB Data Recebimento do Rendimento
S_EXERC Exercício
S_GSBER Divisão
S_J_1BBR Local de Negócio
S_KUNAG Código do Cliente
S_NRSEQ Nr.Seq.Ordem de Pagamento
S_ORGREC Origem do Recurso
S_REF_OP Referência da Ordem
S_SLD_EX Saldo Retido no Exterior
S_WAERS Moeda
S_WAERS Moeda
S_WAERS Moeda
----------------------------------------------------------------------------------------------------
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
05471 - 00002 - DEREX - AJUSTES PARA NOVA ORDEM DE PAGAMENTO
05475 - 00003 - RELATÓRIO DE PAGAMENTOS COM RECURSOS NO EXTERIOR
05478 - 00004 - DA - ASSOCIAÇÃO DE ORDENS DE PAGAMENTO
05479 - 00005 - CAPTAÇÂO - ORDEM DE PAGAMENTO
05482 - 00006 - VALORES MANTIDOS NO EXTERIOR - DA COMPLETO