Сложная проблема источника данных в Dynamics AX - PullRequest
1 голос
/ 17 августа 2010

У меня есть сетка, которая отображает строки из таблицы.Теперь у меня есть два следующих требования:

  1. Показывать только те строки, которые содержат значения в полях «час».Поле «hour» относится к типу массива.
  2. Показывает строки из проекта и его подпроекта

Моя проблема заключается в следующем: для удовлетворения требования № 1 мне нужно использоватьоператор SELECT в моем источнике данных, поскольку я не могу получить доступ к значению массива с помощью QueryBuildDataSource (это известное ограничение в Dynamics AX).

Но для удовлетворения требований # 2 мне нужно иметь два "существующих соединения", а в Dynamics AX это невозможно.Например, следующий код не будет работать:

select from table where
exists join tableChild where projectId = MyProjectId OR
exists join tableChild where parentProjectId = MyProjectId

Как кто-то может решить эту проблему?

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Из приведенного вами примера оператора выбора может показаться, что нет необходимости иметь два существующих объединения.Единственное существующее объединение с «ИЛИ» для двух возможных условий в его предложениях where может быть достаточным, конечно, вы все равно должны иметь некоторую связь между table и tableChild, чтобы соединение имело логический смысл.

select from table
exists join tableChild
where (tableChild.projectId = MyProjectId || tableChild.parentProjectId = MyProjectId)
0 голосов
/ 17 августа 2010

Вы можете использовать значения массива в диапазонах запросов, предоставляя идентификаторы полей с помощью функции fieldID2Ext.

Вы можете создать представление и применить к нему конфессии.

...