Циклические записи в представлении с использованием X ++ AX 2012 R2 - PullRequest
0 голосов
/ 10 октября 2018

Циклические записи в View Ax 2012 2012 (нужна работа для достижения этой цели)

У меня есть viewA, где у меня есть три поля Destination, Source, FieldX

У меня есть таблицагде у меня есть основной список для источника Эта таблица содержит S1, S2 .....

В представлении для каждого S1 мне нужно найти окончательное значение назначения Пример: Тип источника назначения D1 S1 D2 D1 D2 Нет записинашел объяснение для приведенного выше примера: я взял S1 из основного списка и поместил в поле «Источник» в представлении.затем я читаю значение Destination для этой записи, которое является D1.Теперь я поместил D1 в фильтр исходного поля и нашел запись с целевым значением D2.Теперь я взял D2 и поместил его в фильтр поля источника, и я не нашел запись.я остановил цикл здесь, и мне пришлось сохранить значение D2.

Для S1 конечное значение пункта назначения равно D2.

Пример 2:

Тип источника назначения da s2 dbda dc db dc Запись не найдена

Для S2 конечное значение пункта назначения - Dc.

Я не уверен, каким образом я должен выполнить цикл для просмотра S1, чтобы найти D2.Я должен был сделать этот процесс один за другим для всех S1, s2 ..... Sn.

Я пробовал несколько вещей, используя циклы while / for или другие безуспешно.Может ли кто-нибудь помочь мне с базовым кодом для достижения этой цели?

1 Ответ

0 голосов
/ 10 октября 2018

Как определяется «окончательное значение пункта назначения»?Какую логику вы используете, чтобы определить, является ли значение «конечным значением назначения»?Это сложная логика или это просто самое большое значение для этого источника?Не могли бы вы просто присоединить представление к таблице и использовать maxOf (назначение) в представлении с группой в поле «Источник»?

Если предположить, что это не сложная логика, возможно что-то подобное:

ViewA viewA;
Table table;

while select maxOf(Destination) from viewA
    group by viewA.Source
    join table
        where viewA.Source == table.Source

info(strFmt("%1", ViewA.Destination));
...