0

これはStackoverflowでの私の最初の試みなので、皆さんが私を助けてくれることを願っています。ここで貢献できることをうれしく思います。これまではとても便利なツールでした。

さて、私は製造施設の延滞時間の合計をグラフ化したレポートを作成しようとしています。私が持っているのは、各製造オーダーをリストし、期日と完了日を示すテーブルの集合体です。レポートを実行している人が日付範囲を入力し、x軸に日付、y軸に延滞時間の合計を含むグラフを生成したいと思います。たぶん私は3つの公式のトリックの実装で何かが欠けていますが、これを機能させることができません。期日でグループ化することはできますが、それでは、特定の日に期日を過ぎた注文の合計しかわかりません。

私が必要としているのは、次のようなものです。

    For each (date in DateRange) {
       If (Due Date < i) && (Comp Date > i) {
          Past Due Hours = Past Due Hours + manufacturing order Hours
       }
    }

私はそれがCrystalSyntaxにないことを知っています、私はただ全体像を伝えようとしていました。何か助けはありますか?

4

1 に答える 1

0

この種の質問は定期的に出てきます-私が正しく理解していれば。あなたはこのようなものを持っていますか?

OrderNum DueDate  CompletedDate
1        01/01/01 01/02/01
2        01/01/01 01/01/01
3        01/02/01 01/03/01
4        01/02/01 01/02/01

ここで最初に行う必要があるのは、すべての日付を含むテーブル(他の同様のアプローチがあります)を取得し、データセットに結合することです。これにより、次のようになります。

OrderNum DueDate  CompletedDate Date
1        01/01/01 01/02/01      01/01/01
2        01/01/01 01/01/01      01/01/01
3        01/02/01 01/03/01      01/01/01
4        01/02/01 01/02/01      01/01/01
1        01/01/01 01/02/01      01/02/01
2        01/01/01 01/01/01      01/02/01
3        01/02/01 01/03/01      01/02/01
4        01/02/01 01/02/01      01/02/01
1        01/01/01 01/02/01      01/03/01
2        01/01/01 01/01/01      01/03/01
3        01/02/01 01/03/01      01/03/01
4        01/02/01 01/02/01      01/03/01

{@overdue}次に、順序が次のとおりであるかどうかを決定するフィールドを追加する必要があります。

if {table.duedate} < {table.date} and {table.completeddate} > {table.date} then 
 1
else 
 0;

異常を回避するために、null値には必ずデフォルト値を選択してください)。

sum({@overdue})これで、に対してプロットするグラフを作成できます{table.date}

L

于 2012-05-21T18:13:34.307 に答える