Как мне воспроизвести логику a = b и c = d для нескольких значений параметра Crystal Reports? - PullRequest
0 голосов
/ 03 мая 2019

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

select *
from SALES
where (customerID = '4' and date = '5/2/2019)
or    (customerID = '6' and date = '4/30/2019')
or    (customerID = '69' and date = '8/18/1984')

... и т.д..

Я хочу иметь возможность воспроизвести это в отчетах Crystal и позволить пользователю вводить пары идентификаторов клиентов и дат и извлекать любые соответствующие записи. Пользователь не всегда будет иметь заданное количество пар клиент / дата при запуске отчета, поэтому я стараюсь держать его открытым, насколько это возможно

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

выдает ошибку

1 Ответ

0 голосов
/ 06 мая 2019

Начните с отчета, который показывает все продажи независимо от идентификатора клиента или даты.

Создайте 2 поля параметров в своем отчете Crystal.Первый будет называться «customerID», а второй - «date».

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

Перейдите в Select Expert и создайте 2 поля, которые будут фильтроваться при выборе записей в отчете.2 поля для фильтрации будут «cusotmerID» и «date».Каждое поле должно быть настроено таким образом, чтобы значения, введенные в поля параметров, сравнивались со значениями в наборе данных, выбранном вашим отчетом, и только те записи, для которых в параметры введены значения customerID и даты, не отфильтровываются из набора данных..

Формула в Select Expert должна выглядеть примерно следующим образом, но она может немного отличаться в зависимости от того, как вы настраиваете поля параметров и выбираете фильтры Expert:

{SALES.cusotmerID} in {?customerID} and
{SALES.date} in {?date}
...