CE PLUS - Nota 008354

Módulo: DRAWBACK

Funcionalidade: Relatórios

Data/Hora da Publicação: 29/04/2009 00:00:00

Data/Hora Última Alteração: 01/03/2010 18:38:18

Descrição da Nota: RELATÓRIO DE VERIFICAÇÃO DA INTEGRIDADE DOS DADOS DO DRAWBACK

Sintoma

 

Relatório de verificação da integridade dos dados do drawback

 

Solução

 

Relatório de verificação da integridade dos dados do drawback

Versões Tratadas

7.0

Informações Complementares

 

----------------------------------------------------------------------------------------------------

Nota Número 08354 Data: 29/04/2009 Hora: 14:33:56

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 08354

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00009

Agrupamento              : 00096

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

----------------------------------------------------------------------------------------------------

RELATÓRIO DE VERIFICAÇÃO DA INTEGRIDADE DOS DADOS DO DRAWBACK

----------------------------------------------------------------------------------------------------

Palavras Chave:

RELATÓRIO DE VERIFICAÇÃO DA INTEGRIDADE DOS DADOS DO DRAWBACK

 

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/ZYCIR348

REPT /PWS/ZYCIR348

TRAN /PWS/ZYCIR348

REPS /PWS/ZYCIR349

REPT /PWS/ZYCIR349

TRAN /PWS/ZYCIR349

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCIR348

*Criar o programa /PWS/ZYCIR348:

*Caracteristicas:

 

 Título:      CI - Embarques apropriados e não comprovados

 Categoria:             Programa executável

 Status:

 Aplicação:

 Grupo de autorização:

 Cl.desenvolvimento:    /PWS/ZYCI

 Banco de dados lógico:

 Versão tela seleção:

 Aritmética em ponto fixo : Ativo

 

*Código fonte:

* >> Início da inclusão:

REPORT /pws/zycir348 MESSAGE-ID /pws/zycim.

TABLES /pws/zycit282.

INCLUDE /pws/z_rel_alv.

DATA: BEGIN OF itab_zycit282 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit282.

DATA: END OF itab_zycit282.

DATA: BEGIN OF itab_zycit282_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit282.

DATA: END OF itab_zycit282_aux.

DATA: BEGIN OF itab_zycit248 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit248.

DATA: END OF itab_zycit248.

DATA: BEGIN OF itab_zycet001 OCCURS 0       ,

      nrseq     TYPE /pws/zycet001-nrseq    ,

      dtaverb   TYPE /pws/zycet001-dtaverb  ,

END OF itab_zycet001.

DATA: BEGIN OF itab_final OCCURS 0            ,

      nrseqd      TYPE /pws/zycit282-nrseqd   ,

      nrseqexp    TYPE /pws/zycit282-nrseqexp ,

      vbeln_va    TYPE /pws/zycit282-vbeln_va ,

      aupos       TYPE /pws/zycit282-aupos    ,

      vbeln_vl    TYPE /pws/zycit282-vbeln_vl ,

      posnl       TYPE /pws/zycit282-posnl    ,

      vbeln_vf    TYPE /pws/zycit282-posnr    ,

      posnr       TYPE /pws/zycit282-posnr    ,

      docnum      TYPE /pws/zycit282-docnum   ,

      matnr_exp   TYPE /pws/zycit282-matnr_exp,

      qtd_mexp    TYPE /pws/zycit282-qtd_mexp ,

      meins       TYPE /pws/zycit282-meins_e  ,

      dtaverb     TYPE /pws/zycet001-dtaverb  ,

      averbado(4) TYPE c                      ,

      selk                                    ,

      col                                     ,

      END OF itab_final                       .

DATA: v_cont(3)   TYPE n                      ,

      v_lines     TYPE i                      ,

      v_pct(3)    TYPE n                      ,

      v_tabix     TYPE sy-tabix               ,

      v_text(30)  TYPE c                      .

DATA: v_formato.

DATA: v_selinfo TYPE c VALUE 'X'.

DATA: v_varian  LIKE disvariant.

DATA: v_marc LIKE ttab-tabname VALUE 'X'.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS: p_nrseqd FOR /pws/zycit282-nrseqd OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-019.

PARAMETERS: v_zebra AS CHECKBOX,

            v_otim  AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK b2.

INITIALIZATION.

START-OF-SELECTION.

  PERFORM seleciona_dados.

  PERFORM move_dados.

  IF NOT itab_final[] IS INITIAL.

    PERFORM e04_comment_build USING gt_list_top_of_page[].

    PERFORM fieldcat.

    PERFORM monta_rel_alv.

  ELSE.

    MESSAGE i002.

    EXIT.

  ENDIF.

END-OF-SELECTION.

FORM seleciona_dados.

  SELECT * FROM /pws/zycit282 INTO TABLE itab_zycit282

  WHERE nrseqd IN p_nrseqd.                             "#EC CI_NOFIRST

  SELECT * FROM /pws/zycit248 INTO TABLE itab_zycit248

  WHERE nrseqd IN p_nrseqd.

  itab_zycit282_aux[] = itab_zycit282[].

  SORT itab_zycit282_aux BY nrseqexp.

  DELETE ADJACENT DUPLICATES FROM itab_zycit282_aux COMPARING nrseqexp.

  IF NOT itab_zycit282_aux[] IS INITIAL.

    SELECT nrseq dtaverb FROM /pws/zycet001 INTO TABLE itab_zycet001

    FOR ALL ENTRIES IN itab_zycit282_aux

    WHERE nrseq = itab_zycit282_aux-nrseqexp.

  ELSE.

    MESSAGE i002.

    EXIT.

  ENDIF.

ENDFORM.

FORM move_dados.

  SORT itab_zycit282 BY nrseqexp vbeln_va aupos vbeln_vf posnr docnum

  vbeln_vl posnl.

  DELETE ADJACENT DUPLICATES FROM itab_zycit282 COMPARING nrseqexp

  vbeln_va aupos vbeln_vf posnr docnum vbeln_vl posnl.

  DESCRIBE TABLE itab_zycit282 LINES v_lines.

  LOOP AT itab_zycit282.

    v_tabix = sy-tabix.

    v_cont = v_cont + 1.

    READ TABLE itab_zycit248 WITH KEY nrseqd   = itab_zycit282-nrseqd

                                      vbeln_va = itab_zycit282-vbeln_va

                                      aupos    = itab_zycit282-aupos

                                      vbeln_vl = itab_zycit282-vbeln_vl

                                      posnl    = itab_zycit282-posnl

                                      nrseq    = itab_zycit282-nrseqexp.

    IF sy-subrc NE 0.

      CLEAR itab_zycet001.

      READ TABLE itab_zycet001 WITH KEY nrseq = itab_zycit282-nrseqexp.

      MOVE:

            itab_zycit282-nrseqd          TO    itab_final-nrseqd    ,

            itab_zycit282-nrseqexp        TO    itab_final-nrseqexp  ,

            itab_zycit282-vbeln_va        TO    itab_final-vbeln_va  ,

            itab_zycit282-aupos           TO    itab_final-aupos     ,

            itab_zycit282-vbeln_vl        TO    itab_final-vbeln_vl  ,

            itab_zycit282-posnl           TO    itab_final-posnl     ,

            itab_zycit282-vbeln_vf        TO    itab_final-vbeln_vf  ,

            itab_zycit282-posnr           TO    itab_final-posnr     ,

            itab_zycit282-docnum          TO    itab_final-docnum    ,

            itab_zycit282-matnr_exp       TO    itab_final-matnr_exp ,

            itab_zycit282-qtd_mexp        TO    itab_final-qtd_mexp  ,

            itab_zycit282-meins_e         TO    itab_final-meins     ,

            itab_zycet001-dtaverb         TO    itab_final-dtaverb   .

      IF itab_final-dtaverb IS INITIAL.

        itab_final-averbado = '@5D@'.

      ELSE.

        itab_final-averbado = '@5C@'.

      ENDIF.

      APPEND itab_final.

    ENDIF.

    IF v_cont = 1000.

      CLEAR v_cont.

      v_pct = v_tabix / v_lines * 100.

      CONCATENATE text-018 v_pct '%' INTO v_text.

      CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

           EXPORTING

                percentage = v_pct

                text       = v_text.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM top_of_page.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

       EXPORTING

            it_list_commentary = gt_list_top_of_page.

ENDFORM.

FORM e04_comment_build USING gt_list_top_of_page TYPE slis_t_listheader.

  DATA: ls_line TYPE slis_listheader,

          v_data(10) TYPE c,

          v_data1(10) TYPE c,

          v_hora1(10) TYPE c,

          v_hora(10) TYPE c.

  v_data = sy-datum.

  v_hora = sy-uzeit.

  CLEAR ls_line.

  ls_line-typ  = 'H'.

  ls_line-info = text-001.

  APPEND ls_line TO gt_list_top_of_page.

  IF NOT v_data IS INITIAL.

    CONCATENATE v_data+6(2) '/' v_data+4(2) '/' v_data(4) INTO v_data1.

    CLEAR ls_line.

    ls_line-typ  = 'S'.

    ls_line-key  = text-002.

    ls_line-info = v_data1.

    APPEND ls_line TO  gt_list_top_of_page.

  ENDIF.

  IF NOT v_hora IS INITIAL.

    CONCATENATE v_hora(2) ':' v_hora+2(2) ':' v_hora+4(2) INTO v_hora1.

    CLEAR ls_line.

    ls_line-typ  = 'S'.

    ls_line-key  = text-003.

    ls_line-info = v_hora1.

    APPEND ls_line TO  gt_list_top_of_page.

  ENDIF.

ENDFORM.

FORM fieldcat.

  DATA i TYPE i.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'NRSEQD'.

  afield-ref_fieldname = 'NRSEQD'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 10.

  afield-reptext_ddic = text-004.

  afield-seltext_s = text-004.

  afield-seltext_m = text-004.

  afield-seltext_l = text-004.

  afield-just          = 'C'.

  afield-hotspot   = 'X'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'NRSEQEXP'.

  afield-ref_fieldname = 'NRSEQEXP'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 10.

  afield-reptext_ddic = text-005.

  afield-seltext_s = text-005.

  afield-seltext_m = text-005.

  afield-seltext_l = text-005.

  afield-just          = 'C'.

  afield-hotspot   = 'X'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'VBELN_VA'.

  afield-ref_fieldname = 'VBELN_VA'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 10.

  afield-reptext_ddic = text-006.

  afield-seltext_s = text-006.

  afield-seltext_m = text-006.

  afield-seltext_l = text-006.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'AUPOS'.

  afield-ref_fieldname = 'AUPOS'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 5.

  afield-reptext_ddic = text-007.

  afield-seltext_s = text-007.

  afield-seltext_m = text-007.

  afield-seltext_l = text-007.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'VBELN_VL'.

  afield-ref_fieldname = 'VBELN_VL'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 10.

  afield-reptext_ddic = text-008.

  afield-seltext_s = text-008.

  afield-seltext_m = text-008.

  afield-seltext_l = text-008.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'POSNL'.

  afield-ref_fieldname = 'POSNL'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 5.

  afield-reptext_ddic = text-009.

  afield-seltext_s = text-009.

  afield-seltext_m = text-009.

  afield-seltext_l = text-009.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'VBELN_VF'.

  afield-ref_fieldname = 'VBELN_VF'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 10.

  afield-reptext_ddic = text-010.

  afield-seltext_s = text-010.

  afield-seltext_m = text-010.

  afield-seltext_l = text-010.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'POSNR'.

  afield-ref_fieldname = 'POSNR'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 5.

  afield-reptext_ddic = text-011.

  afield-seltext_s = text-011.

  afield-seltext_m = text-011.

  afield-seltext_l = text-011.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'DOCNUM'.

  afield-ref_fieldname = 'DOCNUM'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 10.

  afield-reptext_ddic = text-012.

  afield-seltext_s = text-012.

  afield-seltext_m = text-012.

  afield-seltext_l = text-012.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'MATNR_EXP'.

  afield-ref_fieldname = 'MATNR_EXP'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 20.

  afield-reptext_ddic = text-013.

  afield-seltext_s = text-013.

  afield-seltext_m = text-013.

  afield-seltext_l = text-013.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'QTD_MEXP'.

  afield-ref_fieldname = 'QTD_MEXP'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 15.

  afield-reptext_ddic = text-014.

  afield-seltext_s = text-014.

  afield-seltext_m = text-014.

  afield-seltext_l = text-014.

  afield-qfieldname = 'MEINS'.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'MEINS'.

  afield-ref_fieldname = 'MEINS_E'.

  afield-ref_tabname = '/PWS/ZYCIT282'.

  afield-outputlen  = 3.

  afield-reptext_ddic = text-017.

  afield-seltext_s = text-017.

  afield-seltext_m = text-017.

  afield-seltext_l = text-017.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'DTAVERB'.

  afield-ref_fieldname = 'DTAVERB'.

  afield-ref_tabname = '/PWS/ZYCET001'.

  afield-outputlen  = 10.

  afield-reptext_ddic = text-015.

  afield-seltext_s = text-015.

  afield-seltext_m = text-015.

  afield-seltext_l = text-015.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'AVERBADO'.

  afield-ref_fieldname = 'SISCOMEX'.

  afield-ref_tabname = '/PWS/ZYCIT248'.

  afield-outputlen  = 2.

  afield-reptext_ddic = text-016.

  afield-seltext_s = text-016.

  afield-seltext_m = text-016.

  afield-seltext_l = text-016.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

ENDFORM.

FORM user_command USING ucomm LIKE sy-ucomm

                           selfield TYPE slis_selfield.

  CASE ucomm.

    WHEN 'BEAN'.

      READ TABLE itab_final INDEX selfield-tabindex.

      REPLACE '1-' WITH ' ' INTO selfield-sel_tab_field.

      CONDENSE selfield-sel_tab_field NO-GAPS.

      feld = selfield-sel_tab_field.

      IF feld = 'NRSEQEXP'.

        SET PARAMETER ID '/PWS/ZYCEP001' FIELD itab_final-nrseqexp.

        CALL TRANSACTION '/PWS/ZYCE003_E'                "#EC CI_CALLTA

        AND SKIP FIRST SCREEN.

      ENDIF.

      IF feld = 'NRSEQD'.

        SET PARAMETER ID '/PWS/ZYCIP435' FIELD itab_final-nrseqd.

        CALL TRANSACTION '/PWS/ZYCI040_E'                "#EC CI_CALLTA

        AND SKIP FIRST SCREEN.

      ENDIF.

  ENDCASE.

ENDFORM.

FORM monta_rel_alv.

  v_repid = sy-repid.

  IF NOT itab_final[] IS INITIAL.

    CALL FUNCTION '/PWS/ZYGL_GERA_RELATORIO_ALV'

         EXPORTING

              v_program      = v_repid

              v_pf_status    = ' '

              v_user_command = 'USER_COMMAND'

              v_top_of_page  = 'TOP_OF_PAGE'

              v_marc         = 'X'

              v_selinfo      = 'X'

              v_zebra        = v_zebra

              v_otimizado    = v_otim

         TABLES

              i_fieldcat     = i_fieldcat

              t_data         = itab_final

              it_sort        = i_sort.

  ENDIF.

ENDFORM.

* << Fim da inclusão

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPT /PWS/ZYCIR348

 

*Textos

001 Embarques apropriados e não comprovados

002 Data:

003 Hora:

004 Nr. Seq. Ato Concessório

005 Nr. Seq. Embarque

006 Orden de venda

007 Item da OV

008 Fornecimento

009 Item do Fornecimento

010 Faturamento

011 Item do Faturamento

012 Documento

013 Material

014 Quantidade

015 Dt. Averbação

016 Situação

017 UM

018 Verificando...

019 Critério de Seleção

 

*Textos de seleção

 

P_NRSEQD Ato Concessório

V_OTIM       Otimizado

V_ZEBRA Zebrado

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TRAN /PWS/ZYCIR348

*Criação da transação /PWS/ZYCIR348

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em MENU /PWS/ZYCID

 

* Incluir o Relatório /PWS/ZYCIR348 no menu de Drawback

 

...

Vinculação de Importação

Siscomex

Entrada de Notas Fiscais (Mercado Interno)

Relatórios

 

       Comprovação de Exportações (SISCOMEX)

       Controle das Exportações

       Controle das Importações

       Forecast

       Notas Fiscais de Entrada

       Comprovação de Drawback Intermediário

       Controle de Vencimento dos Atos Concessórios

       Relatório de Comprovação de Atos Genérico

       Listagem Geral de Atos Concessórios por Modalidade

       Comprovação das Exportações

       Comprovação das Importações

       Apropriações dos RE¿s por Ato concessório

       Apropriações das DI¿s por Ato concessório

       Follow Up

       Mapa geral dos saldos do Ato Concessório

       Controle de LI`s por Ato Concessório

       Relatório Gerencial das Economias Realizadas

       Laudo de Insumo X Produto e Produto X Insumo

       Relatório de vinculação dos Pedidos de Importação

       Rel. de saldo à importar Drawback Isenção

       Relat. DI X RE (Isenção)

       Relat. RE X DI (Isenção)

       Relatório de Nacionalização

* << Inicio da inclusão

       Embarques apropriados e não comprovados

* << Fim da inclusão

Comprovação Drawback Intermediário-Importação / Comercial Exportadora

Parâmetros

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCIR349

*Criar o programa /PWS/ZYCIR349:

*Caracteristicas:

 

 Título:      Verificação das Comprovações das Importações

 Categoria:             Programa executável

 Status:

 Aplicação:

 Grupo de autorização:

 Cl.desenvolvimento:    /PWS/ZYCI

 Banco de dados lógico:

 Versão tela seleção:

 Aritmética em ponto fixo : Ativo

 

*Código fonte:

* >> Início da inclusão:

REPORT /pws/zycir349 MESSAGE-ID /pws/zycim.

TABLES /pws/zycit279.

INCLUDE /pws/z_rel_alv.

DATA: BEGIN OF itab_zycit282 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit282.

DATA: END OF itab_zycit282.

DATA: BEGIN OF itab_zycit282_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit282.

DATA: END OF itab_zycit282_aux.

DATA: BEGIN OF itab_zycit279 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit279.

DATA: END OF itab_zycit279.

DATA: BEGIN OF itab_zycit470 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit470.

DATA: END OF itab_zycit470.

DATA: BEGIN OF itab_zycit470_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit470.

DATA: END OF itab_zycit470_aux.

DATA: BEGIN OF itab_final OCCURS 0            ,

      nrseqd      TYPE /pws/zycit279-nrseqd   ,

      nrseq       TYPE /pws/zycit279-nrseq    ,

      ebeln       TYPE /pws/zycit279-ebeln    ,

      ebelp       TYPE /pws/zycit279-ebelp    ,

      matnr       TYPE /pws/zycit279-ebelp    ,

      qtd_comp    TYPE /pws/zycit279-menge    ,

      qtd_apr     TYPE /pws/zycit279-menge    ,

      qtd_dif     TYPE /pws/zycit279-menge    ,

      meins       TYPE /pws/zycit279-meins    ,

      selk                                    ,

      col                                     ,

      END OF itab_final                       .

DATA: v_tot       TYPE /pws/zycit279-menge    ,

      v_saldo     TYPE /pws/zycit279-menge    ,

      v_lines     TYPE i                      ,

      v_pct(3)    TYPE n                      ,

      v_tabix     TYPE sy-tabix               ,

      v_text(30)  TYPE c                      .

DATA: v_formato.

DATA: v_selinfo TYPE c VALUE 'X'.

DATA: v_varian  LIKE disvariant.

DATA: v_marc LIKE ttab-tabname VALUE 'X'.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-015.

SELECT-OPTIONS: p_nrseqd FOR /pws/zycit279-nrseqd OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-015.

PARAMETERS: v_zebra AS CHECKBOX,

            v_otim  AS CHECKBOX.

SELECTION-SCREEN END OF BLOCK b2.

INITIALIZATION.

START-OF-SELECTION.

  PERFORM seleciona_dados.

  PERFORM move_dados.

  IF NOT itab_final[] IS INITIAL.

    PERFORM e04_comment_build USING gt_list_top_of_page[].

    PERFORM fieldcat.

    PERFORM monta_rel_alv.

  ELSE.

    MESSAGE i039 WITH text-014.

    EXIT.

  ENDIF.

END-OF-SELECTION.

FORM seleciona_dados.

  SELECT * FROM /pws/zycit282 INTO TABLE itab_zycit282

  WHERE nrseqd IN p_nrseqd.                             "#EC CI_NOFIRST

  SELECT * FROM /pws/zycit279 INTO TABLE itab_zycit279

  WHERE nrseqd IN p_nrseqd.                             "#EC CI_NOFIRST

  SELECT * FROM /pws/zycit470 INTO TABLE itab_zycit470

  WHERE nrseqd IN p_nrseqd.                             "#EC CI_NOFIRST

  IF itab_zycit282[] IS INITIAL OR itab_zycit279[] IS INITIAL.

    MESSAGE i002.

    EXIT.

  ENDIF.

ENDFORM.

FORM move_dados.

  DESCRIBE TABLE itab_zycit279 LINES v_lines.

  LOOP AT itab_zycit279.

    v_tabix = sy-tabix.

    REFRESH: itab_zycit282_aux, itab_zycit470_aux.

    CLEAR: itab_zycit282_aux, itab_zycit470_aux, itab_final, v_tot,

           v_saldo.

    itab_zycit282_aux[] = itab_zycit282[].

    itab_zycit470_aux[] = itab_zycit470[].

    DELETE itab_zycit282_aux WHERE nrseqd   NE itab_zycit279-nrseqd OR

                                   nrseqimp NE itab_zycit279-nrseq  OR

                                   ebeln    NE itab_zycit279-ebeln  OR

                                   ebelp    NE itab_zycit279-ebelp.

    DELETE itab_zycit470_aux WHERE nrseqd   NE itab_zycit279-nrseqd OR

                                   nrseq    NE itab_zycit279-nrseq  OR

                                   ebeln    NE itab_zycit279-ebeln  OR

                                   ebelp    NE itab_zycit279-ebelp.

    v_saldo = itab_zycit279-menge - itab_zycit279-slqtde.

    LOOP AT itab_zycit282_aux.

      v_tot = v_tot + itab_zycit282_aux-qtd_mimp.

    ENDLOOP.

    LOOP AT itab_zycit470_aux.

      v_tot = v_tot + itab_zycit470_aux-qtd.

    ENDLOOP.

    IF v_saldo NE v_tot.

      MOVE: itab_zycit279-nrseqd      TO      itab_final-nrseqd    ,

            itab_zycit279-nrseq       TO      itab_final-nrseq     ,

            itab_zycit279-ebeln       TO      itab_final-ebeln     ,

            itab_zycit279-ebelp       TO      itab_final-ebelp     ,

            itab_zycit279-matnr       TO      itab_final-matnr     ,

            v_saldo                   TO      itab_final-qtd_comp  ,

            v_tot                     TO      itab_final-qtd_apr   ,

            itab_zycit279-meins       TO      itab_final-meins     .

      itab_final-qtd_dif = v_tot - v_saldo.

      APPEND itab_final.

    ENDIF.

    v_pct = v_tabix / v_lines * 100.

    CONCATENATE text-013 v_pct '%' INTO v_text.

    CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

         EXPORTING

              percentage = v_pct

              text       = v_text.

  ENDLOOP.

ENDFORM.

FORM top_of_page.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

       EXPORTING

            it_list_commentary = gt_list_top_of_page.

ENDFORM.

FORM e04_comment_build USING gt_list_top_of_page TYPE slis_t_listheader.

  DATA: ls_line TYPE slis_listheader,

          v_data(10) TYPE c,

          v_data1(10) TYPE c,

          v_hora1(10) TYPE c,

          v_hora(10) TYPE c.

  v_data = sy-datum.

  v_hora = sy-uzeit.

  CLEAR ls_line.

  ls_line-typ  = 'H'.

  ls_line-info = text-001.

  APPEND ls_line TO gt_list_top_of_page.

  IF NOT v_data IS INITIAL.

    CONCATENATE v_data+6(2) '/' v_data+4(2) '/' v_data(4) INTO v_data1.

    CLEAR ls_line.

    ls_line-typ  = 'S'.

    ls_line-key  = text-002.

    ls_line-info = v_data1.

    APPEND ls_line TO  gt_list_top_of_page.

  ENDIF.

  IF NOT v_hora IS INITIAL.

    CONCATENATE v_hora(2) ':' v_hora+2(2) ':' v_hora+4(2) INTO v_hora1.

    CLEAR ls_line.

    ls_line-typ  = 'S'.

    ls_line-key  = text-003.

    ls_line-info = v_hora1.

    APPEND ls_line TO  gt_list_top_of_page.

  ENDIF.

ENDFORM.

FORM fieldcat.

  DATA i TYPE i.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'NRSEQD'.

  afield-ref_fieldname = 'NRSEQD'.

  afield-ref_tabname = '/PWS/ZYCIT279'.

  afield-outputlen  = 10.

  afield-reptext_ddic = text-004.

  afield-seltext_s = text-004.

  afield-seltext_m = text-004.

  afield-seltext_l = text-004.

  afield-just          = 'C'.

  afield-hotspot   = 'X'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'NRSEQ'.

  afield-ref_fieldname = 'NRSEQ'.

  afield-ref_tabname = '/PWS/ZYCIT279'.

  afield-outputlen  = 10.

  afield-reptext_ddic = text-005.

  afield-seltext_s = text-005.

  afield-seltext_m = text-005.

  afield-seltext_l = text-005.

  afield-just          = 'C'.

  afield-hotspot   = 'X'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'EBELN'.

  afield-ref_fieldname = 'EBELN'.

  afield-ref_tabname = '/PWS/ZYCIT279'.

  afield-outputlen  = 10.

  afield-reptext_ddic = text-006.

  afield-seltext_s = text-006.

  afield-seltext_m = text-006.

  afield-seltext_l = text-006.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'EBELP'.

  afield-ref_fieldname = 'EBELP'.

  afield-ref_tabname = '/PWS/ZYCIT279'.

  afield-outputlen  = 5.

  afield-reptext_ddic = text-007.

  afield-seltext_s = text-007.

  afield-seltext_m = text-007.

  afield-seltext_l = text-007.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'MATNR'.

  afield-ref_fieldname = 'MATNR'.

  afield-ref_tabname = '/PWS/ZYCIT279'.

  afield-outputlen  = 20.

  afield-reptext_ddic = text-008.

  afield-seltext_s = text-008.

  afield-seltext_m = text-008.

  afield-seltext_l = text-008.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'QTD_COMP'.

  afield-ref_fieldname = 'MENGE'.

  afield-ref_tabname = '/PWS/ZYCIT279'.

  afield-outputlen  = 15.

  afield-reptext_ddic = text-009.

  afield-seltext_s = text-009.

  afield-seltext_m = text-009.

  afield-seltext_l = text-009.

  afield-qfieldname = 'MEINS'.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'QTD_APR'.

  afield-ref_fieldname = 'MENGE'.

  afield-ref_tabname = '/PWS/ZYCIT279'.

  afield-outputlen  = 15.

  afield-reptext_ddic = text-010.

  afield-seltext_s = text-010.

  afield-seltext_m = text-010.

  afield-seltext_l = text-010.

  afield-qfieldname = 'MEINS'.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'QTD_DIF'.

  afield-ref_fieldname = 'MENGE'.

  afield-ref_tabname = '/PWS/ZYCIT279'.

  afield-outputlen  = 15.

  afield-reptext_ddic = text-011.

  afield-seltext_s = text-011.

  afield-seltext_m = text-011.

  afield-seltext_l = text-011.

  afield-qfieldname = 'MEINS'.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

  i = i + 1.

  CLEAR afield.

  afield-col_pos = i.

  afield-fieldname = 'MEINS'.

  afield-ref_fieldname = 'MEINS'.

  afield-ref_tabname = '/PWS/ZYCIT279'.

  afield-outputlen  = 3.

  afield-reptext_ddic = text-012.

  afield-seltext_s = text-012.

  afield-seltext_m = text-012.

  afield-seltext_l = text-012.

  afield-just          = 'C'.

  APPEND afield TO i_fieldcat.

ENDFORM.

FORM user_command USING ucomm LIKE sy-ucomm

                           selfield TYPE slis_selfield.

  CASE ucomm.

    WHEN 'BEAN'.

      READ TABLE itab_final INDEX selfield-tabindex.

      REPLACE '1-' WITH ' ' INTO selfield-sel_tab_field.

      CONDENSE selfield-sel_tab_field NO-GAPS.

      feld = selfield-sel_tab_field.

      IF feld = 'NRSEQD'.

        SET PARAMETER ID '/PWS/ZYCIP435' FIELD itab_final-nrseqd.

        CALL TRANSACTION '/PWS/ZYCI040_E'                "#EC CI_CALLTA

        AND SKIP FIRST SCREEN.

      ENDIF.

      IF feld = 'NRSEQ'.

        SET PARAMETER ID '/PWS/ZYCIP001' FIELD itab_final-nrseq.

        CALL TRANSACTION '/PWS/ZYCI001_E'

        AND SKIP FIRST SCREEN.                           "#EC CI_CALLTA

      ENDIF.

  ENDCASE.

ENDFORM.

FORM monta_rel_alv.

  v_repid = sy-repid.

  IF NOT itab_final[] IS INITIAL.

    CALL FUNCTION '/PWS/ZYGL_GERA_RELATORIO_ALV'

         EXPORTING

              v_program      = v_repid

              v_pf_status    = ' '

              v_user_command = 'USER_COMMAND'

              v_top_of_page  = 'TOP_OF_PAGE'

              v_marc         = 'X'

              v_selinfo      = 'X'

              v_zebra        = v_zebra

              v_otimizado    = v_otim

         TABLES

              i_fieldcat     = i_fieldcat

              t_data         = itab_final

              it_sort        = i_sort.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPT /PWS/ZYCIR349

 

*Textos

001 Verificação das comprovações das importações

002 Data:

003 Hora:

004 Ato Concessório

005 Embarque

006 Pedido

007 Item

008 Material

009 Qtd. Comprovada

010 Qtd. Apropriada

011 Diferença

012 UM

013 Verificando...

014 Não foram encontrados dados inconsistentes!

015 Critério de Seleção

 

*Textos de seleção

P_NRSEQD Ato Concessório

V_OTIM       Otimizado

V_ZEBRA Zebrado

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TRAN /PWS/ZYCIR349

*Criação da transação /PWS/ZYCIR349