Está en la página 1de 2

REPORT z_cargaplano . *declaramos un parametro para subir nuestro archivo. PARAMETERS: p_infile LIKE rlgrap-filename OBLIGATORY DEFAULT 'c:/archivos/plano.txt'.

*con DEFAULT definimos una ruta por defecto DATA: gd_file LIKE rlgrap-filename. *Estructura de Tabla interna para almacenar los datos que subamos. TYPES: BEGIN OF t_record, nombre1(15) TYPE c, nombre2(15) TYPE c, edad(3) TYPE c, ocupacion(15) TYPE c, END OF t_record. DATA: it_registros TYPE STANDARD TABLE OF t_record INITIAL SIZE 0, wa_record TYPE t_record. AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile. * Con esta funcin al hacer clic sobre el match code podemos seleccionar * una ruta y filtrar por archivos de tipo *.txt CALL FUNCTION 'WS_FILENAME_GET' EXPORTING def_filename = p_infile * DEF_PATH = ' ' mask = ',*.txt.' mode = '0' title = 'CARGANDO PLANO' IMPORTING filename = p_infile * RC = * EXCEPTIONS * INV_WINSYS = 1 * NO_BATCH = 2 * SELECTION_CANCEL = 3 * SELECTION_ERROR = 4 * OTHERS = 5 . IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. START-OF-SELECTION. gd_file = p_infile. * Esta funcin es la que nos permite la carga del archivo * en nuestra tabla interna it_registros CALL FUNCTION 'GUI_UPLOAD' EXPORTING filename filetype filesize * IMPORTING * FILELENGTH TABLES

= gd_file = 'ASC' = 0 =

data_tab = it_registros * EXCEPTIONS * FILE_OPEN_ERROR = 1 * FILE_READ_ERROR = 2 * NO_BATCH = 3 * GUI_REFUSE_FILETRANSFER = 4 * INVALID_TYPE = 5 * OTHERS = 6 . IF sy-subrc <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. END-OF-SELECTION. *los datos de nuestro archivo ahora estan dentro de la tabla interna *it_registros * Ahora recorremos nuestra tabla interna y mostramos los datos LOOP AT it_registros INTO wa_record. WRITE:/ wa_record-nombre1, wa_record-nombre2, wa_record-edad, wa_record-ocupacion. ENDLOOP.

También podría gustarte