2016-08-26 2 views
0

私のレポートには、未払いの注文がなく、過去5週間に3回注文した顧客が未払いの注文が当社の最低注文よりも小さい場合が表示されます。前のフィールドの1つがこのフィールドのグループレベルで一定ではありません

現在、過去35日間のすべてについて、顧客コード、名前、注文docdate、および盲検を選択しています。私の数式は、別の数の注文日と顧客名を連結します。これは、その期間に十分な注文があったかどうかを報告します。

連結して 'ラン番号'(顧客が通常通りに行くトラック)でグループ化し、選択ケースでは就業日に何が出るのかを定義します。彼らは£250の値よりも優れた注文を持っている場合、誰かがレポート期間にわたって2件のまたはそれ以下のオーダーを持っている場合、これは決定

Switch 
(DistinctCount ({@Concat code and date}, {ORDR.CardCode}) <=2,0, 
{#RTotal0} > 250, 0, 
True, 1); 

、または次のSwitchステートメントは、問題がどこにあるかのようです。それらが満たされない場合、デフォルト値は '1'の使用可能な値になります。

このスイッチで(グループ見出しの)アラートまたはレコード選択を実行しようとすると、いずれのオプションでも選択できるフィールドのリストに表示されません。私は手動でフィールドにそれを置くとき、私はメッセージを取得:前のフィールドの

一つを私が見つけた最も近い質問はbeing unable to summarizeある

このフィールドのグループレベルにわたって一定ではなく、私は成功しなかった。これを回避するにはどうしたらいいですか?

EDITNOTE - 新しいダウンロード可能について下記を参照してください。

EDITNOTE 2 - 興味がありがとう、Siva。基本的な前提は上記のとおりです。私たちは週の特定の日に運ぶトラックを送ります。私はそれを可能にする別のフォームにコードを持っており、インポートすることができます - それは後で追加することができない厄介なものです。

このレポートの規則では、顧客が過去5週間以内に3件以上の注文を受けた場合、または合計で250未満の注文があった場合は、連絡を取って注文が必要かどうかを確認する必要があります注文を最小値にすることができます。

お客様は同じ実行に対して複数の注文を行うことができるため、連結数式(docdateと顧客番号)を使用して、過去35日間にdistinctcount経由での配送数を記録し、それ。

オープンオーダーに基づいてグループ分けされた合計が、最小オーダー値に適格かどうかを確認するために計上しています。

簡略化したファイルのバージョンはhereです。私は様々な情報源から試したことをいくつか取り上げました。 「Valid via Call Switch」に基づいてアラートや並べ替えを試みると、選択可能な式が表示されず、手動で入力すると「前のフィールドの1つが一定ではありませんこの分野のグループレベルを超えている "。

すべての援助をいただきありがとうございます。

+0

グループ2を削除してレポートを実行しても問題が解決しない場合は、別の解決策を試すことができます – Siva

+0

ありがとう、Siva。それは何も変わらず、奇妙なことに、他のいくつかのカウントが正しく機能しないようにしました。私は詳細については、メインの質問を編集します。ありがとう! – Mundrum

答えて

0

Crystal Reportをアップロードしてご覧になれますか?

何が起こっているのかちょっとわかりにくいです。既に存在する「グループ化」式を使ってフィルタを作成しようとしていますが、それはあなたに任せませんか?

編集:あなたの投稿をもう一度見て、グループ化/フィルタリングロジックの一部をクエリにオフロードしようとするとよいでしょう。 Crystalでこれを行う必要があると、レポートロジックに不要な複雑さが加わることがあります。

に関係なく、あなたのCRを投稿してみてください。

EDIT 2: 問題は、switch文を使用した数式の評価時間によるものだと思います。積算合計のために、この式は強制的に評価時間の最後の "WhilePrintingRecords"を実行します。このため、レコード選択フィルタは設定できません。

このRT計算をクエリにオフロードする、言い換えればオーダークエリに「OpenDocTotal」フィールドを設定することをお勧めします(ORDRテーブルから、必要なORDR情報とこの新しいフィールド)は、DocStatusが閉じているときに0を返し、DocStatusが開いているときにDocTotalを返します。このフィールドに基づいて数式で定期的な集計を使用することができます。それでも問題が解決しない場合は、クエリ内のすべてのデータをグループ化してください。そうすれば、Crystalロジックが大幅に単純化されます。

+0

これは、式の結果に基づくフィルタまたはアラートのいずれかです。 GUIを介してアラートやフィルタを作成しようとすると、使用できるフィールドが表示されません。手動で入力すると、上記の警告が表示されます。アップロードするために何ができるか見ていきますが、私の場所の操作に固有のフィールドがいくつかあり、標準のSAP B1では動作しません。これまでの回答への応援:) – Mundrum

+0

OK、ここに添付するファイルをアップロードするためにLiveのパスワードを覚えておく必要があります。私はここに資源がないので、今夜家で試してみてください。 – Mundrum

+0

ああ、それは上にあり、クエリに編集されました、ありがとう! – Mundrum

関連する問題