特定の製品で特定の期間内にトランザクションが表示されたレポートを作成しました。改ページ後にグループが2回印刷される
簡素化するため、トランザクション、製品、および顧客の3つのテーブルに基づいています。トランザクションはProductIDとCustomerIDのキーでProductとCustomerにそれぞれ参加します。しかし、この製品は複数の顧客によって使用されるため、顧客と製品の間に結合はありません。
レポートは以下のように構成されている:
Report Header:
-Group Header 1 - CustomerID (prints name, id etc)
--Group Header 2a - Product Code (prints name, description..)
--Group Header 2b - sub report GetOpeningBalance
---Group Header 3 - Transaction Date
----Details (nothing printed)
---Group Footer 3 - Prints transaction date, details, new balance
--Group Footer 2 - Prints Product closing balance (opening - transactions).
-Group Footer 1 - Prints nothing.
Report Footer - prints nothing.
サブレポートGetOpeningBalanceが格納prodedureを呼び出し、期首残高に対応する共有変数に数値を返します。これは取引ごとに増減され、最後に取引残高が表示されます。
ここで、選択式は顧客、製品、日付範囲(to/from)に基づいています。顧客および製品は、離散、範囲または離散+範囲の値にすることができます。
これは正常に機能しました。指定された範囲内で発生した商品取引を示し、数字を表示しました。ただし、顧客はすべての製品を表示する必要がありました。たとえその期間にトランザクションが発生していなくても。たとえば、彼らは株式を持っていた。摂取量/摂取量がないので、開始と終了のバランスは同じです。
これを解決するには選択基準で日付範囲パラメータを削除して(製品のすべてのトランザクションを返すようにして)、希望の日付範囲外の詳細行を取り消しました。私はそれに応じて "表示された"トランザクションだけを含めるように、実行中の合計数式を変更しました。
今、私は奇妙な動作が発生しています。次のページでは、完全なグループを複製することができます。ページ1に製品1〜9が印刷され、製品10でページ2が開始されると予想されます。しかし、製品1-9が印刷される。製品2と9が2ページ目の開始時に再び印刷されます。これは、正しい合計を含む完全なセクションを出力します。
この動作は一貫していません。それはすべてのページまたはすべての日付範囲/製品選択のためにそれをしません。
私は、セクションエキスパートとグループエキスパートで一緒にチック/アンティッキングを試みました。私はまた、いくつかの余分なグループや細部を取り除いて、無駄に絞り込むことを試みました。
これらのグループを再印刷する原因となるオプションや設定はありますか?
この種の問題では、通常、詳細セクションにサブレポートを使用します。しかし、製品と顧客の間に直接結合がないため、不可能になります。
私が理解しているように、レポートには、顧客が注文したすべての製品が表示されます(はるかに大きい可能性があります)。 –
はい。たしかにそれは正しいね。商品はトランザクションなしで存在することができ、現在はレポートでは表示されません。このアイデアは、これまでに使用されていた製品をオープニングバランスで表示することです。指定された期間内にトランザクションが存在しない場合でも同様です。問題は、これが同じパッケージ内のStockとTransactionsレポートになりたいということです。 – vice
私が理解していることを確認するために、例を作成しましょう。 2人の顧客A&Bと10の製品を想定します。顧客Aが製品1を使用し、顧客Bが製品2を使用した場合、レポートには、1 *および*製品2.10を使用するAがリストされます。さらに、報告書は、2 *および*製品1&3.10を使用してBをリストアップする必要がありますか? – craig