web-dev-qa-db-ja.com

Crystal Reportsで重複する場合にフィールドを非表示にする式

私は、関税、レンタル、シェア、総額、ネットなどのフィールドがあるCrystalレポートのデータを表示するビューを持っています。私の問題は、誰かがデータベースの関税を変更すると、通常の異なる関税の同じレコードの2行が表示されることです。データベースの観点からの動作ですが、同じIDの関税が異なる場合、またはレンタルが新しいレコードで繰り返される場合は、月額レンタルのフィールドを0に抑制したいと思います。

ID  Tariff  Rental
1    20       390
1    15       390

Idに基づいて重複している場合、レポートのレンタルのフィールドを抑制したいのですが、現在、この式をCrystalレポートで使用して、以前のフィールドデータをチェックし、重複している場合は抑制しています。

{DatabaseField} = Previous({DatabaseField})

それは正常に動作していますが、IDが同じでなく、レンタルが繰り返されると、不要なものも抑制されます。同じIDに対してのみ抑制させたいです。

8
Mohsin

数式をフィールド非表示に書き込む必要があります。 (重複している場合は非表示にする必要はありません)

レンタルフィールド{ID} = previous({ID})および{rental} = previous({rental})

IDとレンタルが同じ場合、レポートのみがレンタルを抑制します。

これはうまくいくと思います。

21
Janarthanan
  1. Crystal Reportsで、[詳細]セクションを右クリックし、[セクションエキスパート]を選択します。

    1. [セクションエキスパート]ダイアログボックスで、[省略]コマンドの横にあるX + 2ボタンを選択します。この数式を機能させるには、チェックボックスをオフのままにする必要があります。
    2. [数式エディター]ダイアログボックスで、レコードの重複値を評価し、詳細行を非表示にするNext関数を含む条件付き数式を作成します

    例:{Table.Databasefield} = Previous({Table.Databasefield})

3
maneesh

これを非表示にするフィールドの抑制式に入れます。

{myTable.ID} = previous({myTable.ID})の場合はtrue、それ以外はfalse

0
O'MALLEY

Crystal XIで機能するように括弧を追加して、Janarthananによるソリューションの式を少し変更する必要がありました。

私が使用した:

{ID}=previous({ID}) and {rental}=previous({rental})

編集された質問に表示されるこの書式のバリエーションは、同様の問題を解決するのに役立ちました。

0
B-Rell