Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Relatórios
Data/Hora da Publicação: 15/08/2008 00:00:00
Data/Hora Última Alteração: 11/03/2010 10:05:42
Descrição da Nota: SELEÇÃO DO RELATORIO DE CAMBIOS FECHADOS COMO O CAMPO "POSIÇÃO EM"
Sintoma
Seleção errada do relatorio de Cambios Fechados com o campo "Posição em" .
Solução
Incluir rotina para verificar a data "Posição em" na seleção.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07151 Data: 15/08/2008 Hora: 16:32:18
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07151
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00060
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
SELEÇÃO DO RELATORIO DE CAMBIOS FECHADOS COMO O CAMPO "POSIÇÃO EM"
----------------------------------------------------------------------------------------------------
Palavras Chave:
SELEÇÃO ERRADA DO RELATORIO DE CAMBIOS FECHADOS COM O CAMPO
"POSIÇÃO EM"
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCBR047
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR047
...
CLEAR g_variant.
g_variant-report = sy-repid.
g_variant-username = sy-uname.
AT SELECTION-SCREEN.
CLEAR p_varian.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varian.
PERFORM f4_for_variant.
START-OF-SELECTION.
PERFORM seleciona_dados.
PERFORM cria_range.
* >> Início da inclusão:
PERFORM filtra_dados.
* << Fim da inclusão
IF NOT p_alv IS INITIAL.
PERFORM imprime_relatorio.
IF NOT itab_erro[] IS INITIAL.
PERFORM imprime_relat_erro.
ENDIF.
ELSE.
MOVE sy-repid TO v_repid.
PERFORM e04_comment_build USING gt_list_top_of_page[].
PERFORM f_monta_final.
PERFORM f_fieldcat_fill.
...
...
SORT itab_zycbt003 BY nrseqc ASCENDING dtpror DESCENDING.
DELETE ADJACENT DUPLICATES FROM itab_zycbt003 COMPARING nrseqc.
LOOP AT itab_zycbt001.
CLEAR itab_zycbt003.
READ TABLE itab_zycbt003 WITH KEY nrseqc = itab_zycbt001-nrseqc.
IF sy-subrc EQ '0'.
itab_zycbt001-dtliquid = itab_zycbt003-dtpror.
MODIFY itab_zycbt001.
ENDIF.
ENDLOOP.
* >> Início da exclusão: FORM SELECIONA_DADOS
IF p_contp EQ 'X'.
IF p_dtliq NE '00000000'.
DELETE itab_zycbt001 WHERE slpagar = 0 OR
dtliquid GT p_dtliq.
ELSE.
DELETE itab_zycbt001 WHERE slpagar = 0.
ENDIF.
ELSEIF p_contl EQ 'X'.
IF p_dtliq NE '00000000'.
DELETE itab_zycbt001 WHERE slpagar > 0 OR
dtliquid GT p_dtliq.
ELSE.
DELETE itab_zycbt001 WHERE slpagar > 0.
ENDIF.
ELSEIF p_todos EQ 'X'.
IF p_dtliq NE '00000000'.
DELETE itab_zycbt001 WHERE dtliquid GT p_dtliq.
ENDIF.
ENDIF.
SELECT tpcontr txtdesc
FROM /pws/zycbt016
INTO TABLE itab_zycbt016. "#EC CI_NOWHERE
* << Fim da exclusão
ELSE.
MESSAGE i222.
STOP.
ENDIF.
IF NOT itab_zycbt001[] IS INITIAL.
SELECT nrseqc tpdesp nrparc dtincl nrinvoic nrparcf gsberf dtvincul
dtvencto waers vlvinc slpagar vljur
waers_c
INTO TABLE itab_zycbt005 FROM /pws/zycbt005
FOR ALL ENTRIES IN itab_zycbt001
...
...
MOVE /pws/zycbt009-kurst TO v_type.
IF NOT itab_zycbt005[] IS INITIAL.
SELECT * FROM /pws/zycbt064 INTO TABLE itab_zycbt064
FOR ALL ENTRIES IN itab_zycbt005
WHERE nrinvoic = itab_zycbt005-nrinvoic
AND nrparcf = itab_zycbt005-nrparcf
AND nrparc = itab_zycbt005-nrparc
AND dtvencto = itab_zycbt005-dtvencto
AND gsberf = itab_zycbt005-gsberf
AND tpdesp = 'J'
* >> Início da exclusão: FORM SELECIONA_DADOS
AND mdcorresp = 'ED'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
AND mdcorresp = 'ED'. "#EC CI_NOFIRST
* << Fim da inclusão
IF NOT itab_zycbt064[] IS INITIAL.
SELECT * FROM /pws/zycbt031 INTO TABLE itab_zycbt031
FOR ALL ENTRIES IN itab_zycbt064
WHERE nrseq = itab_zycbt064-nrboleto. "#EC CI_NOFIRST
ENDIF.
ENDIF.
ENDFORM.
FORM imprime_relatorio.
CLEAR: v_impr,
itab_erro.
...
...
i_dtbase_nao_encontrada = 4
taxa_nao_encontrada = 5
fator_nao_encontrado = 6
i_montante_nao_encontrado = 7
tabela_categ_nao_configurada = 8
OTHERS = 9.
IF sy-subrc NE 0.
p_defator = p_parafator = 1.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM filtra_dados.
DATA: v_tabix TYPE sy-tabix,
v_nrseq LIKE /pws/zycbt001-nrseqc,
v_vr LIKE /pws/zycbt001-vlme.
CLEAR: itab_zycbt001,
itab_zycbt005,
itab_zycbt006 .
LOOP AT itab_zycbt001.
CLEAR : v_tabix,
v_nrseq,
v_vr.
IF p_contp EQ 'X'.
IF p_dtliq NE '00000000'.
LOOP AT itab_zycbt005
WHERE nrseqc = itab_zycbt001-nrseqc
AND dtvincul LE p_dtliq.
IF sy-subrc = 0.
v_vr = itab_zycbt005-vlvinc + v_vr.
ENDIF.
ENDLOOP.
itab_zycbt001-slvinc = itab_zycbt001-vlme - v_vr.
IF NOT itab_zycbt001-slvinc IS INITIAL.
MODIFY itab_zycbt001 .
DELETE itab_zycbt005 WHERE nrseqc = itab_zycbt001-nrseqc.
DELETE itab_zycbt006 WHERE nrseqc = itab_zycbt001-nrseqc.
ELSE.
MESSAGE i222.
STOP.
ENDIF.
ELSE.
ENDIF.
ELSEIF p_contl EQ 'X'.
IF p_dtliq NE '00000000'.
LOOP AT itab_zycbt006
WHERE nrseqc = itab_zycbt001-nrseqc.
v_tabix = sy-tabix.
v_nrseq = itab_zycbt006-nrseqc.
READ TABLE itab_zycbt005
WITH KEY nrinvoic = itab_zycbt006-nrinvoic.
IF itab_zycbt006-dtpagto GT p_dtliq.
DELETE itab_zycbt006 INDEX v_tabix.
DELETE itab_zycbt005
WHERE nrinvoic = itab_zycbt006-nrinvoic.
ENDIF.
IF itab_zycbt006[] IS INITIAL.
DELETE itab_zycbt001 WHERE nrseqc = v_nrseq.
IF itab_zycbt001[] IS INITIAL.
MESSAGE i222.
STOP.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
DELETE itab_zycbt001 WHERE slpagar > 0 .
IF itab_zycbt001[] IS INITIAL.
MESSAGE i222.
STOP.
ENDIF.
ENDIF.
ELSEIF p_todos EQ 'X'.
ENDIF.
ENDLOOP.
ENDFORM.
* << Fim da inclusão