Поскольку у вас уже есть отчет, который обрабатывает одну опцию, вы можете легко сделать это, используя подотчеты. Не беспокойтесь о длине этого ответа, это на самом деле довольно просто.
Я бы сделал копию существующего отчета, чтобы быть в безопасности ... .
Изменить в существующем отчете можно принять только одно значение параметра, если его еще нет. Сохраните этот отчет, это будет ваш подотчет, скажем, он называется mySubReport
Далее создайте новый пустой отчет.
Добавьте набор данных (называемый, скажем, dsParameterList
), который даст вам список опций, из которых вы хотите выбрать пользователя (я думаю, это будет то же самое, что и ваш текущий отчет?). Например, если это был список компаний, он может выглядеть примерно так: SELECT CompanyID, CompanyName FROM myCompanyTable
Затем добавьте параметр с именем say @options
, убедитесь, что он задан как многозначный, и установите доступные значения для использования. запрос и укажите это на dsParameterList
. Установите поля значения и метки, как требуется.
Теперь, например, создайте еще один набор данных с именем dsLoop
. Этот набор данных будет содержать список выбранных значений параметров. Используя пример компании из предыдущего, запрос к набору данных может выглядеть примерно так. SELECT CompanyID, CompanyName FROM myCompanyTable WHERE CompanyID IN (@options)
Затем добавьте таблицу в свой отчет и удалите столбцы, чтобы осталась только 1. Установите для свойства набора данных таблицы / табликса значение dsLoop
. Это означает, что мы будем генерировать 1 строку для каждого выбранного значения параметра.
В строке сведений щелкните правой кнопкой мыши в оставшемся текстовом поле и выберите «Вставить подотчет». Теперь щелкните правой кнопкой мыши заполнитель подотчета и установите свойства, указывающие на отчет, который мы сохранили ранее (mySubReport
в этом примере).
Пока все еще в свойствах вложенного отчета, перейдите на вкладку параметров и добавьте новый введите параметр в левом столбце и установите значение в правом столбце равным dsLoop
, которое вы хотите передать в подотчет. В нашем примере компании это, вероятно, будет [CompanyID]
Вот и все. Вы запускаете отчет и выбираете из списка параметров, когда вы нажимаете «Просмотреть отчет», запускается запрос dsLoop
и выдается список только этих выбранных компаний, тело отчета генерируется со строкой для каждой строки в наборе данных dsLoop
. который, в свою очередь, запускает подотчет с другим параметром, переданным в каждый раз.
Опционально Вы можете щелкнуть правой кнопкой мыши группу строк под главным окном дизайна и установить для свойства 'pagename' значение , В примере компании это может быть =Fields!CompanyName.Value
. Когда отчет экспортируется в Excel, каждому листу в рабочей книге будет присвоено имя компании