web-dev-qa-db-ja.com

Visual Studio for SSRS 2008-ソリューションエクスプローラーでレポートをサブフォルダーに整理する方法は?

現在、いくつかのレポートを含むレポートというプロジェクトがあります。ソリューションエクスプローラーでは、次のようになります。

Shared Data Sources
 -- DEV
Reports
 -- Report1
 -- Report2
 -- Report3

これをこのように見せたいと思いますし、デプロイをクリックするとレポートマネージャーのWebサイトに同じ構造が引き継がれます。

Shared Data Sources
 -- DEV
Folder A
 -- Report1
Folder B
 -- Report2
 -- Report3

誰でもこれを行う方法を知っていますか?

28
Greg

私はSSRS2005を使用しています-私はthinkこの部分は2008と同じように機能します。

私の知る限り、プロジェクト内にフォルダーを置くことはできませんが、ソリューション内に複数のプロジェクトをできます

新しいフォルダーを作成するには、ソリューションエクスプローラーでソリューションを右クリックし、[追加]> [新しいプロジェクト...]を選択します。

新しいプロジェクト名(例:MyProject)を入力し、VisualStudioでインストールされているテンプレートのリストから[レポートサーバープロジェクト]を選択します。 [OK]をクリックすると、ソリューションエクスプローラーのプロジェクトリストの最後に新しいプロジェクトが表示されます。

(新しいレポートプロジェクトを設定する方法は他にもありますが、これが最も速いようです。)

新しいレポートプロジェクトを右クリックして[プロパティ]を選択すると、TargetReportFolderが表示され、デフォルトで新しいプロジェクト名(MyProjectなど)が表示されます。 SSRSからレポートを展開すると、レポートはこの場所に展開されます。 (必要に応じて場所を変更できます。プロジェクト名を使用すると、どこで何が起こっているかを追跡する方が簡単です。)

各プロジェクトで使用するデータソースを、そのデータソースを使用するすべてのプロジェクトのデータソースフォルダーにコピーする必要があります。デフォルトでは、OverwriteDataSourcesはfalseに設定されているため、新しいレポートをデプロイすると、レポートマネージャー環境に既にデプロイされているデータソースが使用されます。

したがって、必要なレポートマネージャー構造を取得するには、次のようにします。

  • フォルダーAおよびフォルダーBというプロジェクトを作成する
  • Report1をプロジェクトフォルダAのReportsフォルダに移動/コピーします
  • Report2とReport3をプロジェクトフォルダBのReportsフォルダに移動/コピーします
  • データソースDEVをプロジェクトフォルダーAとフォルダーBの共有データソースフォルダーに移動/コピーする
  • レポートを展開する

ソース管理への変更を確認することを忘れないでください。

28
user359040

他のポスターと同じように、複数のプロジェクトを含む1つのソリューションがあります(各プロジェクトには名前が付けられ、デプロイしたい同じフォルダー名に入れられます)。

次に、RSで次のスクリプトを作成しました。
-私の場合、すべてのレポートで使用される単一のデータソースを作成します
-ソリューションフォルダー内のすべてのディレクトリをループします
-RSサーバーに同じフォルダー名を作成します
-このディレクトリ内のすべてのファイルをRSサーバー上のそのフォルダに展開します
-各レポートでrs.SetItemDataSourcesを使用して、メインのデータソースにリダイレクトします

そしてそれは基本的にそれです。

警告は、望まないファイルがアップロードされることがあることです(.RDLがまだ残っている削除されたレポートなど)。ただし、そのすべてをスクリプト化することも、RSで吹き飛ばして再度アップロードすることもできます。

これを行うと、1つのスクリプトがありますが、それぞれが異なるデータソースを持つ多数の異なる親フォルダーの下に構造を展開し、異なるデータベースからデータを描画するフォルダーにすべてのレポートを含めることができます。これにより、1x RSインスタンスを実行できますが、開発、テスト、トレーニングなどの領域があります。

4
Cody Konior

これはSSRSのリンクされたレポートで管理します。レポートをユーザーに表示されないレポート配布フォルダーに配置し、Reporting Services Web UI(各レポートの[管理]セクションのオプション)でリンクされたレポートを作成します。リンクされたレポートは任意のフォルダーに作成できるため、必要なフォルダー構造を構築して、リンクされたレポートを適切な場所に配置できます。

VSから単一のdistribフォルダーにすべてをデプロイでき、リンクされたレポートが更新されます。これにより、すべてのレポートがdistribフォルダーから「実行される」ため、サブレポートとDataSourceの問題が解決されます。明らかに多くのセットアップが前もってあり、新しい環境を作成するのは面倒です-それはめったに起こらないので、自動化を試みていません。

3
ErikZ

SSRS2008で約80のレポートを含むBIプロジェクトを行っています。これは、レポートをフォルダーに展開した経験です。これは、Reporting Servicesでの開発への私の最初の進出です。したがって、昼食に出かける場合は、教祖が私を叩いてください。

最初は、ソース管理のフォルダーを使用して、小さなレポートを部門ごとに分け、整理しやすくしました。最初にレポートを開発している間は問題なく動作しましたが、プロジェクトをレポートサーバーに初めて展開したときに、構造が完全にフラット化されたため、フォルダー構造を使用して整理することをあきらめました。

私の知る限り、SSRSでフォルダー構造を作成する唯一の方法は、レポートマネージャーUIを使用して、レポートサーバーにフォルダーを作成することです。ここから、Visual Studioのレポートプロパティのパスを変更するとします。それか、最初にレポートを設定するときにパスを定義する必要があります。私はこれをYMMVでテストしていません。

したがって、結論として、BIDSでフォルダーを作成し、IDEを使用してレポートをフォルダーに展開することはできません。これらすべてのレポートをソリューションエクスプローラーにまとめるのは一種の苦痛であるため、2008R2でこれが解決されることを願っています。

2
kkeilman

ディスク/ソースコントロール上の個別のフォルダーにファイルを置くこともできますが、Visual Studioではフラットにリストされ、アルファベット順に並べ替えられます。

上記を管理するためのユーザーインターフェイスが表示されませんが、プロジェクトファイル(VSソリューションの単一のプロジェクトファイル)を編集すると、各レポートファイルのFullPathXMLタグを指定できます。

1
Rez.Net

レポートサーバータイプのプロジェクトを作成しましたが、別のプロジェクトを追加するオプションがありませんでした。代わりに、SLNファイルを編集して他のプロジェクトを追加しました。 SLNファイルの最初の部分は、最終的には次のようになり、サブフォルダー内の2つのプロジェクトにSLNファイルにアクセスしました

Microsoft Visual Studioソリューションファイル、フォーマットバージョン10.00

Visual Studio 2008

Project( "{F14B399A-7131-4C87-9E4B-1186C45EF12D}")= "RestOfWorld"、 "RestOfWorld\RestOfWorld.rptproj"、 "{D24D5EEA-88A4-4375-802B-7CA877202787}" EndProject

Project( "{F14B399A-7131-4C87-9E4B-1186C45EF12D}")= "NorthAmerica"、 "NorthAmerica\NorthAmerica.rptproj"、 "{C64A3BDC-F526-4037-AD48-31799BECC3AD}" EndProject Global

0
skiwii

@skiwiiは正しいです。VS2013CommunityエディションとSQLデータツール-ビジネスインテリジェンスを使用すると、not VS Solution Explorerのツリーの上部にあるSolutionノードが表示され、ハックする必要があります。 .SLNファイルを公開します。

  1. ソースツリー内の目的のマスター.slnファイルと1つの.rptprojファイルから始めます。その「親」と呼びます。
  2. 新しいサブフォルダー(.slnを含むフォルダーの下)に、新しい空のReport Services.rptprojファイルを作成します。たとえば、プロジェクトは「child1」です。 VSは、そのフォルダーにchild1.slnファイルも提供します。
  3. すべてのVSウィンドウを閉じます。
  4. お気に入りのテキストエディタ(teco!)を使用してください。
    1. child1.slnを開きます。
    2. 上部の2行をコピーします。 Project ...およびEndProject
    3. Parent1.slnを開きます
    4. それらの行を既存のProject/EndProjectの下に貼り付けます。
  5. ここで、VSでparent1.slnを開きます。ソリューションエクスプローラーウィンドウの上部に、ソリューションノードが魔法のように表示されます。

運が良ければ、child1という2番目のプロジェクトも表示されます。しかし、そうでなければ問題ありません。ソリューションを右クリックして、レポートサービスタイプの新しいプロジェクトを追加するだけです。

0
BobHy