2012-04-11 47 views
4

ここから始めます。サブレポートを含むレポートがあります。このサブレポートをユニークにするのは、サブレポートrdlcのXMLが実行時に生成され、ストリームがレポートビューアに提供されることです。それは私たちが必要としていた方法でデータをレイアウトする唯一の方法でした。このレポート自体はうまくいきます。RDLC動的サブレポートの定義

今、私は複数のレポートを結合したいと思っています。私はリスト付きのレポートを作成しました。リスト内には、元のレポートを指すサブレポートがあります。しかし、動的サブレポートは、リスト内の各レポートの異なるストリームなので、どのように動的サブレポートを適用するかを理解しようとしています。

これまでのところ、元のレポートで多くの作業を行っていますので、私の考え方を再考したくありません。

は、ここで私はこれまで試したものです:SubreportProcessingイベントがリスト内の各レポートのために呼び出される私のストリームの

  1. コールLoadSubreportDefinition。レポートのレンダリングが始まる前にこれを行う必要があるので、これはうまくいきません。

  2. 動的サブレポートの名前の式を指定して、一意のIDを使用してLoadSubreportDefinitionを呼び出す方法を解説します。たとえば、Nameは= "ImageSubreport" + Parameters!ID.Valueのようなものになり、LoadSubreportDefinition( "ImageSubreport1"、stream1)、LoadSubreportDefinition( "ImageSubreport2"、stream2)を呼び出します。これはデザイナーでは不可能と思われるので、可能ではないと思います。

それぞれのレポートを別々に生成してからマージする方法はありますか?

+0

どのバージョンのVisual Studioとあなたが構築している.NETバージョン。 – DRapp

+0

VS 2008と.NET 3.5 – Dan

+0

VS 2013と.NET 4.0では同じ問題が発生しました。メインレポートはロードされますが、サブレポートはロードされません。 Subreport Nameプロパティにアクセスしてコードで動的に変更するにはどうすればよいですか? –

答えて

2

LoadReportDefinitionを呼び出した直後にLoadSubReportDefinitionを呼び出すだけで済みます。

<Subreport Name="Subreport1"> 
    <ReportName>MySubReport</ReportName> 
    ... 
</Subreport> 

とサブレポートのRDLCを表すメインレポートRDLC、およびstream2を表すstream1を持っている:

は、このようなサブレポートをメインレポートポイントの定義とさせて頂きます。

はあなたのような何かをする必要があります。

this.ReportViewer1.LocalReport.LoadReportDefinition(stream1); 
this.ReportViewer1.LocalReport.LoadSubreportDefinition("MySubReport", stream2); 
+0

"MySubReport"が "名前"か "このレポートをサブレポートのテキストボックスとして使用する"かどうかメインレポートのrdlcサブレポートプロパティで設定したサブレポートの数 – lionheart

関連する問題