Определение отчета имеет недопустимое целевое пространство имен rsInvalidReportDefinition

Я создал ReportProject с помощью Visual Studio data tools 2015. Когда я создаю отчет.файл rdl с помощью мастера отчетов файл rdl имеет схему для 2016 года. Мой Сервер отчетов имеет версию 12.0.4213.0.

Как я могу создать отчет.rdl, совместимый с моим сервером отчетов. Я попытался изменить TargetServerVersion, щелкнув правой кнопкой мыши проект - > свойства и изменив targetserverversion на "Sql server 2008 R2, 2012 или 2014". Но это не работает. любой.

5 ответов


Edit: конкретная версия отчета, которую вы установили как TargetServerVersion свойство создается в папке BIN (\debug или где вы создаете), пока вы не используете какие-либо функции 2016.

Я пытаюсь найти тот же ответ. Вы могли бы подумать, что просто установка TargetServerVersion решения так, как вы это сделали, заставит его использовать правильное определение отчета (или, возможно, они могут дать вам возможность добавить элемент отчета до 2016 года)

до тех пор, если вы щелкните правой кнопкой мыши .rdl и "view code", вы можете изменить следующие строки, чтобы заставить его работать в SQL 2014 - просто сделайте резервную копию оригинала .rdl в случае ошибки:

1) Замените строку отчета xmlns следующей:

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition" xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner">

2) Удалите ReportSections и ReportSection строки,содержание ребенок дерево структура тега body и т. д. под ним.) Так что удалите эти:

  <ReportSections>
    <ReportSection>

и эти...

    </ReportSection>
  </ReportSections>

3) Удалить весь раздел ReportParametersLayout. Итак (например) удалите это:

  <ReportParametersLayout>
    <GridLayoutDefinition>
      <NumberOfColumns>4</NumberOfColumns>
      <NumberOfRows>2</NumberOfRows>
    </GridLayoutDefinition>
  </ReportParametersLayout>

нажмите Сохранить, вернитесь в дизайн и запустите отчет. Если вы не изменили дизайн, он будет работать в SQL2014. Как только вы измените какие-либо поля, он вернется к схеме 2016.

если кто-то видит способ исправить это поведение, сообщите нам об этом. Спасибо!


вы можете получить отчеты в нескольких различных форматах версий из Visual Studio со следующими шагами:

  1. на страницах свойств проекта выберите TargetServerVersion в нужный формат (в данном случае SQL Server 2008 R2, 2012 or 2014)
  2. построить проект
  3. найдите rdl в нужном формате в выходной папке сборки (также указано на страницах свойств проекта:Build => OutputPath)

повторите этот шаг я нашел по этой ссылке и работал для меня: ошибка при загрузке отчета

  1. используя SSDT в 2016, установите целевую версию sql в SQL Server 2008 R2, 2012 или 2014
  2. очистить решение
  3. перестроить решение
  4. скопируйте содержимое папки Bin\debug и замените на него содержимое основной папки (обязательно создайте резервную копию)
  5. SSRS 2010 должен отображать ваш проект

Я написал простой скрипт PowerShell, который следует идеям принятого ответа.

$file = (Get-Content "InputFileNameHere.rdl") 

# Unwraps the Body and the Page element. 
# Simple string replacement
$file = $file -replace '<ReportSections>',""
$file = $file -replace '<ReportSection>',""
$file = $file -replace '</ReportSection>',""
$file = $file -replace '</ReportSections>',""

# Parse the XML doc
$xml = [xml]$file;

# Set the XML namespace
$xml.Report.xmlns = "http://schemas.microsoft.com/sqlserver/reporting/2008/01/reportdefinition";

# Delete ReportParametersLayout node    
$xml.Report.RemoveChild($xml.Report.ReportParametersLayout);

# Save the file
Set-Content -Value $xml.OuterXml -Path "OutputFilenameHere.rdl"

отредактируйте первую строку в соответствии с вашим входным файлом и последней строкой, сохраните ее как что-то.ps, запустите его и загрузите новый файл.


замените вторую строку кода отчета, которая имеет 2016 в нем, С ниже: HTML-код не будет правильно размещать, поэтому в начале и конце нужно вернуть.

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"

найдите ReportParametersLayout раздел и удалите его. Нажмите минус, чтобы показать одну строку и щелкните правой кнопкой мыши и вырезать.

выше исправлены четыре отчета, преобразованные из Crystal в version 16, когда я должен был выбрать версию 10.