Здравствуйте, уже пару дней пытаюсь решить проблему.
Есть два класса, из одного есть две ссылки на другой.
Классы
Пытался настроить FetchPlan так чтобы в UI для одного поля показывалось только поле name, а для второго только поле test (На называния не обращайте внимание, это тестовые классы)
FetchPlan
Настроил FetchPlan в xml UI компоненте, как показано на скриншоте, в итоге получаю следующее
Результат
Причем пробовал много разных вариантов и такое ощущение что приложение полностью игнорирует эти настройки.
Помогите разобраться, пожалуйста
На скрине экрана Lead.browse, судя по наименованиям колонок таблицы, те самые атрибуты, которые вы заказали в FetchPlan на экране: test, tt, aa.
Как описана таблица в дескрипторе этого экрана вы не показываете, но , судя о всему, там заказано отображение именно этих колонок класса LeadClass: test, tt, aa. tt и aa - ссылочные атрибуты, при отображении их в таблице выводится InstanceName.
Для сущности Test у вас аннотация @InstanceName стоит на атрибуте name.
Когда таблица на экране Lead.browse отображает ссылочные атрибуты tt и aa - отображается InstanceName сущности ссылочного атрибута. Вы законно видите в обоих колонках значение атрибута класса Test, отмеченного как @InstanceName (у вас это атрибут name).
Если в таблице не экране Lead.browse вы хотите видеть в одной колонке значение атрибута tt.name, а в другой значение aa.test - так и укажите в разметке таблицы в теге <Column>.
FetchPlan - он про Загрузку данных. А разметка таблицы - про то, Что из загруженных данных надо отобразить. Попытаетесь отобразить атрибут, который не заказан в FetchPlan и не загружен - получите ошибку “attribute unfetched”.
Чтобы убедиться, что FetchPlan загрузил то, что ему заказано - ставьте точку останова на экране Lead.browse где-то на уровне события AfterShow и посмотрите в контейнер LeadClassesDc.
Вот там вы наверняка увидите, что для экземпляров LeadClass, для его ссылочного атрибута tt заграждено только поле name, а для атрибута aa загружены оба их поля - и name, и test.
Происходит это потому, что атрибут name помечен аннотацией @InstanceName - такой атрибут всегда загружается. Иначе идейный смысл назначения аннотации был бы потерян.