Freigeben über


NAV 2009 R2 используем библиотеку .NET

В R2 появился новый тип переменной DotNet.

Решил воспользоваться этим типом.

Полезная информация:
Extending Microsoft Dynamics NAV Using Microsoft .NET Framework Interoperability
https://msdn.microsoft.com/en-us/library/gg502499.aspx

Стартую с классического клиента.

На пробу создал форму:

dotnetinterop01

Завожу переменную dnMath.
Буду пытаться, обратится к библиотеке mscorlib.dll и вытащить оттуда одну из математических функций System.Math класса.

Полезная информация:
Math - класс
.NET Framework 4
https://msdn.microsoft.com/ru-ru/library/4zfefwz9.aspx

dotnetinterop02

dotnetinterop03

Далее вешаю на кнопку использование функции.
Что примечательно через C/AL Symbol Menu видны методы искомого класса.
Использую функцию синуса. Добавляю в расчет число PI, что бы преобразовать градусы в радианы.
Sin функция требует на входе радианы. Вводить же пользователю удобнее градусы.

dotnetinterop04

 

Запускаю использование DotNet переменной из под классического клиента… Упс…
Ошибка:
“The .NET interop type cannot be used in code for the Classic CSide runtime.”

dotnetinterop05

 

Что ж идем в RTC… За RTC клиентом будущее.

Прежде всего, выгружаем нашу форму в Forms.xml, конвертируем ее через Transformation Tool в Pages.xml, вгружаем  Pages.xml …
(Можно создать Page и самостоятельно, без конвертации из формы, но так быстрее)

dotnetinterop06

dotnetinterop07

Запускаем Page из Классического клиента….
Система запускает RTC клиента… и выдает ошибку:
“Метаданные объекта не существует…”

dotnetinterop08

Компилим Page. Запускаем снова – Все Okay:

dotnetinterop09

Comments

  • Anonymous
    January 24, 2012
    ну Вы даете...