Службы отчетов SQ Server 2008 r2: необязательные значения параметров и отчеты

В существующем отчете ssrs 2008 r2 у меня есть требование от пользователя, который хочет добавить в отчет еще 2 параметра. Сейчас есть вариант

где пользователь может выбрать создание отчета1, отчета2, отчета3, отчета4, отчета5, отчета6, отчета7, отчета8 и/или любой комбинации отчетов, которые я только что перечислил.

Это настраивается с помощью выражения в свойстве видимости для каждого из 8 табликсов.

К вашему сведению, ниже приведен пример того, как отображать один из отчетов или нет:

=iif(InStr(join(Parameters!report.Value,","),6)>0,false,true)

Теперь пользователь хочет иметь возможность добавлять параметры клиента и inventory_item в зависимости от того, выбран ли отчет7 и/или отчет8.

Теперь вы можете сказать мне следующее:

  1. Не могли бы вы показать мне код, который я могу использовать в наборе данных для выбора report7 и/или report8?
  2. Считается ли это использованием «необязательных» параметров, поскольку они основаны на новых параметрах inventory_item, если выбран отчет7 и/или отчет8. Если да, можете ли вы показать мне, как я могу написать код для этих необязательных параметров?
  3. Если вышеперечисленное невозможно выбрать конкретные отчеты, то должен ли запрос набора данных выглядеть примерно так: where @report is null or where @report is not null? Что ты предлагаешь?
  4. Если вышеуказанные параметры невозможны для 2 новых параметров, буду ли я выбирать все элементы (или один элемент), чтобы отчеты выполнялись все время?

person user1816979    schedule 24.04.2015    source источник
comment
Вы имеете в виду, если клиент выберет отчет 7 или отчет 8, он хочет видеть в дополнение к тому, что отображается в настоящее время, таблицы Customer и Inventory_Item?   -  person Ewan    schedule 27.04.2015


Ответы (1)


Дополнительные параметры см. в разделе Каскадные параметры (http://www.mssqltips.com/sqlservertip/3466/cascaded-parameters-in-sql-server-reporting-services/).

По сути, вы добавите новые параметры, но не будете использовать их для фильтра, если только не выбраны отчеты 7 или 8. К сожалению, я не знаю способа отключить параметр на основе выбора другого параметра.

Из вашего выражения я предполагаю, что ваш параметр Report просто возвращает значение от 1 до 8 в зависимости от выбранного отчета. Пример должен быть из Отчета 6:

=IIF(InStr(Join(Parameters!report.Value, ","), 6) > 0, false, true)

Фильтр для использования нового параметра inventory_item будет выглядеть примерно так:

=IIF(InStr(Join(Parameters!report.Value, ","), "7") > 0
 OR  InStr(Join(Parameters!report.Value, ","), "8") > 0, 
 IIF(Parameters!inventory_item.Value = Fields!inventory_item.Value, TRUE, FALSE), TRUE)

Это ограничит данные только inventory_item, если отчет равен 7 или 8.

person Hannover Fist    schedule 27.04.2015