Динамическое изменение связанной сущности списка на холсте - PullRequest
0 голосов
/ 12 февраля 2020

Мне интересно, сталкивался ли кто-нибудь с этой проблемой. У меня есть две радиокнопки в приложении Canvas, которые я пытаюсь управлять значениями, отображаемыми в окне списка.

RadioButtons.Items: ["SomeValueA","SomeValueB"]

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

UpdateContext({resetList: !resetList});
UpdateContext({resetList: !resetList});
Reset(lbListbox);

lbListbox.Reset: resetList

Для самого списка у меня есть следующее для элементов:

Switch(
    RadioButtons.Selected.Value,
    "SomeValueA",
    Sort(
        EntityA.FieldName,
        Descending
    ),
    "SomeValueB",
    Sort(
        EntityB.'Some other field name',
        Descending
    )
)

Проблема в том, что когда я выбираю SomeValueA, окно списка правильно заполняется значения из EntityA.FieldName, но когда я затем выбираю «SomeValueB» из переключателей, список исчезает с пустыми записями. Кажется, что в списке есть элементы, которые я могу прокручивать и выбирать, но не видеть.

Если я помещаю два списка в экран и устанавливаю для их события Items указанную сущность c, значения отображаются правильно в обоих списках, так что я знаю, что имя / поле сущности является правильным.

Я пробовал это без сброса списка, я пробовал использовать коллекции, сделанные из записей сущностей.

Кто-нибудь сталкивался с этим, у кого возможно есть решение. Я собирался поставить два списка друг над другом и либо скрыть / показать, либо вывести активный список, но это тоже не хочет работать.

спасибо!

1 Ответ

0 голосов
/ 19 февраля 2020

(Получил это сообщение из другого источника, подумал, что я мог бы также опубликовать и здесь)

Понял, что это работает, но это было немного привередливо. Уловка, казалось, дала Списку таблицу сопоставления значений, а не просто список значений. Сначала я собрал наборы опций из CDS и добавил столбец для указания имени источника для справки. Это можно легко объединить в одну коллекцию, а затем отфильтровать, но я подумал просто:

ClearCollect(colOptionSet1,AddColumns(Choices('Ownership (Accounts)'),"appSource","Ownership")); 
ClearCollect(colOptionSet2,AddColumns(Choices('Preferred Method of Contact (Accounts)'),"appSource","Preferred Method")); 

Затем добавили переключатель, идентичный вашему. Затем добавлен элемент управления List с элементами равными

If( Radio1.Selected.Value = "SomeValueA", colOptionSet1, Radio1.Selected.Value = "SomeValueB", colOptionSet2 ) 

. Возможно, вам потребуется использовать панель свойств справа для переключения между Value и «appSource» (из коллекций выше), но это позволило мне переключиться между двумя отдельными полями Option Set в одном списке.

Исправление / запись этого ответа будет еще одним препятствием. ?

...