2008-08-12 14 views
2

私は、総計がメインレポートとは別の方法でグループ化されたCrystal Reportを作成しようとしています。私がこれまでにこれを行うことができる唯一の方法は、合計のサブレポートを使用することですが、ナンセンスのように思われる同じデータを取得するために再度データソースをヒットする必要があります。ここでは単純化した例を示します。この例ではCrystal Reportsデータセットをリサイクルする方法はありますか?

 date name earnings source   location 
----------------------------------------------------------- 
12-AUG-2008 Tom  $50.00 washing cars uptown 
12-AUG-2008 Dick $100.00 washing cars downtown  { main report } 
12-AUG-2008 Harry $75.00 mowing lawns around town 

        total earnings for washing cars: $150.00 { subreport } 
        total earnings for mowing lawns: $75.00 

     date name earnings source   location 
----------------------------------------------------------- 
13-AUG-2008 John  $95.00 dog walking  downtown 
13-AUG-2008 Jane $105.00 washing cars around town { main report } 
13-AUG-2008 Dave  $65.00 mowing lawns around town 

        total earnings for dog walking: $95.00 
        total earnings for washing cars: $105.00 { subreport } 
        total earnings for mowing lawns: $65.00 

、メインレポートは、「日付」によってグループ化されますが、合計は「ソース」でさらにグループ化されています。私は、実行中の合計を使用する例を見てきましたが、実際には必要なものを実行しません。結果セットを格納し、メインレポートとサブレポート参照の両方に同じデータを格納する方法はありませんか?

答えて

1

うーん...報告書から保存されたprocを呼び出して、すべてが1つの場所に格納されているように素敵ですが、最終的にあなたがクリスタルを得ることができない点あなたが望むことをやり遂げるためには、データはすぐそこにあります。

レポートの下にあるビジネスレイヤを導入し、レポートからデータを「プル」するのではなく、データセットをデータセットにプッシュしてデータをレポートにバインドしました。利点は、レポートに到達する前にデータセットまたはオブジェクト内のコード内のデータを操作し、そのデータをレポートに単にバインドできることです。

This articleには、レポートにデータをプッシュする設定方法に関する素晴らしいイントロがあります。私はあなたの時間/ビジネスの制約があなたにこれを可能にしないかもしれないと理解していますが、それが可能ならば、私たちのレポートと管理コードにすべての "コーディング"よいこと。

1

データを2度も実行せずにこれを行うと思う唯一の方法は、グループごとの合計を実行するいくつかの数式を作成することです。あなたが現在稼働している合計で実行していると仮定した問題は、合計しているグループのそれぞれに従うことを意図しているということです。小計がすべての生のデータの後に続くことを望んでいるように思えるので、これはうまくいきません。

グループごとに数式を作成し、グループに一致する行から合計を加算するだけで、レポートの最後に配置できるはずです。このアプローチの欠点は、結果の小計はグループとの関係で動的ではないことです。言い換えれば、新しい「情報源」がある場合は、それを追加するまで小計に表示されません。また、「犬歩行」データがない場合は、小計が残っています。

関連する問題