Как добавить выражение сложного диапазона в запрос 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 и выполнить свою работу.