Importe por lotes datos SAP ABAP EXCEL en tablas creadas por usted mismo.
1 Informe ZLLLL.
Datos: ZMSTUDENT inicio,
ZMSID tipo ZMSID,
ZMCNO tipo ZMCNO,
ZMKNO tipo ZMKNO,
ZMNAME tipo ZMNAME,
ZMSSEX tipo ZMSSEX,
ZMSAGE tipo ZMSAGE,
ZMSTEL tipo ZMSTEL,
ZMSTUDENT final.
Datos: tabla de clases itab del estudiante de zm (tabla de almacenamiento) con fila de encabezado
Los datos BDC similares a los datos BDC aparecen en 0 de la fila del encabezado (tabla de transferencia de parámetros de ejecución) p>
El mensaje _ bdcmsgcoll tipo tabla con fila de encabezado tiene 0 apariciones. (Devolver resultado de ejecución)
Datos: el comienzo de it_message aparece en 0,
msgtp escribe bdc_mart,
a matnr le gusta makt-matnr,
Texto (40),
termina el mensaje.
Select-Screen inicia el bloque BLK con el texto del encabezado del marco-001.
Parámetros: P_TYP tipo modo CTU fuerza valor predeterminado 'n',
P_FILE LIKE RLGRAP-FILENAME fuerza.
Finaliza la pantalla de selección del bloque BLK.
En la pantalla de selección de valor, solicite P_FILE.
Ejecutar SELECT_FILE.
Selecciona Iniciar.
Ejecutar GET_FILE_DATA.
Ejecutar pros_data.
* -
Formulario selección_archivo.
Datos: l_FILETAB tipo FILETABLE,
filas similares a L_FILETAB,
tipo L_RC.
Método de llamada CL_GUI_FRONTEND_ SERVICES = gtfile_open_dialog
Salir
WINDOW_TITLE = 'Abrir archivo'
initial_DIRECTORY = 'C:/' p>
Cambiar
Tabla de archivos = etiqueta de archivo
RC = L_RC
Excepción
Error al abrir el cuadro de diálogo de archivo = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
Otros = 5
.
Si sy-subrc lt; gt0.
ID del mensaje sy-msgid tipo sy-msgty número sy-msgno
Igual que sy-msgv 1 sy- msg v2 sy-msg v3 sy-msg v4.
Salir.
En caso contrario.
Lea la tabla l_filetab en el índice 1 de l_waftab.
p_file = l_waftab-nombre de archivo.
Borrar: l_filetab,
l_wat iab.
ENDIF.
Forma final. "Select_File
* amp-
formulario para obtener datos del archivo.
Tabla de datos tipo lt_excel de alsmex_tabline con fila de encabezado.
Datos l_index como sy-tabix.
Símbolo de campo.
Llamar función "ALSM_EXCEL_TO_INTERNAL_TABLE"
Salir
Nombre de archivo = p_file
i_begin_col = '1'
i_begin_row = '2 '
i_end_col = '50 '
i_end_row = '50000 '
Tabla
intern = lt_excel
Excepciones
Parámetro inconsistente = 1
upload_ole = 2
Otro = 3.
* amp amp importa datos en formato EXCEL a la tabla interna TAB_LOAD.
Bucle en lt_excel.
Mueva lt_excel-col a l_index.
* Asignar componente l_index de la estructura itab a.
* Mover lt_excel-value a.
* al final de la línea.
* Convierte gt_user-uname a mayúsculas.
Caso L_INDEX.
Cuando '1'.
Mueva lT_EXCEL-VALUE a ZMSTUDENT-ZMSID.
Cuando '2'.
Mueva lT_EXCEL-VALUE a ZMSTUDENT-ZMCNO.
Cuando '3'.
Mueva lT_EXCEL-VALUE a ZMSTUDENT-ZMKNO.
Cuando '4'.
Mueva lT_EXCEL-VALUE a ZMSTUDENT-ZMNAME.
Cuando '5'.
Mueva lT_EXCEL-VALUE a ZMSTUDENT-ZMSSEX.
Cuando '6'.
Mueva lt_excel-value a zmstudent-zmsage.
Cuando '7'.
Mueva lt_excel-value a zmstudent-zmstel.
El final.
Al final de la línea.
Añadir itab.
Borrar itab.
Endat.
Finalizar el bucle.
Forma final. "Obtener datos de archivo"
* amp-
Formulario PROSS_DATA.
Datos: l_line1(6).
Datos: aa(3), bb(3), cc(3).
Fuente de datos: LC(5).
Bucle en itab.
Ejecute bdc_dynpro usando 'zmll001'' 2000'. (requiere nombre del programa y número de pantalla)
Ejecute bdc_field usando 'BDC_CURSOR'
' LS_ZMSTUDENT-ZMSTEL '.
Utilice "BDC_OKCODE" para realizar bdc_field
Guardar.
Mover ITAB-ZMCNO a AA. (Debido a que el campo zmcno es de tipo num, debe ampliarse en el campo de tipo char aquí)
Mueva ITAB-zmcno a BB.
Mover ITAB Zeger a CC.
* * * * * * * * * * * * * * * *La siguiente sección es el código de captura de pantalla~ ~ ~ ~ * * * * * * * * * * * * * * * * * * * * * * * *.
Utilice ' LS_ZMSTUDENT-ZMSID ' para ejecutar bdc_field
itab-zmsid.
*Registro-ZMSID_001.
Utilice ' LS_ZMSTUDENT-ZMCNO ' para ejecutar bdc_field
AA.
*itab-ZMCNO.
*Registro-ZMCNO_002.
Utilice ' LS_ZMSTUDENT-ZMKNO ' para ejecutar bdc_field
BB.
*itab-ZMKNO.
*Registro-ZMKNO_003.
Utilice ' LS_ZMSTUDENT-ZMNAME ' para ejecutar bdc_field
itab-ZMNAME.
*Registro-ZMNAME_004.
Utilice ' LS_ZMSTUDENT-ZMSSEX ' para ejecutar bdc_field
itab-ZMSSEX.
*Registro-ZMSSEX_005.
Utilice ' LS_ZMSTUDENT-ZMSAGE ' para realizar bdc_field
cc.
* itab-ZMSAGE.
*Registro-ZMSAGE_006.
Utilice ' LS_ZMSTUDENT-ZMSTEL ' para ejecutar bdc_field
itab-ZMSTEL.
*Registro-ZMSTEL_007.
Finalizar el bucle.
Ejecute bdc_field usando 'BDC_OKCODE'
=BACK1 '.
Llame a la transacción 'ZMM' usando el modo bdcdata p_typ
Actualice el mensaje "L"
a message_table.
Tabla de descripción message_table línea l_line1.
Leer mensaje de tabla _ TABLE INDEX l _ línea 1.
Si sy-subrc = 0.
it_message-msgtp = mensaje_table-msgtyp.
* it_message-matnr = itma-matnr.
Seleccione un solo texto
Comience desde t100
INTO it_message-text
donde sprsl = sy-Gu Lanhe
p>arbgb = message_table-msgid y
msgnr = message_table-msgnr.
Reemplace la primera aparición de 'amp' en it_message-text CON message_table-msgv 1.
Reemplace la primera aparición de 'amp' en it_message-text CON message_table-msg v2.
Reemplace la primera aparición de ' amp'EN it _ message-text CON message _ table-msg v3.
Reemplace la primera aparición de 'amp' EN it _ message-text CON message _ table-msg v4.
ENDIF.
Añadir it_message.
Borrar it_message.
CLEAR: tabla_mensajes, tabla_mensajes[], bdcdata, bdcdata[].
Forma final. " PROSS_DATA
* amp-
Utilice el programa DYNPRO para formar BDC_DYNPRO.
Borrar bdcdata.
bdcdata-program=program.
p>
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'
Fin del formulario.
Utilice fnam fval para formar BDC_FIELD.
Borrar datos bdc.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
Añadir bdcdata.
Forma final. "BDC_FIELD