Сложная проблема источника данных в Dynamics AX

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

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

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

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

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

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

2 ответа

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

select from table
exists join tableChild
where (tableChild.projectId = MyProjectId || tableChild.parentProjectId = MyProjectId)

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

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

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