Текущее время: Ср, июл 23 2025, 18:32

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Excel остается в процессах
СообщениеДобавлено: Вт, мар 13 2007, 09:39 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
И снова все о нем.
Коллеги, может кто сталкивался?
Работа с Excel идет через DOI. Открытие и закрытие документа происходит нормально, но стоит только получить хидер на приложение с целью использования методов OLE2 (несколько строчек описаны ниже, и ничего более), как Excel упорно не хочет исчезать из процессов. Все бы ничего, нехай сидит, но при последующем вызове при открытии документа начинаются проблемы. Исчезает из процессов только если вернуться на селекционный экран.
Удаление всех объектов DOI, вплоть до контейнера, не помогает.
Система: 46С

DATA:
h_application TYPE ole2_object,
l_handle TYPE cntl_handle.

CHECK NOT document IS INITIAL.

CALL METHOD document->get_document_handle
IMPORTING
handle = l_handle.

GET PROPERTY OF l_handle-obj 'Application' = h_application.
CHECK sy-subrc IS INITIAL.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 13 2007, 10:52 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, авг 22 2005, 14:50
Сообщения: 1285
Откуда: с работы
Пол: Женский
уже обсуждали - фри обжект надо делать в обратном порядке. Поищи, может в этом дело


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 13 2007, 11:00 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Galka, я же даже жирным выделил: "Открытие и закрытие документа происходит нормально", если не вставлять получение хидера.
То есть за порядок отвечаю ;-)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 13 2007, 15:00 
Специалист
Специалист

Зарегистрирован:
Пт, июн 16 2006, 11:39
Сообщения: 178
Откуда: Москва
vga написал(а):
Galka, я же даже жирным выделил: "Открытие и закрытие документа происходит нормально", если не вставлять получение хидера.
То есть за порядок отвечаю ;-)

Та в чем все-таки проблема?
После получения хидера открытие и закрытие документа работает не нормально ?
Или в том, что Excel остается в процессах?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 13 2007, 15:05 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Только то, что Excel остается в процессах и при повторном открытии документа ошибок не выдает, но открывается несколько окон с Excel.
Таке впечатление, что не убитый экземпляр Excel снова поднялся из бекгроунд.

Если между открытием и закрытием не вызывать вышеприведенного кода, Excel из процессов исчезает.


Последний раз редактировалось vga Вт, мар 13 2007, 15:08, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 13 2007, 15:07 
Специалист
Специалист

Зарегистрирован:
Пт, июн 16 2006, 11:39
Сообщения: 178
Откуда: Москва
vga написал(а):
Только то, что Excel остается в процессах.

Если между открытием и закрытием не вызывать вышеприведенного кода, Excel из процессов исчезает.

Нужно вызывать
FREE OBJECT h_application.

И других объектов, которые вы из него получили (не только объекты DOI освобождать).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 13 2007, 15:09 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
делал (об этом есть нота). Не помогает. Других объектов не получал. Это достаточно, чтобы остался в бекгроунде.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 13 2007, 15:13 
Специалист
Специалист

Зарегистрирован:
Пт, июн 16 2006, 11:39
Сообщения: 178
Откуда: Москва
vga написал(а):
делал (об этом есть нота). Не помогает.

Я тоже сделал, уходит.
Причем free object можно вызывать сразу после его использования, до stop_factory. (Excel 2003, WIN2000)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, мар 13 2007, 15:17 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Да, похоже в этом дело, что освобождать, для безопасности надо сразу же после использования.

Спасибо всем ответившим.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 07 2007, 12:21 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Пн, ноя 06 2006, 20:01
Сообщения: 29
А при выполнении макросов ни у кого не было проблем с тем, что ексел остается в памяти?


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB