CE PLUS - Nota 001960

Módulo: DRAWBACK

Funcionalidade: Relatórios

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

Data/Hora Última Alteração: 17/02/2011 14:26:23

Descrição da Nota: DESENVOLVIMENTO DO PROGRAMA INSUMOS ALTERNATIVOS

Sintoma

Desenvolvimento do programa Insumo Alternativo / Avanço Tecnológico

 

 

Solução

Desenvolvimento do programa Insumo Alternativo / Avanço Tecnológico

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 01960 Data: 21/08/2006 Hora: 09:17:15

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

 

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

Nota Número              : 01960

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00024

Agrupamento              : 00127

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

DESENVOLVIMENTO DO PROGRAMA INSUMOS ALTERNATIVOS

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

Palavras Chave:

INSUMOS, ALTERNATIVOS, AVANÇO TECNOLOGICO, GENÉRICO, NCM

 

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

Objetos da nota:

REPS /PWS/ZYCIR342

REPS /PWS/ZYCIR342F01

REPS /PWS/ZYCIR342I01

REPS /PWS/ZYCIR342O01

REPS /PWS/ZYCIR342TOP

TABD /PWS/ZYCIT433

TABL /PWS/ZYCIE433

 

MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCIT433____________________________

DESCRIÇÃO BREVE: CI - Insumos Alternativos - Drawback___________________

 

CARACTERÍSTICAS

 

CATEGORIA DA TABELA: ___________________________

CLASSE DE ENTREGA:   ___________________________

(_) - AUTUALIZAÇÃO DE TABELAS PERMITIDA

 

CAMPOS NOVOS

 

CAMPOS:         TP. CAMPO   CH: INI: TAB.VERIF.:    TAB.REF.:     CPO.RE

 

GRUPO           CHAR4       X    X

DESC_G          MAKTX

J_1BNBM         J_1BNBMCO1            T604F

MEINS           MEINS                 T006

MAKTX           MAKTX

DTDE            DATUM

DTATE           DATUM

 

 

CAMPOS EXCLUÍDOS

 

CAMPOS:         TP. CAMPO   CH: INI: TAB.VERIF.:    TAB.REF.:     CPO.RE

 

OPÇÕES TÉCNICAS

 

TIPO DE DADOS: ________

CATEGOR. TAMANHO: _____

 

(_) - AR. BUFFER NÃO PERMITIDO

(_) - AR. BUFFER PERMITIDO, MAS DESATIVADO

(_) - AR. BUFFER ATIVADO

(_) - RGSTS. IND ARMAZENADOS

(_) - ÁREA GEN ARMAZENADA EM BUFFER   Nº DE CPOS CHAVE: ______

(_) - TOTALMENTE ARMAZENADO

(_) - REGISTRAR MODIFICS. DDS. EM LOG.

 

 

MODIFICAR ESTRUTURA: /PWS/ZYCIE433_________________________________________________________

DESCRIÇÃO BREVE: CI - Insumos Alternativos - Drawback______________________________________

 

COMPONENTES NOVOS

COMPONENTE:     TP. COMP:      TAB.REF.:       CPO.REF.:    AJUD. PESQU.

 

GRUPO           CHAR4

DESC_G          MAKTX

J_1BNBM         J_1BNBMCO1

MEINS           MEINS                                       H_T006

MAKTX           MAKTX

DTDE            DATUM

DTATE           DATUM

 

COMPONENTES EXCLUÍDOS

COMPONENTE:     TP. COMP:      TAB.REF.:       CPO.REF.:    AJUD. PESQU.

 

 

 

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

DESENVOLVIMENTO DO PROGRAMA /PWS/ZYCIR342

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

*&---------------------------------------------------------------------*

*& Pool móds.        /PWS/ZYCIR342                                     *

*&                                                                     *

*&---------------------------------------------------------------------*

*&                                                                     *

*&                                                                     *

*&---------------------------------------------------------------------*

 

 

INCLUDE /pws/zycir342top                        .                      "

INCLUDE /pws/zycir342o01                        .

INCLUDE /pws/zycir342i01                        .

INCLUDE /pws/zycir342f01                        .

 

 

 

 

 

 

 

*&---------------------------------------------------------------------*

*& Include /PWS/ZYCIR342TOP                                            *

*&                                                                     *

*&---------------------------------------------------------------------*

 

PROGRAM  /pws/zycir342    MESSAGE-ID /pws/zycim  .

 

*Tabela

TABLES: /pws/zycit433,

        /pws/zycie433.

 

 

 

*Controles de tela

 

CONTROLS: ts_princ   TYPE TABSTRIP                     ,

          tc_grupo   TYPE TABLEVIEW USING SCREEN '0101',

          tc_insumo  TYPE TABLEVIEW USING SCREEN '0102'.

 

 

*Tabelas internas

 

*Materiais cadastrados em tabela

DATA: BEGIN OF itab_zycit433 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit433.

DATA: END OF itab_zycit433.

 

*Materiais a serem eliminados

DATA: BEGIN OF itab_zycit433_d OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit433.

DATA: END OF itab_zycit433_d.

 

*Tabela de modificações

DATA: BEGIN OF itab_zycit433_s OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit433.

DATA: END OF itab_zycit433_s.

 

*Tabela de exibição de grupo.

DATA: BEGIN OF itab_grupo OCCURS 0.

DATA: grupo   TYPE /pws/zycit433-grupo  , "grupo

      desc_g  TYPE /pws/zycit433-desc_g ,

      j_1bnbm TYPE /pws/zycit433-j_1bnbm,

      meins   TYPE /pws/zycit433-meins  ,

      mark    TYPE c                    .

DATA: END OF itab_grupo.

 

*Tabela de insumos por grupo.

DATA: BEGIN OF itab_insumo OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit433.

DATA: mark  TYPE c             .

DATA: END OF itab_insumo.

 

 

 

*Variaveis

 

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'            ,

      v_resposta   TYPE c                      .

 

 

 

 

 

*----------------------------------------------------------------------*

*   INCLUDE /PWS/ZYCIR342O01                                           *

*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*&      Module  preenche_grupo  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE preenche_grupo OUTPUT.

 

  MOVE: itab_grupo-grupo   TO /pws/zycie433-grupo  ,

        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  ,

        itab_grupo-mark    TO v_mark.

 

 

ENDMODULE.                 " preenche_grupo  OUTPUT

*&---------------------------------------------------------------------*

*&      Module  tela_101  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE tela_101 OUTPUT.

 

  IF NOT /pws/zycie433-grupo IS INITIAL.

    READ TABLE itab_zycit433_s WITH KEY

                            grupo = /pws/zycie433-grupo.

    IF sy-subrc EQ 0.

      LOOP AT SCREEN .

        IF screen-name NE 'V_MARK'.

          screen-input = 0.

          MODIFY SCREEN.

        ENDIF.

      ENDLOOP.

    ENDIF.

 

  ENDIF.

 

ENDMODULE.                 " tela_101  OUTPUT

*&---------------------------------------------------------------------*

*&      Module  STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE status_0100 OUTPUT.

  SET PF-STATUS 'ST0100'.

  SET TITLEBAR '0100'.

 

  IF v_ini IS INITIAL.

    v_ini = 'X'.

 

    SORT itab_zycit433 BY grupo matnr.

    SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433.

    itab_zycit433_s[] = itab_zycit433[].

    LOOP AT itab_zycit433.

      itab_grupo-grupo = itab_zycit433-grupo  .

      itab_grupo-desc_g  = itab_zycit433-desc_g .

      itab_grupo-j_1bnbm = itab_zycit433-j_1bnbm.

      itab_grupo-meins   = itab_zycit433-meins  .

      COLLECT itab_grupo.

    ENDLOOP.

    DELETE itab_grupo WHERE grupo EQ space.

    SORT itab_grupo BY grupo.

  ENDIF.

  ts_princ-activetab = v_pasta.

 

ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*

*&      Module  STATUS_0101  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE status_0101 OUTPUT.

  DATA: v_linha TYPE i.

 

*  SET PF-STATUS 'xxxxxxxx'.

 

 

  DESCRIBE TABLE itab_grupo LINES v_linha.

  tc_grupo-lines = v_linha + 20.

ENDMODULE.                 " STATUS_0101  OUTPUT

*&---------------------------------------------------------------------*

*&      Module  preenche_insumo  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE preenche_insumo OUTPUT.

 

  /pws/zycie433-matnr     = itab_insumo-matnr.

  /pws/zycie433-dtde      = itab_insumo-dtde.

  /pws/zycie433-dtate     = itab_insumo-dtate.

  /pws/zycie433-maktx     = itab_insumo-maktx.

  v_mark                  = itab_insumo-mark.

 

 

ENDMODULE.                 " preenche_insumo  OUTPUT

*&---------------------------------------------------------------------*

*&      Module  STATUS_0102  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE status_0102 OUTPUT.

  DATA: v_linha_102 TYPE i.

*  SET PF-STATUS 'xxxxxxxx'.

 

  DESCRIBE TABLE itab_insumo LINES v_linha_102.

  tc_insumo-lines = v_linha_102 + 20.

 

ENDMODULE.                 " STATUS_0102  OUTPUT

*&---------------------------------------------------------------------*

*&      Module  tela_102  OUTPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE tela_102 OUTPUT.

  IF NOT /pws/zycie433-matnr IS INITIAL.

    LOOP AT SCREEN.

      IF screen-name EQ '/PWS/ZYCIE433-MATNR'.

        screen-input = 0.

        MODIFY SCREEN.

      ENDIF.

    ENDLOOP.

  ENDIF.

ENDMODULE.                 " tela_102  OUTPUT

 

 

 

 

 

 

 

*----------------------------------------------------------------------*

*   INCLUDE /PWS/ZYCIR342I01                                           *

*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*&      Module  preenche_grupos  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE preenche_grupos INPUT.

 

  IF /pws/zycie433-grupo IS INITIAL.

    EXIT.

  ENDIF.

  READ TABLE itab_grupo INDEX tc_grupo-current_line.

  IF sy-subrc NE 0 .

    READ TABLE itab_grupo WITH KEY

                        grupo = /pws/zycie433-grupo.

    IF sy-subrc EQ 0.

      MESSAGE i015  WITH text-006.

      EXIT.

    ENDIF.

    itab_grupo-grupo   = /pws/zycie433-grupo  .

    itab_grupo-desc_g  = /pws/zycie433-desc_g .

    itab_grupo-j_1bnbm = /pws/zycie433-j_1bnbm.

    itab_grupo-meins   = /pws/zycie433-meins  .

 

    APPEND itab_grupo.

 

  ELSE.

    itab_grupo-grupo   = /pws/zycie433-grupo  .

    itab_grupo-desc_g  = /pws/zycie433-desc_g .

    itab_grupo-j_1bnbm = /pws/zycie433-j_1bnbm.

    itab_grupo-meins   = /pws/zycie433-meins  .

 

    MODIFY itab_grupo INDEX tc_grupo-current_line.

  ENDIF.

ENDMODULE.                 " preenche_grupos  INPUT

*&---------------------------------------------------------------------*

*&      Module  USER_COMMAND_0101  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE user_command_0101 INPUT.

 

ENDMODULE.                 " USER_COMMAND_0101  INPUT

*&---------------------------------------------------------------------*

*&      Module  USER_COMMAND_0100  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE   user_command_0100 INPUT.

 

  CASE v_okcode.

 

    WHEN 'FS_GR'.

      v_tela = '0101'.

      v_pasta = v_okcode.

    WHEN 'FS_IS'.

      READ TABLE itab_grupo WITH KEY mark = 'X'.

      IF sy-subrc NE 0.

        MESSAGE s015 WITH text-007.

        EXIT.

      ENDIF.

 

      v_tela = '0102'.

      v_pasta = v_okcode.

      PERFORM move_insumos.

    WHEN 'DELE'.

 

      CASE v_tela.

 

        WHEN '0101'.

*Verifica se há itens selecionados para excluir.

          READ TABLE itab_grupo WITH KEY mark = 'X'.

          IF sy-subrc EQ 0.

            PERFORM pergunta USING text-001

                                   text-022

                          CHANGING v_resposta.

            IF v_resposta EQ '1'.

              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.

          ENDIF.

 

        WHEN '0102'.

          READ TABLE itab_insumo WITH KEY mark = 'X'.

          IF sy-subrc NE 0.

            EXIT.

          ELSE.

            PERFORM pergunta USING text-001

                         text-019

                   CHANGING v_resposta.

          ENDIF.

          PERFORM deleta_insumo.

      ENDCASE.

 

    WHEN 'SAVE'.

      PERFORM pergunta USING text-001

                             text-002

                    CHANGING v_resposta.

      IF v_resposta EQ '1'.

        PERFORM grava.

      ENDIF.

    WHEN 'EXIT'.

      PERFORM pergunta USING text-001

                             text-017

                    CHANGING v_resposta.

      IF v_resposta EQ '1'.

        PERFORM grava.

      ENDIF.

      IF v_resposta NE 'A'.

        LEAVE PROGRAM.

      ENDIF.

  ENDCASE.

 

 

ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&---------------------------------------------------------------------*

*&      Module  marca_l101  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE marca_l101 INPUT.

 

  READ TABLE itab_grupo INDEX tc_grupo-current_line.

  IF sy-subrc EQ 0 .

    itab_grupo-mark = v_mark.

    MODIFY itab_grupo INDEX tc_grupo-current_line.

  ENDIF.

 

ENDMODULE.                 " marca_l101  INPUT

*&---------------------------------------------------------------------*

*&      Module  preenche_insumo  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE preenche_insumo INPUT.

  DATA: v_mensagem(50) TYPE c,

        v_exist        TYPE c.

  IF /pws/zycie433-matnr IS INITIAL.

    EXIT.

  ENDIF.

  CLEAR: itab_insumo.

  READ TABLE itab_insumo INDEX tc_insumo-current_line.

  IF sy-subrc NE 0 .

    READ TABLE itab_insumo WITH KEY matnr = /pws/zycie433-matnr.

    IF sy-subrc EQ 0.

      MESSAGE i015 WITH text-016.

      EXIT.

    ENDIF.

    CLEAR: v_exist.

    LOOP AT itab_zycit433_s

                    WHERE matnr EQ /pws/zycie433-matnr

 

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  >= /pws/zycie433-dtde

                       AND    dtde  <= /pws/zycie433-dtate )

                       OR  (  dtate >= /pws/zycie433-dtde

                       AND    dtate <= /pws/zycie433-dtate ) ).

      v_exist = 'X'.

      EXIT.

    ENDLOOP.

 

    LOOP AT itab_zycit433_s

                    WHERE matnr EQ /pws/zycie433-grupo

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate )

                       OR  (  dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate ) ).

      v_exist = 'X'.

      EXIT.

    ENDLOOP.

 

    IF v_exist EQ 'X'.

      MESSAGE i015 WITH text-009 /pws/zycie433-matnr text-010.

      EXIT.

    ENDIF.

 

    SELECT SINGLE a~steuc b~meins

           INTO (itab_insumo-j_1bnbm, itab_insumo-meins)

           FROM ( marc AS a INNER JOIN mara AS b ON

                  a~matnr EQ b~matnr )

           WHERE a~matnr EQ /pws/zycie433-matnr.

 

    IF  itab_grupo-j_1bnbm NE itab_insumo-j_1bnbm.

      CLEAR v_mensagem.

      CONCATENATE text-009 /pws/zycie433-matnr text-012

                INTO v_mensagem SEPARATED BY space.

      MESSAGE i015 WITH v_mensagem itab_insumo-j_1bnbm text-014.

      EXIT.

    ENDIF.

    IF  itab_grupo-meins NE itab_insumo-meins.

      CLEAR v_mensagem.

      CONCATENATE text-009 /pws/zycie433-matnr text-013

                INTO v_mensagem SEPARATED BY space.

      MESSAGE i015 WITH v_mensagem itab_insumo-meins text-014.

      EXIT.

    ENDIF.

    SELECT SINGLE maktx FROM makt

         INTO itab_insumo-maktx

         WHERE matnr EQ /pws/zycie433-matnr.

 

    IF /pws/zycie433-dtde > /pws/zycie433-dtate.

      MESSAGE i015 WITH text-015.

      EXIT.

    ENDIF.

    MOVE:

        itab_grupo-grupo        TO itab_insumo-grupo ,

        itab_grupo-j_1bnbm      TO itab_insumo-j_1bnbm,

        itab_grupo-meins        TO itab_insumo-meins,

        itab_grupo-desc_g       TO itab_insumo-desc_g,

 

        /pws/zycie433-matnr     TO itab_insumo-matnr,

        /pws/zycie433-dtde      TO itab_insumo-dtde,

        /pws/zycie433-dtate     TO itab_insumo-dtate.

    APPEND itab_insumo.

    itab_zycit433_s = itab_insumo.

    APPEND itab_zycit433_s.

  ELSE.

 

    CLEAR: v_exist.

    LOOP AT itab_zycit433_s

                    WHERE matnr EQ /pws/zycie433-matnr

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  >= /pws/zycie433-dtde

                       AND    dtde  <= /pws/zycie433-dtate )

                       OR  (  dtate >= /pws/zycie433-dtde

                       AND    dtate <= /pws/zycie433-dtate ) ).

      v_exist = 'X'.

      EXIT.

    ENDLOOP.

 

    LOOP AT itab_zycit433_s

                    WHERE matnr EQ /pws/zycie433-grupo

                      AND grupo NE itab_grupo-grupo

                      AND ( ( dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate )

                       OR  (  dtde  <= /pws/zycie433-dtde

                       AND    dtate >= /pws/zycie433-dtate ) ).

      v_exist = 'X'.

      EXIT.

    ENDLOOP.

 

    IF v_exist EQ 'X'.

      MESSAGE i015 WITH text-009 /pws/zycie433-matnr text-010.

      EXIT.

    ENDIF.

    IF /pws/zycie433-dtde > /pws/zycie433-dtate.

      MESSAGE i015 WITH text-015.

      EXIT.

    ENDIF.

 

    MOVE:

        /pws/zycie433-dtde      TO itab_insumo-dtde,

        /pws/zycie433-dtate     TO itab_insumo-dtate.

    MODIFY itab_insumo INDEX tc_insumo-current_line.

    itab_zycit433_s = itab_insumo.

    MODIFY itab_zycit433_s TRANSPORTING dtde dtate

                WHERE matnr EQ /pws/zycie433-matnr

                            AND grupo = /pws/zycie433-grupo.

 

 

  ENDIF.

 

 

ENDMODULE.                 " preenche_insumo  INPUT

*&---------------------------------------------------------------------*

*&      Module  marca_l102  INPUT

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

MODULE marca_l102 INPUT.

 

  READ TABLE itab_insumo INDEX tc_insumo-current_line.

  IF sy-subrc EQ 0 .

    itab_insumo-mark = v_mark.

    MODIFY itab_insumo INDEX tc_insumo-current_line.

  ENDIF.

 

ENDMODULE.                 " marca_l102  INPUT

 

 

 

 

 

 

*----------------------------------------------------------------------*

*   INCLUDE /PWS/ZYCIR342F01                                           *

*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*

*&      Form  move_insumos

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM move_insumos.

 

  itab_insumo[] = itab_zycit433_s[].

  DELETE itab_insumo WHERE grupo NE itab_grupo-grupo.

  DELETE ADJACENT DUPLICATES FROM itab_insumo

        COMPARING matnr.

 

  MOVE: itab_grupo-grupo   TO /pws/zycie433-grupo  ,

        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.                    " move_insumos

*&---------------------------------------------------------------------*

*&      Form  deleta_insumo

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM deleta_insumo.

 

  DATA: v_matnr_d    TYPE mara-matnr.

 

  CLEAR: v_matnr_d.

 

  SELECT SINGLE matnr

    FROM /pws/zycit279

    INTO v_matnr_d

    WHERE matnr EQ itab_insumo-matnr.

 

  SELECT SINGLE codcomp

    FROM /pws/zycit260

    INTO v_matnr_d

    WHERE codcomp EQ itab_insumo-matnr.

 

  IF NOT v_matnr_d IS INITIAL.

    MESSAGE  i015 WITH text-005.

    EXIT.

  ENDIF.

 

  IF v_resposta EQ '1'.

    LOOP AT itab_zycit433_s WHERE grupo EQ itab_insumo-grupo

                              AND matnr EQ itab_insumo-matnr.

 

      itab_zycit433_d = itab_zycit433_s.

      APPEND itab_zycit433_d.

      DELETE itab_zycit433_s.

    ENDLOOP.

 

    SORT itab_zycit433_d BY grupo matnr.

 

*  Elimina registros repitidos.

    DELETE ADJACENT DUPLICATES FROM itab_zycit433_d

        COMPARING grupo matnr.

    DELETE itab_insumo WHERE mark EQ 'X'.

  ENDIF.

 

 

ENDFORM.                    " deleta_insumo

*&---------------------------------------------------------------------*

*&      Form  pergunta

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      <--P_V_RESPOSTA  text

*----------------------------------------------------------------------*

FORM pergunta USING p_titulo

                    p_pergunta

           CHANGING p_resposta.

 

  CLEAR: p_resposta.

  CALL FUNCTION 'POPUP_TO_CONFIRM'

       EXPORTING

          titlebar                    = p_titulo

*             DIAGNOSE_OBJECT             = ' '

          text_question               = p_pergunta

          text_button_1               = text-003

*             ICON_BUTTON_1               = ' '

          text_button_2               = text-004

*             ICON_BUTTON_2               = ' '

          default_button              = '1'

          display_cancel_button       = 'X'

*             USERDEFINED_F1_HELP         = ' '

*             START_COLUMN                = 25

*             START_ROW                   = 6

*             POPUP_TYPE                  =

       IMPORTING

          answer                      = p_resposta

*          TABLES

*             PARAMETER                   =

       EXCEPTIONS

          text_not_found              = 1

          OTHERS                      = 2.

 

ENDFORM.                    " pergunta

 

*&---------------------------------------------------------------------*

*&      Form  grava

*&---------------------------------------------------------------------*

*       Grava alterações realizadas

*----------------------------------------------------------------------*

FORM grava.

 

  SORT itab_zycit433_s BY grupo matnr.

  DELETE ADJACENT DUPLICATES FROM itab_zycit433_s.

 

  DELETE /pws/zycit433 FROM TABLE itab_zycit433_d.

  MODIFY /pws/zycit433 FROM TABLE itab_zycit433_s.

 

ENDFORM.                    " grava.