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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.11.2014, 13:04   #1  
ex3em is offline
ex3em
Участник
 
38 / 19 (1) ++
Регистрация: 22.07.2008
перебил свойство RunOn с Client на Called From у всех sysExcel которые были в проекте SysExcel_via_NET
так же заменил в конструкторе SysExcelWorkbook

static client SysExcelWorkbook construct(...
на
static client server SysExcelWorkbook construct(...

и в конструкторе SysExcelWorkbooks тоже
static client
на
static client server

объект SysExcelApplication создается
но теперь почему-то (только в серверном режиме, в клиентском работает) перестает работать код после строки add

X++:
    SysExcelApplication xl;
    SysExcelWorkbook    wbk;
    ;

    xl = SysExcelApplication_NET::construct(ClassRunMode::Server);
    xl.visible( false );
    wbk = xl.workbooks().add(); //здесь перестает выполняться
wbk.saveAs(DEV_xInfoDirectoryServer( DirectoryType::Temp ) + 'test.xls' ); // до этого уже не доходит
пролез дебагером в этом месте затык:
класс SysExcelWorkbooks_NET(установлен CalledFrom)
метод add()
в самом конце

X++:
    return SysExcelWorkbook::construct( version, null, workbooks_net.Add( template ) );
есть подозрение что ломается на workbooks_net.Add
повторюсь, в режиме xl = SysExcelApplication_NET::construct(ClassRunMode::Client);
все проходит отлично

А вот ломается следующим образом - просто перестает выполняться код дальше, как будь-то дальше кода нет. Excel при этом остается в памяти
Старый 26.11.2014, 14:51   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от ex3em Посмотреть сообщение
почему-то (только в серверном режиме, в клиентском работает) перестает работать код после строки add
X++:
xl = SysExcelApplication_NET::construct(ClassRunMode::Server);
xl.visible( false );
wbk = xl.workbooks().add(); //здесь перестает выполняться
wbk.saveAs(DEV_xInfoDirectoryServer( DirectoryType::Temp ) + 'test.xls' ); // до этого уже не доходит
просто перестает выполняться код дальше, как будь-то дальше кода нет. Excel при этом остается в памяти
Есть подозрение, что в этом месте Excel показывает какой-то диалог и ждет ответа. Все диалоги офисных приложений логируются в eventlog, посмотрите там. Попробуйте перед Add() сделать вызов xl.displayAlerts(false). Также см. Сохранение документа Excel
Старый 26.11.2014, 15:26   #3  
ex3em is offline
ex3em
Участник
 
38 / 19 (1) ++
Регистрация: 22.07.2008
попробовал try catch -
catch (Exception::CLRError) - ловится
но без сообщений .
xl.displayAlerts(false); - ставил перед add - не помогло

Также см. Сохранение документа Excel - был изучен вчера, все настройки вчера сделал.

eventlog - то же без сообщений (во всех разделах смотрел)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Взаимодействие с Excel через .NET (семейство классов SysExcel) gl00mie DAX: Программирование 102 11.08.2022 17:09
Возможно ли создать документ Excel из X++ smailik DAX: Программирование 6 15.05.2012 18:22
hariprasadp: Import Excel file data in to dynamics AX through Dynamics AX Blog bot DAX Blogs 0 17.12.2009 20:05
диалоговое окно при закрытии файла Excel chanchala DAX: Программирование 8 26.08.2008 13:27
"Серверный" экземпляр класса SysExcelApplication Bug DAX: Программирование 4 13.01.2006 13:32
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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