Ver la Versión Completa : excel a i_tab
Buenos días señores.
Estoy intentando bajarme un excel a una tabla interna y no hay manera.
El archivo en cuestion está en \\192.168.254.16\Des\TPV.
YA he probado de todo y la FILE_READ_AND_CONVERT_SAP_DATA y ALSM_EXCEL_TO_INTERNAL_TABLE me dan unos dumps horribles.
UN saludo.
el proceso tiene que ser en background
En fondo tienes que utilizar dataset para leer los datos, p.e.
open dataset ruta_fichero
if sy-subrc = 0
do
read dataset ruta_fichero into linea
if sy-subrc <> 0
exit
else
append linea to tabla
endif
enddo
Ya lo intenté pero el excel no tiene salto de linea con lo que me carga una linea larguísima y caracteres # entre los campos con lo que no puedo controlar los datos.
Un saludo
El excel internamente se almacena como campos separados por tabulador por lo que tendrias que añadir los tabuladores a tu tabla interna, p.e.
Tabla interna
data: begin of tabla occurs 0,
campo1 like ...
tabulador1 type x
campo2 like...
avance de linea type x
retorno de carro type x
end of tabla.
el codigo ascii del tabulador es 09
el codigo ascii del avance de linea es 0A
el codigo ascii del retorno de carro es 0D
tendrias que abrir el dataset en modo binario no en modo texto y prueba a volcar la linea en una tabla del estilo como te lo he escrito arriba y deberia funcionar
i_arnaiz
26/10/06, 13:35:21
Casi al principio de la función puedes ver en un trozo de código los tipos, que no extensiones, validos.
Código:
* filetype parameter gltig ?
CASE FILETYPE.
WHEN 'BIN' OR 'DAT' OR 'ASC' OR 'IBM' OR 'WK1' OR 'DBF' OR
'SPL' OR 'TRU'.
WHEN OTHERS.
RAISE INVALID_TYPE.
ENDCASE.
en cuanto a como cargarlo, echa un ojo a este include http://sap4.com/wiki/index.php?title=ZIFICHEROS y en especial al form:
Código:
Form f_cargar_fichero_excel_unix
Esta función carga un fichero del tipo excel del servidor, sera
obligatorio que la tabla interna en la que se cargue tenga el
mismo número de campos que columnas tiene el fichero.
ATENCIÓN: NO SE CONTROLAN LOS TIPOS NI TAMAÑOS DE LAS VARIABLES!
Un saludo.
Nacho.
El excel internamente se almacena como campos separados por tabulador por lo que tendrias que añadir los tabuladores a tu tabla interna, p.e.
Tabla interna
data: begin of tabla occurs 0,
campo1 like ...
tabulador1 type x
campo2 like...
avance de linea type x
retorno de carro type x
end of tabla.
el codigo ascii del tabulador es 09
el codigo ascii del avance de linea es 0A
el codigo ascii del retorno de carro es 0D
tendrias que abrir el dataset en modo binario no en modo texto y prueba a volcar la linea en una tabla del estilo como te lo he escrito arriba y deberia funcionar
HOLa!!!
mi primera participacion en este foro que me esta sirviendo de gran ayuda....
como cojes el codigo ascii?
es que quiero hacer esto pero nose como definirle el tipo ni como tratarselo luego...
un saludo y gracias!
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web