Crie um arquivo TXT com o seguinte conteúdo:
[FUNCTION]
Command=/H
Title=Debugger
Type=SystemCommand
Após isso, sobre uma janela popup, arraste esse arquivo (drag and drop).
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.
*&---------------------------------------------------------------------*
*& Report ZREPORT
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZREPORT.
TABLES: ztabela.
CONSTANTS: c_view TYPE char30 VALUE 'ZTABELA',
c_u TYPE char1 VALUE 'U',
c_and TYPE char3 VALUE 'AND'.
DATA: gt_seltab TYPE STANDARD TABLE OF vimsellist.
DATA: g_fieldname TYPE vimsellist-viewfield.
DATA: gt_exclude TYPE TABLE OF vimexclfun,
gwa_exclude TYPE vimexclfun.
SELECT-OPTIONS: s_campo FOR ztabela-campo.
*Add ID column to selection criteria of Table maintenanace view
g_fieldname = 'CAMPO'.
CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST'
EXPORTING
fieldname = g_fieldname
append_conjunction = c_and
TABLES
sellist = gt_seltab
rangetab = s_campo.
*
**Add Name column to selection criteria of Table maintenanace view
*g_fieldname = 'NAME'.
*
*CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST'
* EXPORTING
* fieldname = g_fieldname
* append_conjunction = c_and
* TABLES
* sellist = gt_seltab
* rangetab = s_name.
*
**Add Place column to selection criteria of Table maintenanace view
*g_fieldname = 'PLACE'.
*
*CALL FUNCTION 'VIEW_RANGETAB_TO_SELLIST'
* EXPORTING
* fieldname = g_fieldname
* append_conjunction = c_and
* TABLES
* sellist = gt_seltab
* rangetab = s_place.
*Deactivate New Entries
gwa_exclude-function = 'NEWL'. " Function Code for New Entries
APPEND gwa_exclude TO gt_exclude.
*Deactivate Copy
gwa_exclude-function = 'KOPE'. " Function Code for Copy
APPEND gwa_exclude TO gt_exclude.
*Deactivate Delete
gwa_exclude-function = 'DELE'. " Function Code for Delete
APPEND gwa_exclude TO gt_exclude.
* Call to the 'VIEW_MAINTENANCE_CALL' function module
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = c_u
view_name = c_view
TABLES
dba_sellist = gt_seltab
excl_cua_funct = gt_exclude.
DATA:
BEGIN OF gt_file OCCURS 0,
line TYPE c LENGTH 400,
END OF gt_file.
PARAMETERS: p_file TYPE rlgrap-filename OBLIGATORY DEFAULT 'C:\'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
PERFORM z_upload_file.
START-OF-SELECTION.
PERFORM z_load_file.
FORM z_load_file.
DATA: lv_arq TYPE string,
vl_extab TYPE slis_t_extab.
* Abre arquivo de entrada.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_file
filetype = 'ASC'
TABLES
data_tab = gt_arquivo.
IF sy-subrc <> 0.
MESSAGE 'Error upload file' TYPE 'I'.
EXIT.
ENDIF.
ENDFORM. " z_load_file
FORM z_upload_file.
DATA: ret TYPE int4,
act TYPE int4.
DATA: t_file TYPE TABLE OF file_table,
s_file TYPE file_table.
CLEAR: t_file[].
CALL METHOD cl_gui_frontend_services=>file_open_dialog
EXPORTING
window_title = 'Abrir...'
default_extension = '*.txt|*.csv|*.*'
file_filter = ' TXT (*.txt)|*.txt| CSV(*.csv)|*.csv| Todas(*.*)|*.* '
multiselection = space
CHANGING
file_table = t_file[]
rc = ret
user_action = act
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5.
IF sy-subrc EQ 0.
READ TABLE t_file INTO s_file INDEX 1.
MOVE s_file TO p_file.
ENDIF.
ENDFORM. "z_upload_file
DATA: itab TYPE TABLE OF mara WITH HEADER LINE,
a(1) TYPE c.
BREAK-POINT.
MOVE: 1 TO itab-matnr,
'1' TO itab-ernam,
'X' TO a.
APPEND itab TO itab.
********************************************************************************
* -= CLEAR =- *
* Se for tabela sem header line limpa o conteudo mas o espaço fica em memória *
* Se for tabela com header line limpa o header mas o espaço fica em memória *
********************************************************************************
CLEAR: itab, a.
MOVE: 2 TO itab-matnr,
'2' TO itab-aenam.
APPEND itab TO itab.
********************************************************************************
* -= REFRESH =- *
* Limpa o conteudo mas o espaço fica em memória *
********************************************************************************
REFRESH: itab.
MOVE: 3 TO itab-matnr,
'3' TO itab-vpsta.
APPEND itab TO itab.
********************************************************************************
* -= FREE =- *
* Limpa o conteudo e libera o espaço em memória *
********************************************************************************
FREE: itab, a.
MOVE: 4 TO itab-matnr.
APPEND itab TO itab.
BREAK-POINT.
CLEAR: itab.
FREE: itab.
MOVE: 1 TO itab-matnr,
'1' TO itab-ernam.
APPEND itab TO itab.
CLEAR: itab[], a.
MOVE: 2 TO itab-matnr,
'2' TO itab-aenam.
APPEND itab TO itab.
REFRESH: itab[].
MOVE: 3 TO itab-matnr,
'3' TO itab-vpsta.
APPEND itab TO itab.
FREE: itab[].
MOVE: 4 TO itab-matnr.
APPEND itab TO itab.
BREAK-POINT.
DATA: r_kschl TYPE RANGE OF konv-kschl,
w_kschl LIKE LINE OF r_kschl.
CONSTANTS: c_sign_i TYPE char01 VALUE 'I',
c_option_eq TYPE char02 VALUE 'EQ',
c_bx10 TYPE kscha VALUE 'BX10',
c_bx11 TYPE kscha VALUE 'BX11'.
CLEAR: r_kschl[], r_kschl.
MOVE: c_sign_i TO w_kschl-sign,
c_option_eq TO w_kschl-option,
c_bx10 TO w_kschl-low.
APPEND w_kschl TO r_kschl.
MOVE: c_sign_i TO w_kschl-sign,
c_option_eq TO w_kschl-option,
c_bx11 TO w_kschl-low.
APPEND w_kschl TO r_kschl.
SELECT *
FROM komv
WHERE kschl IN r_kschl.
On Error GoTo Erro
CD1.CancelError = True
CD1.Filter = “Bibliotecas|*.OCX;*.DLL|Todos os Arquivos|*.*”
CD1.FilterIndex = 1 Continue lendo