Фильтры с несколькими диапазонами в поле типа строки разбивают фильтр диапазона дат

В моем отчете представлены вакансии и субподряды на эти работы. Я фильтрую с параметром для даты происхождения субконтракта как?BegDate и?EndDate. Это работает отлично до тех пор, пока... Затем мне нужно отфильтровать результаты, чтобы включить только задания, которые имеют значения от 10000 до 19900 и от 50000 до 59000. Поле Job - это строковое поле, но данные в нем выглядят так: "10000-" обратите внимание на черту на конец числа, я должен включить эту черту, или фильтр не работает, но это не проблема. В любом случае, если я просто отфильтрую диапазон дат и один из диапазонов заданий, все будет отлично. Когда я добавляю второй фильтр диапазона заданий, он нарушает фильтр диапазона дат.

Вот мой фильтр:

Это работает:

{JCJM.Job} in "10000-" to "19000-" and
{SLHDPM.OrigDate} in {?BegDate} to {?EndDate}

Это нарушает фильтр даты (результаты полностью игнорируют фильтр даты):

{JCJM.Job} in "10000-" to "19000-" or
{JCJM.Job} in "50000-" to "59000-" and
{SLHDPM.OrigDate} in {?BegDate} to {?EndDate}

1 ответ

Решение

Итак, я получил ответ от инструктора, который у меня был, и вот он для всех:

Существует проблема порядка приоритета между оператором "или" и оператором "и" в формуле выбора записи.

Обычно вы хотите заключить диапазоны заданий (и оператор "или") в скобки. Но когда вы используете оператор "in range", вы можете объединить два или более набора диапазонов, заключив значения в квадратные скобки. Это заменяет необходимость использования оператора "или" между диапазонами заданий, например:

{JCJM.Job} in ["10000-" to "19000-", "50000-" to "59000-"]
and
{SLHDPM.OrigDate} in {?BegDate} to {?EndDate}
Другие вопросы по тегам