AX7: Создание метода в представлении с использованием метода расширения (ошибка?)

Изменить: вопрос, почему не отображается метод отображения на view Работа?

Я пытаюсь использовать метод расширения для создания метода отображения на DirPartyPostalAddressView и, насколько я могу судить, это может быть AX7 ошибка или я делаю это неправильно. Я на последней AX7 с недавним обновлением.

Я использую метод, подробно изложенный здесь https://blogs.msdn.microsoft.com/mfp/2015/12/15/x-in-ax7-extension-methods/

Я создал доказательство концепции display method для использования на представлении DirPartyPostalAddressView против таблицы CustTable показать возможное bug,

Код класса расширения:

static class MyClass_extension
{
    public static display NoYesId displayYesDirPartyPostalAddressView (DirPartyPostalAddressView _this)
    {
        return NoYes::Yes;
    }

    public static display NoYesId displayYesCustTable (CustTable _this)
    {
        return NoYes::Yes;
    }
}

Я создаю расширение формы CustTable, добавьте к нему флажок, установите DataSource = CustTable а также DataMethod = MyClass_extension::displayYesCustTable и это работает правильно. (Смотрите скриншоты)

CodeChanges

Рабочее изображение

Проблема: я создал расширение формы LogisticsPostalAddressGrid добавить флажок управления в сетку, установите DataSource = DirPartyPostalAddressView и это не компилируется. (Смотрите скриншот)

Ошибка:

The data method 'MyClass_extension::displayYesDirPartyPostalAddressView' was not found on the data source 'DirPartyPostalAddressView' or its base table/view.

Non-компилирования

2 ответа

Решение

Это было подтверждено как ошибка и будет исправлено в следующем выпуске платформы.

См.: https://connect.microsoft.com/site1321/feedback/details/3100997/data-methods-are-not-found-using-extension-method-on-views

Я думаю, что вы должны использовать вычисляемый столбец в представлении и забыть о методах отображения там.

Взгляните на это в справке AX Wiki. Я предполагаю, что для целей тестирования достаточно, если в методе для вычисляемого столбца вы просто "вернете 1" или "вернете истину".

Другие вопросы по тегам