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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.08.2010, 18:59   #1  
jkspb is offline
jkspb
Участник
 
18 / 20 (1) +++
Регистрация: 03.03.2009
Иморт из Excel 2010. Как правильно закрыть Excel?
Доброго времени суток.

Столкнулся с проблемой в аксапте при работе с excel 2010, после excel.quit() приложение все равно висит в процессах. С предыдущими версиями еселя таких проблем нету.

Вот пример работы с файлом excel

X++:
static void testImport2(Args _args)
{
    FileName                filenameOpen = @"С:\test.xls";
    COM                     com;
    SysExcelApplication     Excel;
    SysExcelWorkbooks       books;
    InteropPermission       comPermission;
    ;

    comPermission = new InteropPermission(InteropKind::ComInterop);

    Excel = SysExcelApplication::construct();
    excel.visible( false);
    excel.displayAlerts(false);

    books = Excel.workbooks();
    books.open( filenameOpen);
    books.close();
    books = null;

    //com = books.comObject();
    //com.close();
    //com.finalize();
    //com = null;

    excel.quit();
    excel.displayAlerts(true);
    excel = null;

    CodeAccessPermission::revertAssert();
    info( "End");
}
Самой интересное, что любые существующие рецепты, не только в аксапте, сводятся к тому, чтобы закрыть и явно удалить сом объект workbooks,. и закрывать приложение ексель, с явным удалением сом объекта, как в представленном примере.

Вот примеры:
http://social.msdn.microsoft.com/For...f-bd17fa70f379
http://social.msdn.microsoft.com/for...8-74793F297F13
http://social.msdn.microsoft.com/For...-353a5946f151/
http://msdn.microsoft.com/ru-ru/library/ee317478.aspx

Было предположение, что аксапта не корректно удаляет процесс. В качестве проверки, по представленным ссылкам был сделан примерчик на c#, консольное приложение (см. вложение) - результат тот же, с екселем 2010 процесс остается висеть, в поздних версиях процесс закрывается.

При этом, стоит отметить, что в excel 2010 увеличилось настроек безопасности, особенно по открытию файлов в защищенном режиме. Есть подозрение, что проблема как-то с этим связана, хотя минимизировал в них все ограничения - не помогло, может не то и не там настраивал.

Что посоветуете?

Dax 2009 Ru4, KernelVersion 5.0.1500.2116, Win2008 sp2, MS Sql 2008
MS Office 2010.
Вложения
Тип файла: rar ExcelTest.rar (351.5 Кб, 93 просмотров)
Старый 25.08.2010, 19:16   #2  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
У меня DAX 2009 Kernel 5.0.1000.52 - процесс не висит.. попробовал несколько раз
__________________
AXIOMA
Старый 25.08.2010, 19:19   #3  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от kornix Посмотреть сообщение
У меня DAX 2009 Kernel 5.0.1000.52 - процесс не висит.. попробовал несколько раз
Прошу прощения, протестировал на Excel 2007. 2010-го нет
__________________
AXIOMA
Старый 12.10.2013, 22:30   #4  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
При работе через .Net обнаружил аналогичную проблему.
Решение нашел такое:
Взаимодействие с Excel через .NET (семейство классов SysExcel)
Старый 13.10.2013, 00:55   #5  
handy-comp is offline
handy-comp
Участник
 
96 / 78 (3) ++++
Регистрация: 27.09.2012
Excel 2010 версия: 14.0.7106.5003 (32-разрядная), ваше тестовое приложения на C# из прикрепленного файла отработало нормально, по окончанию процесс Excel исчез, т.е. ошибка у меня не воспроизводится.
Единственное, когда я сперва описался и неправильно указал имя файла для открытия, приложение завершилось с ошибкой и процесс Excel остался висеть, но оно и понятно, обработки исключений в примере нет и до уничтожения объекта дело не дошло.
Теги
excel

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Исследование скорости экспорта данных из Axapta в Excel (коллективный эксперимент) Gustav DAX: База знаний и проекты 79 13.02.2014 13:18
Формулы в Excel 2010 akvi DAX: Функционал 14 26.08.2010 23:49
Excel: закрыть файл Arahnid DAX: Программирование 19 13.09.2007 16:55
[Excel] - Несколько версий Excel на машине клиента Андре DAX: Программирование 11 07.08.2007 13:45
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:50.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.