пользователям программных продуктов Scala 5.1, iScala 2.1, iScala 2.2, iScala 2.3, iScala 3.0, iScala 3.1, iScala 3.2, iScala 3.3 (и так далее)

Как загрузить отчёт SSRS 2016 на сервер с более ранней версией SQL?

Downgrade RDL From 2016 to 2010

Вы тоже получили сообщение: «Определение данного отчета неправильное или не поддерживается данной версией служб Reporting Services. Возможно, определение отчета создано с помощью более поздней версии служб Reporting Services, имеет содержимое с неправильным форматом или является недопустимым по схеме служб Reporting Services. Подробные сведения: Определение отчета имеет недопустимое целевое пространство имен "http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition", которое невозможно обновить»? Тогда я расскажу, что можно сделать в этой ситуации.

Чуть более подробно: У меня есть отчёт, сделанный в Visual Studio 2017. Для более ранних версий SQL серверов я использую Visual Studio 2010:

Downgrade RDL From 2016 to 2010

При попытке добавить отчёт из более поздней версии в проект более ранней версии он добавляется, но при попытке открыть в дизайнере также выдаёт ошибку «Определение отчета имеет недопустимое целевое пространство имен "http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition", которое невозможно обновить»:

Downgrade RDL From 2016 to 2010

Неужели придётся всё заново создавать «с нуля»? К счастью, я нашел инструкцию, как отредактировать код отчёта «вручную». Правда, она оказалась не совсем точной, кое что пришлось изменить, поэтому я и решил поделиться тем, что я делал.

  1. Нажмём на ссылку «Изменить код».
  2. Найдём текст <Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2016/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">
  3. Заменим его на <Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:cl="http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">
  4. Найдем «ReportParametersLayout» , выделим всё, что находится между <ReportParametersLayout> и </ReportParametersLayout> и удалим выделенное:
    удалить всё, что находится между <ReportParametersLayout> и </ReportParametersLayout>
  5. Сохраним:
    Сохранённый код отчёта
  6. Вкладку с кодом отчёта можно закрыть, вкладку с макетом отчёта тоже.
  7. Откроем отчёт снова:
    Downgrade RDL From 2016 to 2010Ура! Сколько времени сэкономлено! 🙂