SSRS: использование различных типов параметров (логическое значение, дата, целое число, текст)

Пожалуйста, помогите мне использовать параметры (дата, логические и целые числа) в SSRS 2008.

Как вызвать логическое значение в SQL-запросе для условия

Прикрепленный экран для справки.

введите описание изображения здесь

Отчеты:

  1. Необходимо отображать результат при выборе из и по дате
  2. Необходимо отображать при выборе только «Последние N дней»
  3. Включить ABC - отображает только результат, основанный на клиентах ABC

Мой запрос на фильтр даты:

WHERE    dbo.incident.date_logged BETWEEN @date_from AND DATEADD(day, 1, @date_to)    OR dbo.incident.date_logged >= DATEADD(day, -@InDays, GETDATE())
AND    item.item_n in (@sn)

person Sam Bin Ham    schedule 06.09.2015    source источник
comment
Вы на самом деле после 3 отдельных отчетов? Или все три условия могут существовать в одном и том же rport? И можно ли комбинировать некоторые из условий (так как я думаю, маловероятно, что 1 и 2 можно использовать вместе)?   -  person Jonnus    schedule 06.09.2015
comment
@Jonnus: Нет его единственного отчета. Если я выберу «Включить ABC» и «Да», будет отображаться вся информация от клиента, включая ABC. Если Нет, отображать других клиентов без ABC   -  person Sam Bin Ham    schedule 06.09.2015


Ответы (1)


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

Имейте только один отчет с «Дата от» и «Дата до» и «Включить ABC», который лучше работает с раскрывающимся списком (точно так же, как вы сделали это в другом вопросе).

Вы можете настроить другой отчет, который запускает ваш исходный отчет, но имеет другую настройку приглашения только с «LastnDays» и «include ABC». И запускает исходный с нужными датами и "логическим".

РЕДАКТИРОВАТЬ:

По-прежнему не думаю, что это лучший способ.

Попробуйте что-то вроде этого:

WHERE 
    incident.date_logged BETWEEN 
        CASE WHEN @N_last_days is null THEN @date_from else DATEADD(day, @N_last_days*-1, getdate()) AND 
        CASE WHEN @N_last_days is null THEN DATEADD(day, 1, @date_to) ELSE getdate() END
    AND
    customer.cust_n = (case when @cust = 'N' and customer.cust_n = 'ABC' then NULL else customer.cust_n end)
person mxix    schedule 07.09.2015
comment
Есть ли способ использовать Date From, Date to и LastnDays. include ABC отлично работает с выпадающим списком. (LastnDays работает с допустимым значением NULL) - person Sam Bin Ham; 08.09.2015
comment
Что должно иметь приоритет, если я заполняю и даты, и LastnDays? - person mxix; 08.09.2015
comment
LastnDays не в приоритете. Когда значения есть в LastnDays, даты пусты. - person Sam Bin Ham; 09.09.2015