1

xml データがあり、レポート ビューアーを使用して PDF に変換しています。ネストされたデータがあるため、サブレポートを使用しています。ケースの 1 つでは、共通のサブレポート SubSub1 を呼び出している 1 つのメイン レポートから来る 2 つのサブレポート Sub1 と Sub2 があります。SubSub1 にはいくつかの共通データがあり、さらに Sub1 と Sub2 に特に関連するデータのサブレポートがあります。

<MainReport>
 <Sub1>
  <SubSub1>
   <data>
   </data>
  </SubSub1>
 </Sub1>
 <Sub2>
  <SubSub1>
   <data>
   </data>
  </SubSub1>
 <Sub2>
<MainReport>

これで少し進めることができました。このデータの性質上、複数の MainReports があります。現在、最初の MainReport の Sub1 と Sub2 の正しいデータを取得していますが、後のデータは最初の MainReport のデータを表示しています。デバッグは、正しいデータが SubSub1 の reportdatasource に追加されていることを示していますが、レポート ビューアーには (2 番目、3 番目ではなく) 最初の MainReport のデータが表示されます。reportviewer が以前のデータソースからのデータで動かなくなるのはなぜですか?

4

2 に答える 2

0

コメントからの追加情報から、この問題は、特に多くのメインレポートで使用されるサブレポートを操作する場合に、レポートデザイナーによる.dataファイルの著しく予測不可能なキャッシュにあると推測されます。BIDS2008でサブレポートを操作していたとき、サブレポートの実際のレポート定義がキャッシュされているようにさえ思えました。

デザイナーを軌道に戻すための「更新」方法をいくつか示します。小さなものから煩わしいものまでランク付けされています。

  • プレビューを行った後、明示的に更新を押します。これにより、データとレンダリングの更新が強制されることがよくあります。
  • 対応するレポートの.dataファイルを削除し、別のプレビューを実行します。
  • すべてのレポートデザイナー(サブレポートとメインレポートの両方)を閉じます。ファイルを削除し.dataます。
  • Visual Studio 閉じて、上記のすべてを実行します。

最後のステップが機能しない場合は、他の何かが機能している可能性があります。これは、私が知る限り、デザイナーを完全に空白にリセットするためです。

PS。必要なこと(サブレポートのネストと再利用)は完全に可能です。多くの場合、問題を抱えているのはデザイナーだけです。

于 2012-09-09T07:19:07.587 に答える
0

以下は、サンプルの xml ファイルです。

  <MainReport>
    <data>
    </data>
    <A>
      <B>
        <Subreport>
          <data>
          </data>
        </Subreport>
        <data>
        </data>
        <Subreport>
          <data>
          </data>
        </Subreport>
        <Subreport>
          <data>
          </data>
        </Subreport>
        <data>
        </data>
      </B>
    </A>
    <C>
      <B>
        <data>
        </data>
        <Subreport>
          <data>
          </data>
        </Subreport>
          <Subreport>
          <data>
          </data>
        </Subreport>
        <data>
        </data>
      </B>
    </C>
    <data>
    </data>
    <Subreport>
      <data>
      </data>
    </Subreport>
  </MainReport>

B は A と C の間の共通のサブレポートであり、複数の MainReports があります。また、1 つの MainReport の A と C の両方に複数の B があります。この xml を読み込んだ後、subreportprocessing イベント ハンドラを使用して各サブレポートのデータを追加しています。

于 2012-09-09T15:45:02.333 に答える