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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.01.2015, 12:02   #41  
ex3em is offline
ex3em
Участник
 
38 / 19 (1) ++
Регистрация: 22.07.2008
Цитата:
Сообщение от Bega Посмотреть сообщение
Нашел способ через System.Array:


Если данный код запустить в клиентском режиме - работает, как только переключаю класс в серверный - аксапта вылетает.

Причем если вместо array вставлять обычную строку все нормально работает

X++:
    SysExcelApplication_NET     sysExcelApplication;
    SysExcelWorksheet_NET       sysExcelWorksheet;
    SysExcelRange_NET           range;
    System.Array                array;
    System.Type                 type;
    ;

    new InteropPermission( InteropKind::ClrInterop ).assert();
    // BP deviation documented

    sysExcelApplication = SysExcelApplication_NET::construct();
    sysExcelApplication.visible(true);
    sysExcelApplication.workbooks().add("");
    sysExcelWorksheet = sysExcelApplication.worksheets().itemFromNum(1);

    type = System.Type::GetType('System.String');
    array = System.Array::CreateInstance(type, 2);
    array.SetValue(CLRInterop::getObjectForAnyType("AAA"), 0);
    array.SetValue(CLRInterop::getObjectForAnyType("БББ"), 1);

    range = sysExcelWorksheet.range("A1:B1");
    range.value2(array); // !!!! здесь вылетает Axapta
Старый 14.01.2015, 13:33   #42  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Цитата:
Сообщение от ex3em Посмотреть сообщение
range.value2(array); // !!!! здесь вылетает Axapta
С какой ошибкой вылетает ? AifUtil::getClrErrorMessage() что говорит ?

Я кстати CLRInterop::getObjectForAnyType("AAA") не использую, вставляю значение (строковое, числовое и т.д.) без конвертирования. Работает и в пакетном и в обычном режиме.
__________________
Дмитрий

Последний раз редактировалось Damn; 14.01.2015 в 13:37.
Старый 14.01.2015, 14:28   #43  
ex3em is offline
ex3em
Участник
 
38 / 19 (1) ++
Регистрация: 22.07.2008
Вылетает с стандартной критической ошибкой (Приложение выполнело недопустимую операцию и будет закрыто, отправить отчет в microsoft или запустить дебагер и т.д.), до catch не доходит. В Событиях операционки ничего не говорящее сообщение
Faulting application name: Ax32.exe, version: 5.0.1600.2596, time stamp: 0x53171f5d
Faulting module name: Ax32.exe, version: 5.0.1600.2596, time stamp: 0x53171f5d
Exception code: 0xc0000005
Fault offset: 0x001dbf2f
Faulting process id: 0x1b78
Faulting application start time: 0x01d02fec081571f8
Faulting application path: C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\Ax32.exe
Faulting module path: C:\Program Files (x86)\Microsoft Dynamics AX\50\Client\Bin\Ax32.exe
Report Id: 8818c4b7-9bdf-11e4-80ea-0050569a5ddc
Faulting package full name:
Faulting package-relative application ID:

CLRInterop::getObjectForAnyType - убрал, но ситуацию не спасает ((

Procmon.exe - тоже толком ничего не выдает, отказ на доступ к файлам/папкам не заметил.
Office 2013.
Интересно у кого-нибудь данный код не вышибает Аксапту?

Последний раз редактировалось ex3em; 14.01.2015 в 14:36.
Старый 14.01.2015, 14:57   #44  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Я понял, у вас ошибка возникает в клиентской части аксапты и именно в том случае когда у класса стоит RunOn = Server.
У меня у класса стоит RunOn = CalledFrom и я отправляю его в пакетный режим. На сервере ошибка не возникает. Выставлять RunOn = Server я не пробовал, в моём случае нет такой необходимости.
__________________
Дмитрий
Старый 14.01.2015, 15:09   #45  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Без конвертирования где, в 2009-й? В 2012-й попробуйте так сделать с датами в пакетном режиме
Старый 14.01.2015, 15:27   #46  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Цитата:
Сообщение от gl00mie Посмотреть сообщение
попробуйте так сделать с датами в пакетном режиме
Да, в Ax2009. Конвертирую в строку я только два типа - utcDateTime и enum, остальное всё идёт без конвертации. В Ax2012 пока не успел попробовать.
__________________
Дмитрий
Старый 14.01.2015, 15:39   #47  
ex3em is offline
ex3em
Участник
 
38 / 19 (1) ++
Регистрация: 22.07.2008
Ax2009

Последний раз редактировалось ex3em; 14.01.2015 в 15:41.
Старый 05.05.2015, 17:49   #48  
eugene egorov is offline
eugene egorov
Участник
Аватар для eugene egorov
 
273 / 97 (4) ++++
Регистрация: 05.06.2002
Адрес: Москва
А есть факты, свидетельствующие что из приведенного в начале поста проекта метод
\Classes\SysExcelWorksheet_NET\pasteSpecial()
может работать на сервере ?
Мне вот как то не удалось заставить
__________________
любитель портвейна и снов с прокисшей капустой в усах
Старый 05.05.2015, 19:51   #49  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,940 / 3229 (115) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
pasteSpecial - не пробовали.
А зачем ? Когда можно в range явно массив за раз вставить.

А в буфер обмена вы данные чем положили ?
Случайно не TextBuffer классом ? Если не ошибаюсь на сервер он не должен работать - в ядре заглушка стоит.
Старый 12.01.2016, 11:41   #50  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
?
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Я недавно задействовал эти классы на 2012-й, поменял пару-тройку мест в коде, к которым с подозрением отнесся компилятор (вроде замены SysDictClass::is() на is и приведения anytype к Object перед использованием его в контексте, где предполагается ссылочный тип данных) - все работает, косяки работы с Excel через COM, которые полезли и в 2012-й, задушены на корню.

Ах, да: чтобы все это хозяйство работало в CIL, разумеется, надо перебить свойство RunOn у классов SysExcel*, потому что по умолчанию они все выполняются на клиенте.
А уже перепиленный вариант для AX 2012 не выкладывался?
__________________
Zhirenkov Vitaly
Старый 12.01.2016, 11:47   #51  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
В частности интересует реализация SysExcelValidation_NET.add()
__________________
Zhirenkov Vitaly
Старый 12.01.2016, 17:57   #52  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
?
Цитата:
Сообщение от IvanS Посмотреть сообщение
При открытии шаблона через workBooks_net у меня возникает сообщение, что файл был восстановлен. С чем это может быть связано?
Выяснил, что такое поведение связано с шаблонами 2007 офиса. С 2003 нормально работает
На эту проблему тоже напоролись.
Причём есть необходимость именно в шаблонах 2007.

Кто-нибудь это обходил?
__________________
Zhirenkov Vitaly
Старый 13.01.2016, 08:59   #53  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1630 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Если вы о версии 2012, то если я ничего не путаю, там надо использовать не шаблон Excel в качестве файла шаблона, а просто файл Excel. тогда такой ошибки не будет
Старый 13.01.2016, 11:46   #54  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от trud Посмотреть сообщение
Если вы о версии 2012, то если я ничего не путаю, там надо использовать не шаблон Excel в качестве файла шаблона, а просто файл Excel. тогда такой ошибки не будет
У нас и есть обычный файл, в 2007м формате, .xlsx.
__________________
Zhirenkov Vitaly
Старый 25.01.2016, 19:39   #55  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
а какие версии драйвера доступа к данным установлены на клиенте и сервере? должны быть 32bit для клиента и 64 -- для сервера.
__________________
Felix nihil admirari
Старый 26.01.2016, 15:53   #56  
ziva is offline
ziva
Иван Захаров
Злыдни
Лучший по профессии AXAWARD 2013
 
65 / 106 (4) +++++
Регистрация: 25.03.2005
>При открытии шаблона через workBooks_net у меня возникает сообщение, что файл был восстановлен. С чем это может быть связано?

Удалите свойства файла как описано здесь ...
https://support.office.com/en-us/art...2-686cc64b6949
За это сообщение автора поблагодарили: gl00mie (2), IvanS (1).
Старый 27.01.2016, 18:53   #57  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
это всё не о том...

ларчик на самом деле был зарыт в том, что надо открывать xlsx файлы методом workbooks.OpenXML(), а не просто open().
__________________
Zhirenkov Vitaly
За это сообщение автора поблагодарили: gl00mie (2).
Старый 29.09.2016, 21:35   #58  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
В качестве апа.
Есть проблема открытия файла Excel в пакетнике.
АХ2009, Office 2013, в пакетном режиме в момент отработки кода открытия книги просто падает обработки.
При чем никаких уведомлений не выдается как в АХ, так и Windows.
try catch Exception::CLRError тоже ничего не перехватывает.
А еще самое интересное в аналогичной тестовой среде все работает отлично и без ошибок, а вот на рабочей как назло падает.
Поэтому вопрос как минимум понять, что за ошибка мешает корректной работе в рабочей среде? А от неё уже смотреть дальше
Старый 29.09.2016, 21:39   #59  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от IvanS Посмотреть сообщение
В качестве апа.
Есть проблема открытия файла Excel в пакетнике.
АХ2009, Office 2013, в пакетном режиме в момент отработки кода открытия книги просто падает обработки.
При чем никаких уведомлений не выдается как в АХ, так и Windows.
try catch Exception::CLRError тоже ничего не перехватывает.
А еще самое интересное в аналогичной тестовой среде все работает отлично и без ошибок, а вот на рабочей как назло падает.
Поэтому вопрос как минимум понять, что за ошибка мешает корректной работе в рабочей среде? А от неё уже смотреть дальше
пакетник всегда крутится на сервере, соответственно должна стоять правильная компонента доступа - 64-разрядная. если аос крутится на той же машине, что и клиент, то скорее всего на ней уже установлена 32-разрядная версия.

установить рядом 64-разрядную сестру можно только в "тихом" режиме

Excel version

To work well with Excel we need to have ODBC Excel 64 bit driver installed on the server

http://www.microsoft.com/en-us/downl....aspx?id=13255

cmd (as administrator)

AccessDatabaseEngine_x64 /passive
__________________
Felix nihil admirari
Старый 29.09.2016, 21:57   #60  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Цитата:
Сообщение от wojzeh Посмотреть сообщение
пакетник всегда крутится на сервере, соответственно должна стоять правильная компонента доступа - 64-разрядная. если аос крутится на той же машине, что и клиент, то скорее всего на ней уже установлена 32-разрядная версия.

установить рядом 64-разрядную сестру можно только в "тихом" режиме

Excel version

To work well with Excel we need to have ODBC Excel 64 bit driver installed on the server

http://www.microsoft.com/en-us/downl....aspx?id=13255

cmd (as administrator)

AccessDatabaseEngine_x64 /passive
Но ведь на параллельном сервере все работает без каких-либо дополнительных операций- это и смущает
Теги
.net, ax2009, excel, законченный пример, полезное

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
проблема использования Excel через clr Batuev Artem DAX: Программирование 8 22.08.2011 18:01
AX.NET: интеграция .NET-приложений с Аксаптой и (будущие) возможности облачных вычислений gl00mie DAX: Программирование 2 23.04.2010 00:47
Импорт даты через Excel OliaM DAX: Функционал 2 13.12.2007 10:32
Экспорт в Excel через WorkBooks.OpenText() Владимир Максимов DAX: Программирование 2 09.04.2004 17:16
Чтение Excel-ячейки в Аксапте (2.5) через COM AKIS DAX: Программирование 3 25.03.2004 20:18

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

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

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