Matchcode com tabela interna

REPORT  zmatch.

TYPES: BEGIN OF ty_t001w,
    werks TYPE t001w-werks,
    sep   TYPE c LENGTH 3,
    name1 TYPE t001w-name1,
  END OF ty_t001w.

DATA: t_t001w TYPE TABLE OF ty_t001w,                       "#EC NEEDED
      w_t001w TYPE ty_t001w,
      l_index TYPE sy-tabix.                                "#EC NEEDED

SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS: p1 TYPE c LENGTH 4.
SELECT-OPTIONS: p2 FOR w_t001w-werks NO INTERVALS NO-EXTENSION.
SELECTION-SCREEN END OF BLOCK b1.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR p1.
  SELECT werks name1
    INTO CORRESPONDING FIELDS OF TABLE t_t001w
    FROM t001w
   WHERE vtweg = '10'.

  w_t001w-sep = ' - '.
  MODIFY t_t001w FROM w_t001w TRANSPORTING sep WHERE sep IS INITIAL.

  CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'
    EXPORTING
      endpos_col   = 70
      endpos_row   = 20
      startpos_col = 43
      startpos_row = 1
      titletext    = 'SELECIONAR O CENTRO'
    IMPORTING
      choise       = l_index
    TABLES
      valuetab     = t_t001w
    EXCEPTIONS
      break_off    = 1
      OTHERS       = 2.

  IF sy-subrc IS NOT INITIAL.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  IF l_index IS NOT INITIAL.
    READ TABLE t_t001w INTO w_t001w INDEX l_index.
*    MESSAGE w_t001w-name1 TYPE 'I'.
    p1 = w_t001w-werks.
  ENDIF.

START-OF-SELECTION.
*  CLEAR: t_t001w, t_t001w[], w_t001w.
*  SELECT werks name1
*  INTO CORRESPONDING FIELDS OF TABLE t_t001w
*  FROM t001w
* WHERE werks = p1.
*  READ TABLE t_t001w INTO w_t001w INDEX 1.
  WRITE: / w_t001w-name1.

END-OF-SELECTION.

 

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.