excel a i_tab

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • xava
    Junior Member
    • oct
    • 4

    #1

    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.
  • xava
    Junior Member
    • oct
    • 4

    #2
    aclaracion

    el proceso tiene que ser en background

    Comentario

    • ballan
      Senior Member
      • oct
      • 671

      #3
      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

      Comentario

      • xava
        Junior Member
        • oct
        • 4

        #4
        re

        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

        Comentario

        • ballan
          Senior Member
          • oct
          • 671

          #5
          El excel internamente se almacena como campos separados por tabulador por lo que tendrias que a&#241;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

          Comentario

          • i_arnaiz
            Junior Member
            • sep
            • 13

            #6
            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.

            Comentario

            • ascs
              Junior Member
              • nov
              • 1

              #7
              Originalmente publicado por ballan
              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!

              Comentario

              Trabajando...