MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 25/07/07, 13:57:16
Ulric Ulric is offline
Junior Member
 
Fecha de Ingreso: ago 2006
Localización: Venezuela
Mensajes: 7
Descargar una Tabla Interna a Excel

Buenos días a todos los miembros de esta comunidad.

Estoy tratando de guardar la información de una Tabla Interna a un Archivo Excel, para esto estoy usando el llamado al método CALL METHOD cl_gui_frontend_services=>file_save_dialog.

Cuando corro el programa efectivamente me abre la ventana donde indico el nombre, el tipo y la ruta donde se guarda el archivo, pero después no me guarda ni me crea el archivo y no se que es lo que puede estar malo.

PD: Las variables donde se indica la ruta, siempre se llenan por lo que el problema debe estar en otro lado.

Gracias a todos por la ayuda que me puedan dar.
Responder Con Cita
  #2  
Viejo 25/07/07, 15:30:16
Garces Garces is offline
Senior Member
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 321
Red face

Ello se debe a que el método CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG únicamente te sirve para eso, mostrar el cuadro de diálogo donde ingresas la ruta donde el archivo se generará.

Uno de los parámetros del método tipo CHANGING es PATH (ruta del archivo) y otro es el FILENAME (nombre del archivo). Luego de la llamada a este método, tendrás en estos dos parámetros los datos que ingresaste en el cuadro de diálogo.

Luego de obtenerlos, deberás concatenarlos en una variable 'v_nombre_completo' de tipo 'LIKE RLGRAP-FILENAME' y llamar a la siguiente función:

CALL FUNCTION 'MS_EXCEL_OLE_STANDARD_DAT'
EXPORTING
FILE_NAME = v_nombre_completo
TABLES
DATATAB = <nombre de la tabla interna>.
FIELDNAMES = <tabla con el nombre de las cabeceras>
EXCEPTIONS
OTHERS = 1.

Notas:

- La tabla con el nombre de las cabeceras es un parámetro opcional en caso quieras que aparezca el nombre del campo en el archivo Excel. Es una tabla con un sólo campo y un registro tipo LINE por cada campo que tenga tu tabla interna con los datos.

- Si tu tabla interna tiene algún campo tipo quantity, la función arrojará un error en tiempo de ejecución porque me parece que ese tipo de datos no tiene compatibilidad con Excel, por lo que deberás modificar el tipo de datos en cuestión por un tipo Packet de dos decimales en tu tabla interna.

Cualquier consulta puedes responderme.
Saludos.

Miguel Ángel Garcés
__________________
Miguel Ángel Garcés Ramírez
Responder Con Cita
  #3  
Viejo 26/07/07, 08:07:17
karasap karasap is offline
Junior Member
 
Fecha de Ingreso: jun 2007
Mensajes: 10
cargar tabla interna desde archivo excel

Hola, muy buenas. Hace poco que he empezado en este mundo, y ahora estoy con un modulpool,intentando llenar una tabla interna, desde un archivo excel. He encontrado una funcion pero no se lo que me falla. La funcion es bastante simple y me estoy volviendo loco. Si sabe alguien donde falla... He aqui la funcion:

CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
EXPORTING
FILENAME = 'Ruta y nombre del archivo excel'
I_BEGIN_COL = Columna en donde comienza el archivo
I_BEGIN_ROW = Fila e donde comienza el archivo
I_END_COL = Ultima columna del archivo
I_END_ROW = Ultima fila del archivo
TABLES
INTERN = Tabla interna a llenar
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2.

Lo activo, sin errores, pero en cuanto entra a la funcion, da error.
GRACIAS SAPEROS!
Responder Con Cita
  #4  
Viejo 26/07/07, 10:08:06
Avatar de nenuke
nenuke nenuke is offline
Member
 
Fecha de Ingreso: sep 2006
Localización: Madrid
Mensajes: 87
Hola,

¿que error te da? Un error muy frecuente al utilizar esa función es que declares el la variable que almacena el path del archivo como char. Debe ser de tipo string y lo mas comodo es que lo definas asi:

Si se introduce por pantalla: DATA: fich_path LIKE rlgrap-filename.

Aquí te dejo un ejemplo con otra función que tambien sirve para cargar excel a tablas internas, la única pega es que tiene un límite de lectura de 9999 celdas.

Un saludo!!


FORM read_excel_files TABLES itab
USING fich
ncol TYPE i.

data: lap type i value 0.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = fich_dat
i_begin_col = '1'
i_begin_row = '1'
i_end_col = ncol
i_end_row = '65000'
TABLES
intern = i_xlaux
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
IF sy-subrc = 1.
MESSAGE s016(zdeloitte) WITH
'Los campos no coinciden'.
STOP.

ELSEIF sy-subrc = 2.
MESSAGE s016(zdeloitte) WITH
'El fichero indicado no existe'.
STOP.
ENDIF.
ENDIF.

* la función anterior sólo permite lecturas de hasta 9999 celdas, a partir de ahi el campo filas se reinicia
* lo solicunamos en el siguiente loop.
loop at i_xlaux.
st_xls2-fila = i_xlaux-fila + lap.
st_xls2-columna = i_xlaux-columna.
st_xls2-valor = i_xlaux-valor.
append st_xls2 to itab.
if st_xls2-fila = 9999.
lap = lap + 9999.
endif.
clear st_xls2.
endloop.



ENDFORM. " read_excel_files
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 11:27:34.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web