Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Relatórios
Data/Hora da Publicação: 22/08/2007 00:00:00
Data/Hora Última Alteração: 18/02/2011 15:45:38
Descrição da Nota: RELATÓRIO DE CONTRATOS - AJUSTES PERFORMANCE
Sintoma
Relatório de Contratos - Ajustes performance
Solução
Relatório de Contratos - Ajustes performance
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04495 Data: 22/08/2007 Hora: 17:23:33
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04495
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00009
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03116 - 00001 - 6.0 - 00026 - RELATÓRIO DE CONTRATOS - ATUALIZAÇÃO DE CAMPO SALDO Á PAGAR
04385 - 00002 - 7.0 - 00002 - PERFORMANCE NO RELATÓRIO DE CONTRATOS
----------------------------------------------------------------------------------------------------
RELATÓRIO DE CONTRATOS - AJUSTES PERFORMANCE
----------------------------------------------------------------------------------------------------
Palavras Chave:
RELATÓRIO DE CONTRATOS - AJUSTES PERFORMANCE
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCBR010
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR010
...
AND dtdevol LE s_posic.
SORT itab_zycbt050 BY nrseqc nrinvoic nrparcf gsberf.
SELECT nrseqc nrinvoic nrparcf gsberf vlme
FROM /pws/zycbt051
INTO TABLE itab_zycbt051
FOR ALL ENTRIES IN itab_zycbt001
WHERE nrseqc = itab_zycbt001-nrseqc
AND dtreceb LE s_posic
AND tpdev = 'RP'.
SORT itab_zycbt051 BY nrseqc nrinvoic nrparcf gsberf.
* >> Início da inclusão: FORM PROCESSAR_DADOS
SELECT lifnr name1
FROM lfa1
INTO TABLE itab_bancos
FOR ALL ENTRIES IN itab_zycbt001
WHERE lifnr = itab_zycbt001-bconegoc
OR lifnr = itab_zycbt001-bcofinan.
* << Fim da inclusão
LOOP AT itab_zycbt001.
* >> Início da exclusão: FORM PROCESSAR_DADOS
CLEAR itab_relat.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSAR_DADOS
CLEAR: itab_relat, v_vldev, v_slpagar, v_vlvinc, v_vlreceb,
v_slvinc.
* << Fim da inclusão
LOOP AT itab_zycbt003 WHERE nrseqc = itab_zycbt001-nrseqc.
IF itab_zycbt001-dtentr LE itab_zycbt003-dtpror.
itab_zycbt001-dtentr = itab_zycbt003-dtpror.
ENDIF.
ENDLOOP.
* >> Início da exclusão: FORM PROCESSAR_DADOS
LOOP AT itab_zycbt016 WHERE tpcontr = itab_zycbt001-tpcontr.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSAR_DADOS
READ TABLE itab_zycbt016 WITH KEY tpcontr = itab_zycbt001-tpcontr.
IF sy-subrc = 0.
* << Fim da inclusão
MOVE:
itab_zycbt016-txtdesc TO itab_relat-txtdesc.
* >> Início da exclusão: FORM PROCESSAR_DADOS
ENDLOOP.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSAR_DADOS
ENDIF.
* << Fim da inclusão
MOVE:
itab_zycbt001-nrseqc TO itab_relat-nrseqc,
...
...
ENDIF.
IF s_pagar <> '' AND p_compra = 'X'.
v_type = 'G'.
ENDIF.
IF s_pagar <> '' AND p_venda = 'X'.
v_type = 'B'.
ENDIF.
IF s_pagar <> '' AND p_media = 'X'.
v_type = 'M'.
ENDIF.
* >> Início da inclusão: FORM PROCESSAR_DADOS
PERFORM verifica_periodo.
MOVE:
itab_zycbt002-tpparc TO itab_relat-tpparc,
itab_zycbt002-dtinicio TO itab_relat-dtinicio,
itab_zycbt002-dtfinal TO itab_relat-dtvencto,
itab_zycbt002-txjfixa TO itab_relat-txjfixa,
itab_zycbt002-txjvar TO itab_relat-txjvar,
v_usd TO itab_relat-vlusd,
v_prazo TO itab_relat-prazo.
APPEND itab_relat.
ENDLOOP.
IF sy-subrc NE 0.
LOOP AT itab_zycbt005 WHERE nrseqc = itab_relat-nrseqc.
v_vlvinc = v_vlvinc + itab_zycbt005-vlvinc.
ENDLOOP.
* << Fim da inclusão
* >> Início da exclusão: FORM PROCESSAR_DADOS
CLEAR v_vldev.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSAR_DADOS
IF s_txcamb <> ''.
itab_relat-slpagbr = itab_relat-slpagar * s_txcamb.
ELSE.
PERFORM calcula_valor_nacional.
ENDIF.
APPEND itab_relat.
ELSE.
* << Fim da inclusão
LOOP AT itab_zycbt050 WHERE nrseqc = itab_relat-nrseqc.
v_vldev = v_vldev + itab_zycbt050-vldev.
ENDLOOP.
* >> Início da exclusão: FORM PROCESSAR_DADOS
CLEAR v_slpagar.
* << Fim da exclusão
LOOP AT itab_zycbt005 WHERE nrseqc = itab_zycbt001-nrseqc.
loop at itab_zycbt006
where nrseqc = itab_zycbt005-nrseqc
and tpdesp = itab_zycbt005-tpdesp
...
...
IF itab_zycbt001-tpcontr = 'DP'.
v_slpagar = v_slpagar + itab_zycbt005-vlvinc.
ELSE.
v_slpagar = v_slpagar +
( itab_zycbt006-vlme * itab_zycbt005-parid ).
ENDIF.
ELSE.
v_slpagar = v_slpagar + itab_zycbt006-vlme.
ENDIF.
endloop.
* >> Início da inclusão: FORM PROCESSAR_DADOS
v_vlvinc = v_vlvinc + itab_zycbt005-vlvinc.
* << Fim da inclusão
ENDLOOP.
* >> Início da exclusão: FORM PROCESSAR_DADOS
CLEAR v_vlreceb.
* << Fim da exclusão
LOOP AT itab_zycbt051 WHERE nrseqc = itab_relat-nrseqc.
v_vlreceb = v_vlreceb + itab_zycbt051-vlme.
ENDLOOP.
itab_relat-slpagar = itab_zycbt001-vlme - v_slpagar -
v_vldev + v_vlreceb.
CLEAR: v_montante, v_taxacambial.
...
...
/pws/zycbt007-waersb
v_type
s_posic
CHANGING itab_relat-slpagbr
v_taxacambial.
ENDIF.
IF s_txcamb <> ''.
itab_relat-slpagbr = itab_relat-slpagar * s_txcamb.
ENDIF.
MOVE itab_relat-slpagbr TO v_montante.
* >> Início da exclusão: FORM PROCESSAR_DADOS
PERFORM verifica_periodo.
MOVE:
itab_zycbt002-tpparc TO itab_relat-tpparc,
itab_zycbt002-dtinicio TO itab_relat-dtinicio,
itab_zycbt002-dtfinal TO itab_relat-dtvencto,
itab_zycbt002-txjfixa TO itab_relat-txjfixa,
itab_zycbt002-txjvar TO itab_relat-txjvar,
v_usd TO itab_relat-vlusd,
v_prazo TO itab_relat-prazo.
APPEND itab_relat.
ENDLOOP.
IF sy-subrc NE 0.
IF s_txcamb <> ''.
itab_relat-slpagbr = itab_relat-slpagar * s_txcamb.
ELSE.
PERFORM calcula_valor_nacional.
ENDIF.
APPEND itab_relat.
ENDIF.
ENDLOOP.
IF NOT itab_relat[] IS INITIAL.
SELECT lifnr name1
FROM lfa1
INTO TABLE itab_bancos
FOR ALL ENTRIES IN itab_relat
WHERE lifnr = itab_relat-bconegoc
OR lifnr = itab_relat-bcofinan.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSAR_DADOS
MODIFY itab_relat TRANSPORTING slpagar slpagbr
WHERE nrseqc = itab_zycbt001-nrseqc.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FORM PROCESSAR_DADOS
LOOP AT itab_relat.
v_tabix = sy-tabix.
READ TABLE itab_zycbt001 WITH KEY nrseqc = itab_relat-nrseqc.
LOOP AT itab_zycbt005 WHERE nrseqc = itab_relat-nrseqc.
v_vlvinc = v_vlvinc + itab_zycbt005-vlvinc.
ENDLOOP.
* << Fim da exclusão
itab_relat-vlvinc = v_vlvinc.
* >> Início da inclusão: FORM PROCESSAR_DADOS
v_slvinc = itab_zycbt001-vlme - v_vlvinc + v_vldev.
* << Fim da inclusão
* >> Início da exclusão: FORM PROCESSAR_DADOS
v_slvinc = itab_zycbt001-vlme - v_vlvinc + v_vldev.
* << Fim da exclusão
itab_relat-slvinc = v_slvinc - v_vldev.
* >> Início da exclusão: FORM PROCESSAR_DADOS
MODIFY itab_relat INDEX v_tabix
TRANSPORTING vlvinc slvinc slpagar slpagbr.
CLEAR: v_slvinc, v_vlvinc, v_vldev.
* << Fim da exclusão
IF NOT s_a_entr IS INITIAL.
IF itab_relat-slvinc IS INITIAL.
DELETE itab_relat WHERE nrseqc = itab_zycbt001-nrseqc.
* >> Início da inclusão: FORM PROCESSAR_DADOS
CONTINUE.
* << Fim da inclusão
ENDIF.
ENDIF.
* >> Início da exclusão: FORM PROCESSAR_DADOS
CLEAR itab_bancos.
* << Fim da exclusão
READ TABLE itab_bancos WITH KEY lifnr = itab_relat-bconegoc.
* >> Início da inclusão: FORM PROCESSAR_DADOS
IF sy-subrc = 0.
* << Fim da inclusão
itab_relat-txtnegoc = itab_bancos-name1.
* >> Início da inclusão: FORM PROCESSAR_DADOS
ENDIF.
* << Fim da inclusão
* >> Início da exclusão: FORM PROCESSAR_DADOS
CLEAR itab_bancos.
* << Fim da exclusão
READ TABLE itab_bancos WITH KEY lifnr = itab_relat-bcofinan.
* >> Início da inclusão: FORM PROCESSAR_DADOS
IF sy-subrc = 0.
* << Fim da inclusão
itab_relat-txtfinan = itab_bancos-name1.
* >> Início da exclusão: FORM PROCESSAR_DADOS
MODIFY itab_relat.
* << Fim da exclusão
* >> Início da inclusão: FORM PROCESSAR_DADOS
ENDIF.
MODIFY itab_relat TRANSPORTING vlvinc slvinc slpagar slpagbr
txtnegoc txtfinan
WHERE nrseqc = itab_zycbt001-nrseqc.
DELETE itab_zycbt001 WHERE nrseqc = itab_zycbt001-nrseqc.
DELETE itab_zycbt002 WHERE nrseqc = itab_zycbt001-nrseqc.
DELETE itab_zycbt003 WHERE nrseqc = itab_zycbt001-nrseqc.
DELETE itab_zycbt004 WHERE nrseqc = itab_zycbt001-nrseqc.
DELETE itab_zycbt005 WHERE nrseqc = itab_zycbt001-nrseqc.
DELETE itab_zycbt006 WHERE nrseqc = itab_zycbt001-nrseqc.
DELETE itab_zycbt050 WHERE nrseqc = itab_zycbt001-nrseqc.
DELETE itab_zycbt051 WHERE nrseqc = itab_zycbt001-nrseqc.
* << Fim da inclusão
ENDLOOP.
ENDIF.
* >> Início da exclusão: FORM PROCESSAR_DADOS
SORT itab_sumario_tpparc BY nrseqc tpparc DESCENDING.
* << Fim da exclusão
ENDFORM.
FORM converter_moeda USING p_devlme p_dewaers p_parawaers p_ctmoeda
p_dtbase CHANGING p_paravlme p_taxa.
CHECK NOT p_devlme IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt009
...
...
itab_relat-txjfixa TO i_result-txjfixa,
itab_relat-txjvar TO i_result-txjvar,
itab_relat-vlusd TO i_result-vlusd,
itab_relat-dtpagto TO i_result-dtpagto,
itab_relat-prazo TO i_result-prazo.
IF itab_relat-tpparc(1) EQ 'P' .
MOVE: itab_relat-slvinc_jur TO i_result-slvinc_jur.
ELSEIF itab_relat-tpparc EQ 'J'.
MOVE: itab_relat-vlpagar TO i_result-vlpagar.
ENDIF.
* >> Início da exclusão: FORM F_MONTA_FINAL
SELECT SINGLE name1 INTO i_result-bconegoc FROM lfa1
WHERE lifnr = itab_relat-bconegoc.
* << Fim da exclusão
* >> Início da inclusão: FORM F_MONTA_FINAL
MOVE:
itab_relat-txtnegoc TO i_result-bconegoc,
itab_relat-txtfinan TO i_result-bcofinan.
* << Fim da inclusão
* >> Início da exclusão: FORM F_MONTA_FINAL
SELECT SINGLE name1 INTO i_result-bcofinan FROM lfa1
WHERE lifnr = itab_relat-bcofinan.
* << Fim da exclusão
MOVE /pws/zycbt007-waersa TO i_result-waersa.
APPEND i_result.
ENDLOOP.
LOOP AT i_result.
CLEAR i_final.
MOVE-CORRESPONDING i_result TO i_final.
APPEND i_final.
ENDLOOP.
ENDFORM.
FORM user_command USING ucomm TYPE sy-ucomm
...