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