CE PLUS - Nota 001977

Módulo: DRAWBACK

Funcionalidade: Relatórios

Data/Hora da Publicação: 24/08/2006 00:00:00

Data/Hora Última Alteração: 17/02/2011 14:27:07

Descrição da Nota: TRATAMENTO NO PROGRAMA PARA TRAZER CORRETAMENTE OS INSUMOS

Sintoma

O programa não estava trazendo corretamente os insumos alternativos ao gravar. Ao deletar não

perguntava ao usuário se realmente deseja excluir. Não havia título na tela do programa.

 

 

Solução

Foi feito um tratamento no perform GRAVA para deletar apenas os insumos que tivessem o campo Grupo

diferente do insumo que havia sido inserido neste Grupo.

Foi utilizada a função: 'POPUP_TO_CONFIRM' que ja havia sido utilizada no programa para perguntar ao

usuario se deseja realmente excluir.

Foi inserido o título na tela do programa.

 

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

DESENVOLVIMENTO DO PROGRAMA INSUMOS ALTERNATIVOS

Informações Complementares

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

Nota Número 01977 Data: 24/08/2006 Hora: 13:53:49

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

 

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

Nota Número              : 01977

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00024

Agrupamento              : 00128

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

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

01960  - 00001 - 6.0    - 00024  - DESENVOLVIMENTO DO PROGRAMA INSUMOS ALTERNATIVOS

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

TRATAMENTO NO PROGRAMA PARA TRAZER CORRETAMENTE OS INSUMOS

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

Palavras Chave:

INSUMOS ALTERNATIVOS, /PWS/ZYCIR342, TABELA: /PWS/ZYCIT433

DELETAR, TÍTULO

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

Objetos da nota:

REPS /PWS/ZYCIR342

REPS /PWS/ZYCIR342F01

REPS /PWS/ZYCIR342I01

REPS /PWS/ZYCIR342O01

REPS /PWS/ZYCIR342TOP

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342F01

 

...

        itab_grupo-desc_g  TO /pws/zycie433-desc_g ,

        itab_grupo-j_1bnbm TO /pws/zycie433-j_1bnbm,

        itab_grupo-meins   TO /pws/zycie433-meins  .

ENDFORM.

FORM deleta_insumo.

* >> Início da exclusão: FORM DELETA_INSUMO

  DATA: v_matnr_d TYPE mara-matnr.

* << Fim da exclusão

* >> Início da inclusão: FORM DELETA_INSUMO

  DATA: v_matnr_d    TYPE mara-matnr.

* << Fim da inclusão

  CLEAR: v_matnr_d.

  SELECT SINGLE matnr

    FROM /pws/zycit279

    INTO v_matnr_d

    WHERE matnr EQ itab_insumo-matnr.

...

 

...

    WHERE codcomp EQ itab_insumo-matnr.

  IF NOT v_matnr_d IS INITIAL.

  message  i015 with text-005.

    EXIT.

  ENDIF.

* >> Início da inclusão: FORM DELETA_INSUMO

  IF v_resposta EQ '1'.

* << Fim da inclusão

  LOOP AT itab_zycit433_s WHERE grupo EQ itab_insumo-grupo

                            AND ( matnr EQ itab_insumo-matnr

                             OR matnr_alt EQ itab_insumo-matnr ).

    itab_zycit433_d = itab_zycit433_s.

    APPEND itab_zycit433_d.

...

 

...

  ENDLOOP.

  SORT itab_zycit433_d BY grupo matnr matnr_alt.

  DELETE ADJACENT DUPLICATES FROM itab_zycit433_d

      COMPARING grupo matnr matnr_alt.

  DELETE itab_insumo WHERE mark EQ 'X'.

* >> Início da inclusão: FORM DELETA_INSUMO

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM pergunta USING p_titulo

                    p_pergunta

           CHANGING p_resposta.

  CLEAR: p_resposta.

...

 

...

          text_not_found              = 1

          OTHERS                      = 2.

ENDFORM.

FORM grava.

  DATA: itab_zycit433_a1 TYPE /pws/zycit433 OCCURS 0 WITH HEADER LINE,

* >> Início da exclusão: FORM GRAVA

        itab_zycit433_a2 TYPE /pws/zycit433 OCCURS 0 WITH HEADER LINE.

* << Fim da exclusão

* >> Início da inclusão: FORM GRAVA

        itab_zycit433_a2 TYPE /pws/zycit433 OCCURS 0 WITH HEADER LINE,

        v_matnr_alt      TYPE /pws/zycit433-matnr_alt.

* << Fim da inclusão

  REFRESH: itab_zycit433_a1, itab_zycit433_a2.

  itab_zycit433_a1[] = itab_zycit433_s[].

* >> Início da exclusão: FORM GRAVA

  DELETE itab_zycit433_a1 WHERE matnr_alt NE space.

* << Fim da exclusão

* >> Início da inclusão: FORM GRAVA

  DELETE itab_zycit433_a1 WHERE grupo NE itab_zycit433_s-grupo.

* << Fim da inclusão

  IF NOT itab_zycit433_a1[] IS INITIAL.

    itab_zycit433_a2[] = itab_zycit433_s[].

    SORT itab_zycit433_a2 BY grupo matnr.

    DELETE ADJACENT DUPLICATES FROM itab_zycit433_a2

        COMPARING grupo matnr.

...

 

...

        itab_zycit433_s-matnr_alt = itab_zycit433_a2-matnr.

        APPEND itab_zycit433_s.

      ENDLOOP.

    ENDLOOP.

    DELETE itab_zycit433_s WHERE matnr_alt EQ space.

* >> Início da inclusão: FORM GRAVA

    SORT itab_zycit433_s BY grupo matnr matnr_alt.

    DELETE ADJACENT DUPLICATES FROM itab_zycit433_s.

* << Fim da inclusão

  ENDIF.

  DELETE /pws/zycit433 FROM TABLE itab_zycit433_d.

  MODIFY /pws/zycit433 FROM TABLE itab_zycit433_s.

* >> Início da inclusão: FORM GRAVA

ENDFORM.

* << Fim da inclusão

* >> Início da exclusão: FORM GRAVA

ENDFORM.

* << Fim da exclusão

.

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342I01

 

...

  ENDIF.

ENDMODULE.

MODULE user_command_0101 INPUT.

ENDMODULE.

MODULE   user_command_0100 INPUT.

* >> Início da exclusão: MODULE USER_COMMAND_0100

  DATA: v_resposta TYPE c.

* << Fim da exclusão

* >> Início da inclusão: MODULE USER_COMMAND_0100

  DATA: v_resposta   TYPE c.

* << Fim da inclusão

  CASE v_okcode.

    WHEN 'FS_GR'.

      v_tela = '0101'.

      v_pasta = v_okcode.

    WHEN 'FS_IS'.

...

 

...

    WHEN 'DELE'.

      CASE v_tela.

        WHEN '0101'.

          READ TABLE itab_grupo WITH KEY mark = 'X'.

          IF sy-subrc EQ 0.

* >> Início da inclusão: MODULE USER_COMMAND_0100

            PERFORM pergunta USING text-001

                                   text-022

                          CHANGING v_resposta.

            IF v_resposta EQ '1'.

* << Fim da inclusão

            READ TABLE itab_zycit433_s WITH KEY

                      grupo = itab_grupo-grupo.

            IF sy-subrc EQ 0.

              MESSAGE i015 WITH text-008.

              EXIT.

            ENDIF.

            DELETE itab_grupo WHERE mark = 'X'.

          ENDIF.

* >> Início da inclusão: MODULE USER_COMMAND_0100

          ENDIF.

* << Fim da inclusão

        WHEN '0102'.

          READ TABLE itab_insumo WITH KEY mark = 'X'.

          IF sy-subrc NE 0.

            EXIT.

* >> Início da inclusão: MODULE USER_COMMAND_0100

          else.

            PERFORM pergunta USING text-001

                         text-019

                   CHANGING v_resposta.

* << Fim da inclusão

          ENDIF.

          PERFORM deleta_insumo.

      ENDCASE.

    WHEN 'SAVE'.

      PERFORM pergunta USING text-001

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342O01

 

...

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE status_0100 OUTPUT.

  SET PF-STATUS 'ST0100'.

* >> Início da inclusão: MODULE STATUS_0100

  SET TITLEBAR '0100'.

* << Fim da inclusão

  IF v_ini IS INITIAL.

    v_ini = 'X'.

    SORT itab_zycit433 BY grupo matnr matnr_alt .

    SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433.

    itab_zycit433_s[] = itab_zycit433[].

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYCIR342TOP

 

...

data: end of itab_grupo.

data: begin of itab_insumo occurs 0.

include structure /pws/zycit433.

data: mark  type c             .

data: end of itab_insumo.

* >> Início da exclusão:

data: v_ini     type c                      ,

      v_mark    type c                      ,

      v_okcode  type sy-ucomm               ,

      v_tela(4) type c value '0101'         ,

      v_pasta   type sy-ucomm value 'TS_GR' .

* << Fim da exclusão

* >> Início da inclusão:

DATA: v_ini        TYPE c                      ,

      v_mark       TYPE c                      ,

      v_okcode     TYPE sy-ucomm               ,

      v_tela(4)    TYPE c VALUE '0101'         ,

      v_pasta      TYPE sy-ucomm VALUE 'TS_GR' ,

      v_confirm(1) TYPE c VALUE 'N'            .

* << Fim da inclusão