15

いくつかのサブ レポートを含むメイン レポートがあり、それぞれにわずかに異なるクエリがあり、データを表示する方法が異なります。

したがって、私の状況では、さまざまな基準でいくつかの異なるレポートからデータをコンパイルする必要があるテキスト ボックスがあります。例えば

MainReportTextbox =(Sum(columnA, "Main Dataset"))-(SubReportTextBox))

また

MainReportTextbox =(Sum(columnA, "Main Dataset"))-(subReportVariable))

このようないくつかの提案された解決策を見ました。これは=[Reports]!MainReport!SubReport!Textboxスキームを使用します。問題は[Reports]、認識された識別子ではないことです。

サブレポートを破棄して、すべてを同じメイン レポートで実行することも検討しましたが、2 つの場所で同じものを維持することなく、レポートを個別に使用できるという機能を失います。

私の質問は、サブレポートから変数または要素 (特にテーブル内のテキストボックス) の値を取得できますか?

答えが単純に「いいえ」の場合は、MSDN または有効なソースから、なぜ「いいえ」なのか、どのように「いいえ」なのかについての情報を示し、有効な反論をいくつか示してください。

4

2 に答える 2

10

質問とコメントのリンクは、SSRS 以外のレポートを参照する場合があります。構文[subreport].[Report]![MyFieldName]または[Reports]![YourReportName]![YourSubReportName]![TheValueFromTheSubReportYouWantToReference]SSRS では使用されません。ただし、リンク先のディスカッションで ojeffrey が指摘しているように、MS Access レポートの設計に使用されます。

サブレポート内のデータにアクセスする一般的な方法はありません。SSRS モデルでは、親レポート データが処理され、サブレポート データが処理され、サブレポートがレンダリングされ、結果が親に返され、親がレンダリングされ、必要に応じてサブレポートが含まれます。2 つの間で渡される唯一のデータは、パラメーターがサブレポートに渡され、レンダリングされた出力が親に戻されます。親から渡されたデータは、ここでレポート パラメーターとして指定する必要があることがわかります。

サブレポートに必要なすべてのパラメーターをパラメーター リストに含める必要があります。必須パラメーターが欠落している場合、サブレポートはメイン レポートに正しく表示されません。

信頼できる情報源を引用する場合: この議論はそれを要約しています:

いいえ、サブレポートでレポート アイテムを参照することはできません。

しかし、それは少し古いです。Microsoft の従業員と MS BI MVP によって提供された、回避策に関する最近の議論もあります。

探している適切な参照を取得できるようにするには、サブレポート アイテムをリスト、テーブル、またはマトリックスなどのデータ領域に置き換える必要があります。

[別の投稿にスキップ]...

ここで、メイン レポートとサブレポートの違いを計算したいようです。また、データソースが異なるため、ネストしたテーブル/マトリックス/リストを使用できませんよね? もしそうなら、私が考えることができる1つの回避策は、サブレポートにパラメータを渡し、サブレポートで合計/小計を計算することです. つまり、いくつかの非表示/内部パラメーターを作成し、パラメーターを介してメイン レポートからサブ レポートに値を渡し、そこで合計/小計を計算します。

リンクされた質問に対する Jeroen の回答は、私が目指す方向性を示しています。「共有データセット」を使用し、データセットの実行が遅い場合はキャッシュを有効にします。その後、同じデータセットの実行を親レポートとサブレポートに使用できます。これにより、パラメーターの使用が変更される可能性があります。通常、パラメーターは SQL クエリからレポートのデータセットのフィルターに移動されます。

しかし、SSRS 2008R2 で導入されたLookup機能を使用すると、データセット間のレポート レベルの結合を非常に柔軟に行うことができます。

これをどのように設計するかの詳細は、他にどれだけのデータをやり取りする必要があるか、およびレポートのクエリをどれだけうまく組み合わせることができるかに大きく依存します。

于 2013-10-16T04:18:35.140 に答える
0

メインレポートで変数を作成し、サブレポートでそれを更新して、メインレポートに値を戻すことができます

例: {@Total} という名前でメイン レポートに数式を作成し、その中にフローを配置します。

WhilePrintingRecords;
shared Numbervar myTotal := 0;

注:配置; なしで値を出力しません。上記の例の値を出力します。式の値を出力したい場合、値は出力されません。削除するだけです。2行目exから

WhilePrintingRecords;
shared Numbervar myTotal := 0

メイン レポートのレポート ヘッダーに {@Total} を配置する サブ レポートに 2 番目の式を作成し、メイン レポートの式に小計を追加する場所に {@addTotal} という名前で次の行を配置します

WhilePrintingRecords;
shared Numbervar myTotal;
myTotal := myTotal + 200; //or any formula or field

この数式を追加して、合計に値を追加するサブレポートに配置します

{@showTotal} という名前の総計を表示する式をメイン レポートに作成し、次の行を配置します。

WhilePrintingRecords;
shared Numbervar myTotal;
myTotal

レポートでこの値を表示したいメインレポートに {@showTotal} を配置しますが、サブレポートの後にこの式を配置する必要があることに注意してください。

注 : 変数に値を代入するには、:= 演算子を使用します

于 2014-03-08T11:19:55.783 に答える