Как добавить выражение сложного диапазона в запрос AOT в AOT

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

SELECT recId, etc... FROM CustTrans WHERE (CustTrans.Closed IS NULL AND CustTrans.Invoice IS NULL) OR (CustTrans.Invoice IS NOT NULL)

Я бы перевел это затем в диапазон, как показано ниже (застрял в поле RecId)

Значение:((CustTrans.Invoice == ‘’) && (CustTrans.Closed == ‘’) || (CustTrans.Invoice != ‘’))

Я нашел множество мест, объясняющих, что это правильный синтаксис, хотя все они используют программный метод создания запроса. Мне нужно оставить мой в AOT, чтобы клиент мог изменить его позже, если захочет, и каждая комбинация кавычек, паренов и заказов по-прежнему не работает. Иногда AX принимает мою строку значений диапазона, но ничего не делает, а иногда выдает случайную синтаксическую ошибку.

Есть ли способ сделать то, что я хочу сделать? я пропустил какой-то синтаксис или AX действительно не позволяет использовать OR в запросе без объединения и другого представления?

Спасибо!

1 ответ

Вы можете создать запрос в AOT, а затем переопределить метод init для запроса. Где вы можете поместить эти сложные операторы SQL и выполнить свою работу.

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