1

グループのフッターにサブレポートがある Crystal Report があります。

このサブレポートには、渡されたパラメーターに基づいてカウントが表示されます。

この値を他の計算で使用したいので、共有数変数を作成しようとしました。

ただし、共有数値変数を含む数式をメイン レポート (サブレポート自体の隣) に配置すると、前のレコードの値が表示されます

メイン レポートのスクリーンショット

(ビジネス固有の情報は削除されました)

赤い四角はサブレポート、緑の四角は印刷しようとしている変数です

サブレポートには正しい値が表示され、緑色の数式には前のレコードのサブレポートの値が表示されます。

スクリーンショット

サブレポートのスクリーンショット

レポート フッターの 1 つの数式:

スクリーンショット

サブレポートが表示する数式

この式は、式が表示されたときに変数を正しく設定すると思います(これは、私が抱えている問題の鍵かもしれません):

Shared numberVar tryit;
tryit :=0;

If IsNull(count({IDNumber})) then
(
0
)
else
(
tryit :=count({IDNumber});
count({IDNumber})
)

メイン レポートに共有変数を表示する数式

Shared NumberVar tryit;
tryit;

試行 1: サブレポートの下に変数を移動する (失敗)

Craig は、表示したい変数を、サブレポートが実行される場所の下のフッター セクションに移動することを提案しました。

これを試しました。ただし、サブレポートを表示する必要はありません。サブレポートを非表示にすると、サブレポートが実行されていないため、すべての共有変数が 0 になったように見えます。

下: 赤いボックスはサブレポート、オレンジは共有変数です。サブレポートも表示されている限り機能しますが、サブレポートは必要なく、親レポートで追加の計算を行うために共有変数が必要です。

赤いボックスはサブレポート、オレンジは共有変数です。 サブレポートも表示されている限り機能します

4

1 に答える 1

1

サブレポートを含むセクションの下にセクションを挿入します。これはグループ フッター 1b になります。共有変数を参照する式をこの新しいセクションに移動します。

** 編集 **

サブレポートを非表示にすることはできません。そうすることで、それが生成されなくなります。垂直方向の高さを縮小してから、「拡張可能」プロパティを無効にすることをお勧めします。一般的に言えば、変数を生成するには、サブレポートの ReportFooter セクションを表示するだけで済みます。数式のテキストを白に設定することを検討してください。

または、サブレポートの代わりに SQL 式を使用できる場合もあります。その SQL は、「メイン」レポートの SELECT 句に埋め込まれます。SQL 式はスカラー値を返す必要があります。

処理モデルに関する限り、Crystal Reports: Report Processing Modelをお読みください。基本的に、レポート エンジンは、共有変数を設定する前にサブレポートを生成する必要があります。同じセクションで共有変数を参照するサブレポートと数式を持つことは信頼できません。

于 2012-07-23T16:54:00.197 に答える