Если отчет формирует корректные запросы, то следующая задача - скопировать сценарий SQL и использовать его для создания начального запроса к набору данных. Выполните перечисленные ниже действия.
1. Разверните отчет на сервере отчетов и запустите отчет.
2. Пока отчет выполняется в браузере, выделите все содержимое текста параметра SalesQuery, показанное в верхней части отчета, и скопируйте сценарий SQL в буфер обмена.
3. В конструкторе отчетов перейдите в представление конструирования.
4. Добавьте источник данных, чтобы подключиться к базе данных AdventureWorksDW2012. Можно использовать встроенный или общий источник данных.
5. Добавьте новый встроенный набор данных к отчету и назначьте набору данных имя ReportData.
6. В диалоговом окне Properties набора данных вставьте скопированный сценарий SQL в поле Query («Запрос»).
7. Нажмите кнопку ОК. Обратите внимание, что конструктор отчетов выполняет запрос, чтобы сформировать список полей набора данных.
8. Разверните список полей набора данных на панели Report Data.
9. Добавьте таблицу в текст отчета.
10. Переместите с помощью мыши поля CalendarYear и MonthNumberOfYear на панель Row Groups («Группы строк») в нижней части конструктора.
11. Измените ячейку заголовка строки MonthNumberOfYear в таблице, чтобы показать поле MonthName.
12. Переместите с помощью мыши поле SalesTerritoryCountry в первую открытую ячейку сведений в таблице.
13. Отредактируйте группу Details на панели Row Groups. Добавьте группу с использованием поля SalesTerritoryCou ntry.
14. Переместите с помощью мыши поля SalesAmt и Freight в ячейки сведений таблицы.
15. В целях отладки измените значение параметра SalesQuery на Visible, но обязательно скройте его после завершения отладки. В противном случае отчет не будет выполняться корректно.
Функционально отчет завершен, но в нем есть ряд уязвимых мест. Разработчики служб SSRS предусмотрели несколько мер безопасности, но не играйте с огнем. В этот пример не нужно вносить изменений, а при внедрении в производство рекомендуется изучить материал раздела «Безопасность - в первую очередь», чтобы исключить возможность атаки путем внедрения кода SQL.