|
![]() |
#1 |
Участник
|
Завершение процесса Excel при закрытии ActiveX компоненты
Добрый день. Помогите пожалуйста разобраться со следующей проблемой: форма LedgerRRGEVersion_W вызывается из Главная книга\Отчеты\Внешний\Список электронных документов\ кнопка Просмотр. При открытии этой формы в ActiveX компоненте открывается документ Excel. Если закрыть эту форму, то в процессах остается висеть Excel, который не дает потом повторно открыть эту форму. Знаю, что подобная тема уже поднималась, но ничего из предложенного не помогает.
В качестве одного из вариантов пробовала в методе close формы написать следующий код: COM doc; COM app; ; doc = excelBrowser.Document(); if (doc) { app = doc.Application(); app.quit(); } super(); Версия Axapta 2009 |
|
![]() |
#2 |
Участник
|
|
|
![]() |
#3 |
Участник
|
Не помогло зккрытие страницы.
А на строке app.quitApplication(true); при выполнении вообще ругается: Метод "quitApplication" не поддерживается интерфейсом Automation COM-объекта класса "_Application". |
|
![]() |
#4 |
Участник
|
Есть у нас разработка с АктивХ внутри которого Ворд, при открытии формы в процессах WinWord есть, при закрытии формы - исчезает, ну т.е. всё корректно. Код метода close() следующий:
PHP код:
|
|
![]() |
#5 |
Участник
|
Не помогло
![]() |
|
![]() |
#6 |
Участник
|
К сожалению, нет под рукой АХ 2009.
Попробуйте отследить на форме переменную excelDocument. Кажется на форме должен быть метод createExcelDocument(). Смысл в том, чтобы закрыть 2 объекта: excelApplication и excelDocument. Думаю, если у вас уже есть переменная excelDocument, то получить доступ к excelApplication не должно вызвать трудностей. В общей сложности вам нужно вызвать метод finalize() для объекта excelDocument и Quit() для объекта excelApplication. X++: if (excelApplication) { if (excelDocument) { excelDocument.finalize(); } excelApplication.Quit(); }
__________________
// no comments |
|
![]() |
#7 |
Участник
|
И этот вариант мы тоже уже пробовали. Не помогает. Процесс остается висеть
|
|
![]() |
#8 |
Участник
|
Цитата:
X++: excelDocument.visible(true);
__________________
// no comments |
|
![]() |
#9 |
Участник
|
Делала. Документ excel исчезает (закрывается), а процесс все равно висеть остается.
|
|
![]() |
#10 |
Участник
|
|
|
|
|