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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.04.2014, 13:03   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Я недавно задействовал эти классы на 2012-й, поменял пару-тройку мест в коде, к которым с подозрением отнесся компилятор (вроде замены SysDictClass::is() на is и приведения anytype к Object перед использованием его в контексте, где предполагается ссылочный тип данных) - все работает, косяки работы с Excel через COM, которые полезли и в 2012-й, задушены на корню.

Ах, да: чтобы все это хозяйство работало в CIL, разумеется, надо перебить свойство RunOn у классов SysExcel*, потому что по умолчанию они все выполняются на клиенте.

Последний раз редактировалось gl00mie; 02.04.2014 в 13:06.
Старый 02.04.2014, 13:06   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,882 / 3148 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Я недавно задействовал эти классы на 2012-й, поменял пару-тройку мест в коде, к которым с подозрением отнесся компилятор (вроде замены SysDictClass::is() на is и приведения anytype к Object перед использованием его в контексте, где предполагается ссылочный тип данных) - все работает, косяки работы с Excel через COM, которые полезли и в 2012-й, задушены на корню.

Ах, да: чтобы все это хозяйство работало в CIL, разумеется, надо перебить свойство RunOn у родительских классов SysExcel*, потому что по умолчанию они все выполняются на клиенте.
А Union вылечили ?
Старый 05.12.2014, 11:01   #3  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Я недавно задействовал эти классы на 2012-й
При использовании Excel в пакетном режиме у меня процесс excel.exe остаётся в памяти, не удаляется. Причём при последующих запусках пакетного задания второй процесс появляется и затем удаляется, а первый так и остаётся висеть. У вас также ?
Windows 2012R2, Ax 2012 R3, Office 2013

X++:
        workbook    = null;
        workbooks   = null;
        excel       = null;

        System.GC::Collect();
        System.GC::WaitForPendingFinalizers();
не помогает. Хотя в Ax2009 это работает корректно, ни одного процесса excel.exe в памяти не остаётся. У АОСа 2009-й аксапты ОС тоже Windows Server 2012R2, только Office 2010.
__________________
Дмитрий
Старый 12.01.2016, 11:41   #4  
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   #5  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
В частности интересует реализация SysExcelValidation_NET.add()
__________________
Zhirenkov Vitaly
Старый 02.04.2014, 13:21   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Нет, до Union, к сожалению, руки не дошли - по правде сказать, я даже не проверял этот момент. У меня пока более приземленные интересы: чтобы импорт из Excel работал и не падал от любого чиха. К слову, в 2012-й выкинули импорт данных из "традиционных" шаблонов Excel, создаваемых мастером (в частности, классов SysDataExcelCOMWizard и SysDataExcelCOMPreview больше нет в стандартном приложении), а объединение ячеек штатно использовалось вроде только в сопутствующем классе SysDataExcelCOM, так что... решение проблемы актуально теперь лишь в случае, если объединение ячеек используется в каких-либо модификациях.

PS. Занятно, что сам класс SysDataExcelCOM в 2012-й остался - видимо, на случай, если он используется в каких-либо модификациях, поднимаемых с предыдущих версий.
За это сообщение автора поблагодарили: Logger (3).
Старый 24.04.2014, 14:33   #7  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
SysExcel_via_NET.rar
Поставил проект из архива, при компиляции возникли ошибки.
DEV_AnyTypeUtil не является классом.
DEV_ValueTypeConversionFlags на вот это ругается
Класс Microsoft.Office.Interop.Excel.ListObject не содержит эту функцию.
Класс Microsoft.Office.Interop.Excel.FormatConditions не содержит эту функцию.
Кто может помогите проектиком с DEV_*.
DEV_AnyTypeUtil и DEV_ValueTypeConversionFlags нашел.
Теперь нужна таблица DEV_SysReleaseUpdateScriptsRef.

Последний раз редактировалось smailik; 24.04.2014 в 14:40.
Старый 24.04.2014, 20:53   #8  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
если посмотреть, в каком контексте она упоминается, то станет ясно, что она не нужна - ее упоминание можно смело выкинуть. Про нее "знает" класс, который должен для записей некоторых таблиц возвращать более-менее вразумительные описания, но если про какие-то таблицы он знать не будет, на импорте из Excel это никак не скажется
Старый 25.04.2014, 09:30   #9  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Из-за её отсутствия у меня не компилируется класс DEV_Desc4, так как у него в методе getListOfFieldIds4Desc вот такой вот код
X++:
case tablenum(DEV_SysReleaseUpdateScriptsRef) :
            ret.addEnd( fieldnum(DEV_SysReleaseUpdateScriptsRef, ClassId) );
            ret.addEnd( fieldnum(DEV_SysReleaseUpdateScriptsRef, Method) );
            break;
Старый 25.04.2014, 09:49   #10  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Да-да, см. мое сообщение выше
Старый 14.01.2015, 14:57   #11  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Я понял, у вас ошибка возникает в клиентской части аксапты и именно в том случае когда у класса стоит RunOn = Server.
У меня у класса стоит RunOn = CalledFrom и я отправляю его в пакетный режим. На сервере ошибка не возникает. Выставлять RunOn = Server я не пробовал, в моём случае нет такой необходимости.
__________________
Дмитрий
Старый 14.01.2015, 15:09   #12  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5788 (200) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Без конвертирования где, в 2009-й? В 2012-й попробуйте так сделать с датами в пакетном режиме
Старый 14.01.2015, 15:27   #13  
Damn is offline
Damn
Участник
 
436 / 154 (6) ++++++
Регистрация: 28.05.2003
Адрес: в глуши
Цитата:
Сообщение от gl00mie Посмотреть сообщение
попробуйте так сделать с датами в пакетном режиме
Да, в Ax2009. Конвертирую в строку я только два типа - utcDateTime и enum, остальное всё идёт без конвертации. В Ax2012 пока не успел попробовать.
__________________
Дмитрий
Старый 14.01.2015, 15:39   #14  
ex3em is offline
ex3em
Участник
 
38 / 19 (1) ++
Регистрация: 22.07.2008
Ax2009

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

А в буфер обмена вы данные чем положили ?
Случайно не TextBuffer классом ? Если не ошибаюсь на сервер он не должен работать - в ядре заглушка стоит.
Старый 13.01.2016, 08:59   #17  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,038 / 1629 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Если вы о версии 2012, то если я ничего не путаю, там надо использовать не шаблон Excel в качестве файла шаблона, а просто файл Excel. тогда такой ошибки не будет
Старый 13.01.2016, 11:46   #18  
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   #19  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
672 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
а какие версии драйвера доступа к данным установлены на клиенте и сервере? должны быть 32bit для клиента и 64 -- для сервера.
__________________
Felix nihil admirari
Старый 29.09.2016, 21:35   #20  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
В качестве апа.
Есть проблема открытия файла Excel в пакетнике.
АХ2009, Office 2013, в пакетном режиме в момент отработки кода открытия книги просто падает обработки.
При чем никаких уведомлений не выдается как в АХ, так и Windows.
try catch Exception::CLRError тоже ничего не перехватывает.
А еще самое интересное в аналогичной тестовой среде все работает отлично и без ошибок, а вот на рабочей как назло падает.
Поэтому вопрос как минимум понять, что за ошибка мешает корректной работе в рабочей среде? А от неё уже смотреть дальше
Теги
.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, время: 01:14.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.