24

Visual Studio データ ツール 2015 で ReportProject を作成しました。レポート ウィザードを使用して report.rdl ファイルを作成すると、rdl ファイルには 2016 のスキーマが含まれています。レポート サーバーのバージョンは 12.0.4213.0 です。

レポート サーバーと互換性のある report.rdl を作成するにはどうすればよいですか。プロジェクトを右クリックしてTargetServerVersionを変更してみました->プロパティで、targetserverversionを「Sql server 2008 R2、2012または2014」に変更しました。しかし、これもうまくいきません。

4

6 に答える 6

86

編集: 2016 の機能を使用していない限り、プロパティとして設定したレポートの特定のバージョンがTargetServerVersionBIN (\debug またはビルド先の場所) フォルダーに作成されます。

私は同じ答えを見つけようとしています。ソリューションの TargetServerVersion を設定するだけで、適切なレポート定義が使用されると考えるでしょう (または、オプションで、2016 年より前のレポート アイテムを追加するオプションが提供される可能性があります)。

それまでは、.rdl を右クリックして "コードを表示" すると、次の行を変更して 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 年のスキーマに戻ります。

この動作を修正する方法を見つけた場合は、お知らせください。ありがとう!

于 2016-05-31T14:35:22.963 に答える
8

次の手順に従って、Visual Studio からいくつかの異なるバージョン形式のレポートを取得できます。

  1. プロジェクトのプロパティ ページTargetServerVersionで、目的の形式 (この場合はSQL Server 2008 R2, 2012 or 2014)に設定します。
  2. プロジェクトをビルドする
  3. ビルド出力フォルダーで目的の形式の rdl を見つけます (プロジェクトの [プロパティ ページ] にも指定されていますBuild => OutputPath) 。
于 2016-07-11T10:20:51.977 に答える
7

受け入れられた回答のアイデアに従う単純な 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"

入力ファイルと最後の行が一致するように最初の行を編集し、something.ps として保存して実行し、新しいファイルをアップロードします。

于 2018-03-17T18:28:30.033 に答える
2

このリンクで見つけたこの手順を試してください。 レポートのアップロード中にエラーが発生しました

  1. 2016 年に SSDT を使用して、ターゲット SQL バージョンを SQL Server 2008 R2、2012、または 2014 に設定します。
  2. 溶液をきれいにする
  3. ソリューションを再構築する
  4. Bin\debug フォルダーの内容をコピーし、メイン フォルダーの内容をそれに置き換えます (必ずバックアップを作成してください)。
  5. SSRS 2010 はプロジェクトをレンダリングする必要があります
于 2017-02-24T16:37:42.760 に答える