1

CrystalReportでGroup1totalの値を探しています。私のバックグラウンドはSQLに集中しており、次の背後にあるロジックを特定しようとしています。

//{@Group1total}
whileprintingrecords;
numbervar group1cost

//{@Group1cost}
whileprintingrecords;
numbervar group1cost := group1cost + {@group2total}

//{@Group2total}
whileprintingrecords;
numbervar group2cost

//{@Group2cost}
whileprintingrecords;
numbervar group2cost := group2cost + {@group3total}

//{@Group3total}
whileprintingrecords;
numbervar group3cost

//{@Group3cost}
whileprintingrecords;
numbervar group3cost := group3cost + {@group4total}

//{@Group4total}
whileprintingrecords;
numbervar group4cost

//{@Group4cost}
whileprintingrecords;
numbervar group4cost := group4cost + {XVR_projectcostbudget.cost_budget}

SQLでXVR_projectcostbudget.cost_budgetのSUMを実行するだけでは、CrystalReportと同じ結果が得られないことに気づきました。何か案は?

ありがとう!

4

2 に答える 2

4

WhilePrintingRecordsはSQLに変換されません。これは、特定の数式の計算にのみ影響します。基本的に、レポートの「パス」の1つに割り当てます。CrystalReports9+-評価時間とマルチパスレポートモデルを参照してください。

あなたの状況では、私は提案します:

  • グループの4つのフッターすべての数式またはデータベースフィールドに要約を挿入します。これにより、数式フィールドで使用できるフィールドが作成されます(手動で作成できますが、これは簡単です)
  • 必要に応じてグループの概要を集計する数式フィールドを作成します
于 2013-01-04T20:55:07.603 に答える
0

Justinのように、Crystal Reportsに対する彼のフラストレーションを感じることができ、これを他の人にも役立つようにここに置くことができます。

さまざまなグループレベルで、レポートの最後に通常のsum(decode(sql構造。結晶では、評価式を使用して合計フィールドを実行してこれをシミュレートしようとしました。評価列はコードです(すべての値は数値ですが、テーブル列は文字列タイプとして宣言されています:)評価式は、フィールドタイプが数値の場合にのみ「合計」機能を提供します。したがって、この列を数値として生成する式フィールドを作成しました。優れた合計関数が現在の合計で使用可能になりました。 IFF(、1、0)を使用します。ただし、結果は生成されません!(つまり空白)

Whileprintingrecords構造に切り替えて動作しています。これがどのように機能するかは、次の記事に簡潔に記載されています。 http://crystalreportsblog.com/crystal-reports-running-totals/#comments

明らかに、この計算をメインのSQLクエリに入れるのは簡単ですが、GUIテーブルリンクが設定された古いレポートです。

于 2013-07-10T01:09:22.323 に答える