PDA

Ver la Versión Completa : cerrar excel


apozosanz
18/05/06, 12:02:30
Hola a todos.
Tengo un problema, a ver si alguien me ayuda.
Cargo un fichero excel a una tabla interna mediante la funcion KCD_EXCEL_OLE_TO_INT_CONVERT.

El fichero excel lo genero a partir de una grid para despues cargar los datos del mismo en la base de datos.

El problema es que el excel se abre pero después se queda abierto y al hacer muchas cargas se quedan demasiados abiertos y al final empieza a dar fallos y me obliga a reiniciar el PC.

La definicion de OLE que tengo es:

*-- Definicion para OLE
INCLUDE ole2incl.
DATA: xlapp TYPE ole2_object, " Excel application
workbook TYPE ole2_object, " Excel workbook
sheet TYPE ole2_object, " Excel worksheet
cells TYPE ole2_object. " Excel cell

DATA: columna TYPE i.

Si alguien me puede decir como solucionarlo, se lo agradeceria mucho.
Gracias

tracer
18/05/06, 13:17:02
Hola apozosanz,

Prueba con esta instrucción:

SET PROPERTY OF xlapp 'visible' = 0.


Un saludo :) .

apozosanz
18/05/06, 13:40:05
Hemos probado con las siguientes:

workbook
worsheet
visible
free object
y tambien la función ole_set ó get_force_flush

Y no hemos conseguido nada para eliminar el proceso. ¿Se os ocurre alguna otra solución?:confused:

apozosanz
22/05/06, 08:57:56
No encontramos manera de que se cierre el proceso al abrir el excel.
Si a alguien se le ocurre alguna solucion distinta de las que se ponen aqui, que nos lo diga.
Muchas gracias.

carlosalcala
22/05/06, 10:56:19
Hola a todos,
Tengo un problema parecido a apozosanz, tengo un menú de ámbito en el cual estan varios programas los cuales se pueden llamar unos a otros. Al seleccionar una operación y crear el excel se llama al report que genera la hoja y antes de terminar este report libero todos los objectos ole creados e incluso llamo a call method app_excel 'Close' y 'Quit'. y las funciones 'FLUSH' y 'OLE_SET_FORCE_FLUSH' pero el proceso no se elimina de memoria hasta que cierras el modo de sap.Alguien sabria eliminarlo sin tener que cerrar este modo???
Gracias de antemano!