AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.01.2014, 14:47   #1  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Завершение процесса 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
Старый 01.02.2014, 06:50   #2  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Цитата:
Сообщение от Mila Посмотреть сообщение
doc = excelBrowser.Document();
if (doc)
{
app = doc.Application();
app.quit();
}
попробуйте также app.quitApplication(true);
а также сначала закрыть книгу
X++:
comWorkBook = app.activeWorkBook();
comWorkBook.close();
app.quit();  //app.quitApplication(true);
Старый 03.02.2014, 08:27   #3  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Не помогло зккрытие страницы.
А на строке app.quitApplication(true); при выполнении вообще ругается:
Метод "quitApplication" не поддерживается интерфейсом Automation COM-объекта класса "_Application".
Старый 03.02.2014, 08:48   #4  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Есть у нас разработка с АктивХ внутри которого Ворд, при открытии формы в процессах WinWord есть, при закрытии формы - исчезает, ну т.е. всё корректно. Код метода close() следующий:
PHP код:
[HandleFileName] = WinApi::findFirstFile(filePath);
    if (
Handle != -1)
    {
        
WinApi::findClose(Handle);
    } 
filePath - путь к файлу который открывается в качестве шаблона
Старый 03.02.2014, 11:08   #5  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Не помогло
Старый 03.02.2014, 12:25   #6  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
К сожалению, нет под рукой АХ 2009.
Попробуйте отследить на форме переменную excelDocument.
Кажется на форме должен быть метод createExcelDocument().
Смысл в том, чтобы закрыть 2 объекта: excelApplication и excelDocument.
Думаю, если у вас уже есть переменная excelDocument, то получить доступ к excelApplication не должно вызвать трудностей.
В общей сложности вам нужно вызвать метод finalize() для объекта excelDocument и Quit() для объекта excelApplication.
X++:
if (excelApplication)
{
    if (excelDocument)
    {
        excelDocument.finalize();
    }
    excelApplication.Quit();
}
__________________
// no comments
Старый 03.02.2014, 13:16   #7  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
И этот вариант мы тоже уже пробовали. Не помогает. Процесс остается висеть
Старый 03.02.2014, 13:27   #8  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Цитата:
Сообщение от Mila Посмотреть сообщение
И этот вариант мы тоже уже пробовали. Не помогает. Процесс остается висеть
На худой конец сделайте документ видимым:
X++:
excelDocument.visible(true);
__________________
// no comments
Старый 03.02.2014, 13:56   #9  
Mila is offline
Mila
Участник
 
73 / 31 (2) +++
Регистрация: 21.04.2006
Делала. Документ excel исчезает (закрывается), а процесс все равно висеть остается.
Старый 03.02.2014, 19:08   #10  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Цитата:
Сообщение от Mila Посмотреть сообщение
Делала. Документ excel исчезает (закрывается), а процесс все равно висеть остается.
он что не убиваемый? "taskkill /im excel.exe" .
Попробуйте чтоли так еще
X++:
if(excelApplication)
        {
            excelApplication.displayAlerts(false);
            excelWorkBooks.close();
            excelApplication.quit();
        }
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
atinkerersnotebook: Using the Dynamics AX Excel Add-In Blog bot DAX Blogs 1 25.09.2013 07:11
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
atinkerersnotebook: Using Excel to Import Products & Services in Dynamics AX Blog bot DAX Blogs 0 19.07.2013 15:11
диалоговое окно при закрытии файла Excel chanchala DAX: Программирование 8 26.08.2008 13:27
Как открыть готовый шаблон Excel в ActiveX Microsoft Office Spreadsheet 10.0? chi DAX: Программирование 0 16.11.2004 15:33

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:50.