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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.08.2013, 22:55   #1  
dyal is offline
dyal
Участник
 
8 / 10 (1) +
Регистрация: 20.03.2008
System.MissingMethodException: Method not found
Всем привет.
Ax2012 R2. Работаю над отправкой отчета в Excel по почте. Отчет сделан на базе класса XmlExcelReport_RU. До недавнего времени отчет волне себе работал на пакетнике – создавался и рассылался пользователям. И работа шла над мелкими рюшечками. Потом на сервере АОС-а установили VS2010 professional и SP1, поставили софт, необходимый для установки Visual Studio Tools из состава инсталлятора Ах. И… пакетная операция на методе initCells класса OxmlRow_Ru стала валиться с ошибкой:

System.MissingMethodException: Method 'DocumentFormat.OpenXml.OpenXmlChildElements+<GetEnumerator>d__0.get_Current' not found.
at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
at Microsoft.Dynamics.Ax.Xpp.CLRInterop.MakeReflectionCall(Object instance, String methodName, Object[] parameters)

Снес VS2010 вместе с SP1, снес и поставил заново .net framework 4.0. Не помогло. Ну, можно ещё снести всякую программную мелочевку числом около 2-х десятков, приехавшую вместе с VS, или заново установить Ах2012. На этом моя фантазия заканчивается. Кто-нибудь знает, куда ещё можно копать?
P.S. На клиенте и при серверной (но не пакетной) обработке все работает идеально. Глобальную компиляцию и перестроение CIL делал, правда проделывал это до сносов софта.
Старый 05.08.2013, 02:04   #2  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от dyal Посмотреть сообщение
На клиенте и при серверной (но не пакетной) обработке все работает идеально.
А при серверной обработке код тоже работает в CIL, как в пакете? А "выполнять бизнес-логику в CIL" включено?
Цитата:
Сообщение от dyal Посмотреть сообщение
Глобальную компиляцию и перестроение CIL делал, правда проделывал это до сносов софта.
Может, в этом дело?
Не совсем в тему, но вот еще какие вещи есть: ClosedXML
Старый 05.08.2013, 04:56   #3  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Не совсем в тему, но вот еще какие вещи есть: ClosedXML
Вот интерестно, когда я искал альтернативу все сторонние библиотеки не могли сделать крайне простой пример - создать и заполнить строки на основании шаблонной строки. т.е. это нужно практически 90% отчетам в Аксапте.

а в том что есть в стандарте это как раз реализовано изначально.

вы случаем не разбирались есть ли подобное у ClosedXML?
Старый 05.08.2013, 09:50   #4  
dyal is offline
dyal
Участник
 
8 / 10 (1) +
Регистрация: 20.03.2008
Цитата:
Сообщение от gl00mie Посмотреть сообщение
А при серверной обработке код тоже работает в CIL, как в пакете? А "выполнять бизнес-логику в CIL" включено?Может, в этом дело?
Не совсем в тему, но вот еще какие вещи есть: ClosedXML
При серверной обработке код исполнялся не на CIL - я после внесения изменений точно не запускал инкрементное создание CIL (галка 'выполнять бизнес-логику в CIL' была установлена).
Да, сейчас после сноса VS и переустановки framework при создании инкрементного CIL валится АОС. В Event view вижу:

Faulting application name: Ax32Serv.exe, version: 6.2.158.0, time stamp: 0x50a65c76
Faulting module name: ntdll.dll, version: 6.1.7601.17725, time stamp: 0x4ec4aa8e
Exception code: 0xc0000005
Fault offset: 0x00000000000532d0
Faulting process id: 0x2558
Faulting application start time: 0x01ce919d025e5eaf
Faulting application path: C:\Program Files\Microsoft Dynamics AX\60\Server\AXDev\Bin\Ax32Serv.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: 15927d14-fd91-11e2-9f60-00505683405a

Запущу-ка я на ночь глобальную компиляцию приложения
Старый 05.08.2013, 10:01   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от trud Посмотреть сообщение
создать и заполнить строки на основании шаблонной строки. это нужно практически 90% отчетам в Аксапте. вы случаем не разбирались есть ли подобное у ClosedXML?
Если речь о том, чтобы создать новую строку с такими же стилями, как у выбранной, то вот что можно найти в исходниках XLRow
PHP код:
public new IXLRows InsertRowsBelow(Int32 numberOfRows)
{
   
int rowNum RowNumber();
   
Worksheet.Internals.RowsCollection.ShiftRowsDown(rowNum 1numberOfRows);
   
using (var row Worksheet.Row(rowNum))
   {
       
using (var asRange row.AsRange())
       {
           
asRange.InsertRowsBelow(truenumberOfRows).Dispose();
       }
   }
   var 
newRows Worksheet.Rows(rowNum 1rowNum numberOfRows);

   
CopyRows(newRows);

   return 
newRows;
}
private 
void CopyRows(IXLRows newRows)
{
   foreach (var 
newRow in newRows)
   {
       var 
internalRow Worksheet.Internals.RowsCollection[newRow.RowNumber()];
       
internalRow._height Height;
       
internalRow.SetStyle(Style);
       
internalRow._collapsed Collapsed;
       
internalRow._isHidden IsHidden;
       
internalRow._outlineLevel OutlineLevel;
   }
}
public 
IXLRow CopyTo(IXLRow row)
{
   
row.Clear();
   var 
newRow = (XLRow)row;
   
newRow._height _height;
   
newRow.Style GetStyle();

   
using (var asRange AsRange())
       
asRange.CopyTo(row).Dispose();

   return 
newRow;

Т.е. методы InsertRowsBelow() и CopyTo() на вид делают именно это.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
fed: Net requirements update in MRP Module and Working Set of MRP Blog bot DAX Blogs 14 08.05.2012 13:09
ax-erp: Code that must not be put in data source active() method Blog bot DAX Blogs 2 27.04.2012 18:44
emeadaxsupport: When deploying reports to a SQL Reporting Instance using a host header/clustered NLB hostname you get an error - The network path was not found Blog bot DAX Blogs 0 14.03.2012 08:11
Trace Parser. Error: Incorrect or missing MOF file, import is not available. Poleax DAX: Администрирование 6 13.05.2011 10:43
emeadaxsupport: Unable to validate workflow URL in AX 2009 - Get the following error: The request failed with HTTP status 405: Method Not Allowed Blog bot DAX Blogs 0 07.07.2010 23:05
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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